In this assignment, we learned to create custom tools and
toolboxes. First, we were create a script tool from a provided script, which
was to run in ArcMap. I opened the script and modified the script name, last
modified date, and modified by comments, and saved it under my name. In ArcMap
(ArcToolbox) I created a new toolbox, and within that toolbox, a new script. Creating
a new toolbox was rather straightforward, was just right-click -> New
Toolbox; very similar to making a new folder. Next we were to set parameters. Creating
the parameters is pretty simple tool, as in Properties there is a tool dialog
box that makes it easy to not only create parameters, but to modify their
settings (data type, multivalue property, etc.). Below is a screenshot of my
script tool window.
Now that the parameters are set in the script tool, they
needed to be set in the script. I changed the original four variables in the
script, replacing them with the arcpy.GetParameter() command. I had a little
bit of an issue here, as I was using the arcpy.GetParameterAsText() command
initially. This didn’t work, as this only reads parameters as text, which
caused errors. As the outputFolder can’t be concatenated with strings, I used
the str() function on the outputFolder variable, and ran the tool. Next we were
to replace the print statements with arcpy.AddMessage() statements. Initially,
I did this and no matter what I did, I could not get the code to work when
running it. The problem turned out not to be in the code. What was going on is
that I was trying to run the script in PythonWin as a stand-alone script. The arcpy.AddMessage()
statements are, I think, designed to be run as a script tool. When I opened
ArcMap and ran the tool again, it worked fine. Below is a screenshot of my
results window.
To share the toolbox, tool, and script, I selected both the
toolbox and the script and sent them to a compressed (zipped) folder.
I feel I learned a lot in this lab, and I think I’ll get a
lot of use out of using toolboxes and tools in the future. I think one of the
most valuable components of this lab is the idea of sharing the tools and
toolboxes. Once I figured out the couple of issues I had and why what I was
doing was causing problems, the assignment seemed pretty straightforward. Creating
toolboxes is rather user-friendly and should be picked up quickly by most
people familiar with Windows. The same can be said for setting the parameters
in the dialog box, although it’s important to get the settings such as “Multivalue”
correct, or the tool won’t run properly; it is easy to go back and check those,
though. Once I understood what the arcpy.GetParameter() and arcpy.AddMessage()
functions are doing, I realize they are quite useful and I’ll try to find ways
to use them in the future. I also like the idea of sharing toolboxes and
scripts, so others can use or modify them.
No comments:
Post a Comment