Friday 2:20 p.m.–3 p.m.

Leveraging Python to Automate GIS Processes and Provide Extended Analytical Capabilities

Hamish Kingsbury, Neal Johnston

Audience level:


Geographical Information Systems (GIS) is a developing spatial technology that uses the Python programming language. Using commercial and open source libraries, GIS analysis and development can be automated and extended beyond the regular capabilities of desktop software. This can include spatial analysis, data mining and automatic map generation.


This talk introduces Python in the context of Geographical Information Systems (GIS). We will examine how Python is leveraged daily in a variety of ways within desktop GIS software; from simple string manipulations and field calculations, to performing advanced spatial analysis and processing. Through use of inbuilt GIS model development tools, we can easily export the models’ functionality to a Python script. This allows for the development of complex iterators and conditional processes, therefore improving the functionality of the script. These use packages from Esri’s ArcPy library and can perform functions such as network analysis, spatial analytics, and automated bulk PDF map generation. These scripts are not limited to local processing. Using Esri’s ArcGIS for Server, the scripts can be published to a REST endpoint and accessed from your web application. GIS Python scripting is not limited to commercial software. There is a large open source GIS Python community with the largest libraries being OSGEO and QGIS. These libraries offer similar functionality to their commercial counterparts, with the advantage of being able to be run on any device without needing licencing. There are a range of more specialised open source libraries that provide mapping, data mining and advanced spatial analysis. These libraries can be incorporated into scripts based on ArcPy and OSGEO. We hope to demonstrate some of these processes live during the presentation. This will provide an insight into how Python leverages GIS processes, therefore providing automation, comprehensive functionality and extended analytical capabilities.