A practical course on automating geoprocessing, data-management, and map-production workflows with Python and ArcPy. Participants learn the fundamentals of Python programming and develop their own scripts for recurring tasks within ArcGIS.
You will learn how to create Python scripts for typical GIS workflows, call geoprocessing tools through ArcPy, and process multiple datasets automatically. You will access the properties, attributes, and geometries of geospatial data and use environment settings, cursors, tables, and files within your scripts.
You will also learn how to handle errors systematically, test scripts, and integrate custom script tools into the ArcGIS interface.
By the end of the course, you will be able to develop simple to moderately complex Python scripts, automate recurring GIS processes, and provide your scripts as tools for other ArcGIS users.
• Apply basic Python syntax and programming concepts
• Call and combine geoprocessing tools with ArcPy
• Process geospatial data and tables automatically
• Develop batch processes for multiple files and datasets
• Examine geospatial data properties with ArcPy
• Read, update, and add attributes using cursors
• Manage files and directories through Python
• Identify errors, handle exceptions, and test scripts systematically
• Integrate scripts as custom tools within ArcGIS
• Understand differences between scripting workflows in ArcMap and ArcGIS Pro
• Basic knowledge of ArcGIS or ArcGIS Pro
• Experience with geoprocessing tools, layers, attribute tables, and geodatabases
• A basic understanding of common GIS workflows
• Programming experience is helpful but not required
*We customize the course outline and content to your specific needs and relevant use cases.
Module 1: Introduction to Python Scripting with ArcGIS
• Applications of Python in GIS workflows
• Typical automation tasks within ArcGIS
• How Python, ArcPy, and geoprocessing tools work together
• Differences between interactive tool execution and scripting
• Structure of a simple Python script
• Planning scripts and dividing workflows into individual steps
• Principles of maintainable and reusable scripts
Module 2: Python Fundamentals
• Variables and fundamental data types
• Strings, numbers, and Boolean values
• Lists, tuples, and dictionaries
• Operators and expressions
• Conditions using if, elif, and else
• Repetition using for and while loops
• Defining and calling functions
• Using comments and readable code structures
Module 3: Working with Python Development Environments
• Understanding Python environments within ArcGIS
• Creating scripts in suitable editors and notebook environments
• Creating, saving, and running script files
• Developing and testing code incrementally
• Importing packages and modules
• Reviewing outputs and messages
• Organising working directories and project structures
Module 4: Introduction to ArcPy
• Structure and purpose of the ArcPy module
• Importing ArcPy into Python scripts
• Calling geoprocessing tools through ArcPy
• Using tool parameters and return values
• Examining results and result objects
• Understanding ArcPy namespaces and functional areas
• Reading and documenting geoprocessing messages
Module 5: Accessing ArcGIS Tools
• Using selection, analysis, conversion, and data-management tools
• Defining input and output parameters
• Connecting several tools into a complete process
• Distinguishing temporary and permanent outputs
• Using the output of one tool as the input for another
• Checking for existing datasets and overwriting them when appropriate
• Recording tool operations in a traceable manner
Module 6: Environment Settings and Workspaces
• Purpose of ArcPy environment settings
• Defining current and temporary workspaces
• Setting output coordinate systems
• Controlling processing extent, cell size, and masks
• Configuring the overwriting of existing outputs
• Setting and resetting environments within a script
• Creating scripts that adapt to different data environments
Module 7: Finding and Describing Data
• Listing feature classes, tables, rasters, and other datasets
• Searching files and workspaces automatically
• Using wildcards and dataset-type filters
• Examining geospatial data properties with Describe
• Reading geometry types, coordinate systems, and fields
• Checking whether datasets exist and are available
• Controlling workflows based on dataset properties
Module 8: Batch Processing
• Automating recurring tasks across multiple datasets
• Processing files and feature classes with loops
• Finding input data in directories and geodatabases
• Generating dynamic output names
• Storing results in suitable destination structures
• Skipping invalid or unsuitable datasets
• Recording progress and processing results
• Testing and optimising batch processes
Module 9: Working with Cursors and Tables
• Purpose and applications of ArcPy Data Access cursors
• Reading records with Search Cursors
• Changing attribute values with Update Cursors
• Adding new records with Insert Cursors
• Selecting suitable fields for processing
• Applying conditions and calculations to table rows
• Handling null values and different data types
• Using cursors efficiently and responsibly
Module 10: Geometries and Spatial Properties
• Reading geometry objects through cursors
• Processing coordinates, lengths, and areas
• Distinguishing point, line, and polygon geometries
• Using geometry properties in calculations
• Writing spatial information to new fields
• Creating simple geometries with Python
• Combining spatial and attribute-based processing
Module 11: Reading and Writing Files
• Opening and processing text and CSV files
• Reading information from external files
• Writing results to text or CSV files
• Constructing file paths and names reliably
• Distinguishing relative and absolute paths
• Creating, copying, and checking files and directories
• Considering encoding, delimiters, and line structures
• Creating file-based logs and result lists
Module 12: Error Handling and Debugging
• Distinguishing syntax, runtime, and data errors
• Reading and interpreting error messages
• Protecting critical processes with try and except blocks
• Producing custom error messages and guidance
• Retrieving geoprocessing errors from ArcPy
• Checking variables and intermediate results
• Isolating the source of errors step by step
• Testing scripts with different input datasets
Module 13: Integrating Scripts into ArcGIS
• Providing scripts as custom geoprocessing tools
• Creating script tools within a toolbox
• Defining input, output, and optional parameters
• Setting data types, default values, and filters
• Reading parameter values within the script
• Displaying messages, warnings, and errors in the tool interface
• Documenting tools clearly for other users
• Using script tools within models and further workflows
Module 14: Automated Map Production
• Accessing projects, maps, and layers with Python
• Examining map content and data sources
• Adding, removing, or updating layers
• Using layouts and map frames automatically
• Updating text and other layout elements
• Exporting maps and layouts to suitable formats
• Producing recurring map products automatically
• Considering the limitations and requirements of automated cartography
Module 15: Comparing ArcMap and ArcGIS Pro
• Understanding differences between their Python environments
• Recognising changes in modules, functions, and project structures
• Reviewing existing ArcMap scripts
• Identifying obsolete or unavailable functionality
• Adapting paths, data sources, and tool calls
• Modernising scripts gradually for ArcGIS Pro
• Documenting and testing compatibility requirements
Module 16: Practical Project – An Automated GIS Workflow
• Analysing a recurring GIS process
• Defining inputs, processing steps, and outputs
• Finding and checking datasets automatically
• Running multiple geoprocessing tools through a script
• Reading or updating attributes with cursors
• Adding error handling and logging
• Integrating the script as a tool within ArcGIS
• Testing, documenting, and reviewing the results
Hands-on learning with expert instructors at your location for organizations.
Master new skills guided by experienced instructors from anywhere.
Can't find a suitable date? Get in touch and we'll arrange one that works for you.