ArcPy, Why?

10-23-2014 01:53 PM
Status: Closed
Labels (1)
Occasional Contributor
Why does Esri think that every GIS professional wants to be a Python code expert? We don't. We have more important geospatial questions to solve than the precise order of code punctuation.

There are increasingly more and more simple functions that have to be done using Python. Could we please get a tool button or GUI for these, and a better way to organize and manage the tool pallets?

1 Comment
Status changed to: Closed

Thank you for sharing your concerns regarding the integration of Python in ArcGIS Pro.

ArcGIS Pro prioritizes the UI first, and there are no plans or intentions of replacing existing ArcGIS Pro capabilities with Python/ArcPy. We strive to make GIS as accessible as we can to all users. However, ArcGIS Pro is a powerful spatial software supporting a wide spectrum of applications ranging from basic to technically advanced. There are a few advanced areas where the complexity of a task would render any UI capable of satisfying the complexity impractical (both to develop and to use), at which point we usually turn to Python because it is open-source, highly adopted in the scientific community, extensible, and relatively easy to learn for newcomers (relative to other programming languages).

ArcPy is not intended to replace the UI, but is a feature intended for developers who need to automate workflows or extend analysis capabilities with custom algorithms. We offer an alternative in Model Builder, which is a UI diagram that can accomplish some (but not all) of the automation that can be done in ArcPy. Another area where Python becomes necessary is Field Calculator. Much like calculating cell values in a spreadsheet, many operations can be accomplished with simple familiar mathematical expressions, such as "!POPULATION! / !AREA!" to calculate population density, or functions such as "!CITY_NAME!.capitalize()" to capitalize words . For these, we offer UI buttons and picklists for basic operators and functions. However, more complex calculations will require more complex expressions or even the definition of custom functions; as noted earlier, such advanced use cases are impossible for us to support using UI alone. This is also true for Raster Functions, another area where Python is used.

Thank you for your understanding, and I hope I have helped clarify that Python is not intended to replace the user interface, but also what is and isn't possible to accomplish with UI alone due to some advanced features reaching the technical limitations of what a UI can accomplish.