What this book covers
Chapter 1, Fundamentals of the Python Language for ArcGIS, will cover many of the basic language constructs found in Python. Initially, you'll learn how to create new Python scripts or edit existing scripts. From there, you'll get into language features, such as adding comments to your code, variables, and the built-in typing systems that makes coding with Python easy and compact. Furthermore, we'll look at the various built-in data types that Python offers, such as strings, numbers, lists, and dictionaries. In addition to this, we'll cover statements, including decision support and looping structures for making decisions in your code, and/or looping through a code block multiple times.
Chapter 2, Managing Map Documents and Layers, will use the ArcPy mapping module to manage map document and layer files. You will learn how to add and remove geographic layers from map document files, insert layers into data frames, and move layers around within the map document. You will also learn how to update layer properties and symbology.
Chapter 3, Finding and Fixing Broken Data Links, will teach you how to generate a list of broken data sources in a map document file and apply various ArcPy mapping functions to fix these data sources. You will learn how to automate the process of fixing data sources across many map documents.
Chapter 4, Automating Map Production and Printing, will teach you how to automate the process of creating production-quality maps. These maps can then be printed, exported to image file formats, or exported to PDF files for inclusion in map books.
Chapter 5, Executing Geoprocessing Tools from Scripts, will teach you how to write scripts that access and run geoprocessing tools provided by ArcGIS.
Chapter 6, Creating Custom Geoprocessing Tools, will teach you how to create custom geoprocessing tools that can be added to ArcGIS and shared with other users. Custom geoprocessing tools are attached to a Python script that processes or analyzes geographic data in some way.
Chapter 7, Querying and Selecting Data, will teach you how to execute the Select by Attribute and Select by Location geoprocessing tools from a script to select features and records. You will learn how to construct queries that supply an optional where clause for the Select by Attribute tool. The use of feature layers and table views as temporary datasets will also be covered.
Chapter 8, Using the ArcPy Data Access Module with Feature Classes and Tables, will teach you how to create geoprocessing scripts that select, insert, or update data from geographic data layers and tables. With the new ArcGIS 10.1 Data Access module, geoprocessing scripts can create in-memory tables of data, called cursors, from feature classes and tables. You will learn how to create various types of cursors, including search, insert, and update.
Chapter 9, Listing and Describing GIS Data, will teach you how to obtain descriptive information about geographic datasets through the use of the ArcPy Describe function. As the first step in a multistep process, geoprocessing scripts frequently require that a list of geographic data be generated followed by various geoprocessing operations that can be run against these datasets.
Chapter 10, Customizing the ArcGIS Interface with Add-ins, will teach you how to customize the ArcGIS interface through the creation of Python add-ins. Add-ins provide a way of adding user interface items to ArcGIS for Desktop through a modular code base designed to perform specific actions. Interface components can include buttons, tools, toolbars, menus, combo boxes, tool palettes, and application extensions. Add-ins are created using Python scripts and an XML file that define how the user interface should appear.
Chapter 11, Error Handling and Troubleshooting, will teach you how to gracefully handle errors and exceptions as they occur while a geoprocessing script is executing. ArcPy and Python errors can be trapped with the Python try/except structure and handled accordingly.
Chapter 12, Using Python for Advanced ArcGIS, covers the use of the ArcGIS REST API with Python to access services exposed by ArcGIS Server and ArcGIS Online. You will learn how to make HTTP requests and parse the responses, export maps, query map services, perform geocoding, and more. Also covered in this chapter are some miscellaneous topics related to ArcPy FieldMap and FieldMappings, as well as working with ValueTables.
Chapter 13, Using Python with ArcGIS Pro, covers some distinctions between the new ArcGIS Pro environment and ArcGIS for Desktop related to Python and, in particular, the Python Window for writing and executing code.
Appendix A, Automating Python Scripts, will teach you how to schedule geoprocessing scripts to run at a prescribed time. Many geoprocessing scripts take a long time to fully execute and need to be scheduled to run during nonworking hours on a regular basis. You will learn how to create batch files containing geoprocessing scripts and execute these at a prescribed time.
Appendix B, Five Python Recipes Every GIS Programmer Should Know, will teach you how to write scripts that perform various general purpose tasks with Python. Tasks, such as reading and writing delimited text files, sending e-mails, interacting with FTP servers, creating ZIP files, and reading and writing JSON and XML files, are common. Every GIS programmer should know how to write Python scripts that incorporate these functionalities.