ArcGIS Python Programming
Duration: 5 Days
Course Background
This course is aimed at ArcGIS application developers and geographic data analysts who wish to learn how to use Python scripting to develop and automate ArcGIS tasks and to extend the data analytical capabilities of ArcGIS via Python scripting.
Course Prerequisites and Target Audience
Attendees are assumed to have a working knowledge of ArcGIS and some knowledge of programming. No particular knowledge of Python is assumed as the course will provide an intensive introduction to all the Python concepts and syntax needed.
Course Outline
- Rationale for adding scripting capabilities to ArcGIS
- Python as a versatile "glue language"
- Python and ArcGIS
- Introduction to Python
- Scripting vs. Programming
- Using scripting with ArcGIS
- Python development environments
- Overview of ArcGIS Geoprocessing with Python
- Geoprocessing concepts
- ArcObjects
- Toolboxes and tools
- Using models and ModelBuilder
- Scripting in ArcGIS - running scripts as tools and converting models to scripts
- Working with the ArcGIS Python window
- Python Programming
- Python data types and structures
- Python numeric types
- Variables, statements and expressions
- Strings
- Lists and Tuples
- Dictionaries
- Sets
- Input and output in Python
- ArcGIS Geoprocessing with Python
- Overview of the ArcPy package
- Working with toolboxes
- ArcPy functions and classes
- Exploring and Manipulating Spatial Data
- Describing data
- Listing data
- Querying databases with Python
- Reading and writing geometries with Python
- Working with rasters
- Map Scripting
- Overview of the ArcPy mapping module
- Map documents
- Data frames
- Layers
- Page layouts
- Exporting and printing maps
- Testing and Debugging
- Python's exception handling mechanisms
- Techniques for debugging Python code
- Introduction to Unit Testing - concepts and practice
- Unit testing python code
- Extending ArcPy
- Overview of Python packages and modules
- Principles of structured modular Python programming
- Python object oriented programming explained
- Devising and extending custom Python classes