0% found this document useful (0 votes)
50 views

Intro To Python For ArcGIS Basic OLD

This document introduces a workshop on using Python for ArcGIS. The agenda includes Python scripting essentials, running geoprocessing tools in Python, and an example beginner geospatial project. Attendees will learn Python basics like variables, control structures, and modules. They will also learn how to use the ArcPy module to run tools from Python and handle errors. The workshop demonstrates batch processing using list functions and describes data. Finally, it shows connecting Python to R using the rpy2 module.

Uploaded by

Sarthak Regmi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
50 views

Intro To Python For ArcGIS Basic OLD

This document introduces a workshop on using Python for ArcGIS. The agenda includes Python scripting essentials, running geoprocessing tools in Python, and an example beginner geospatial project. Attendees will learn Python basics like variables, control structures, and modules. They will also learn how to use the ArcPy module to run tools from Python and handle errors. The workshop demonstrates batch processing using list functions and describes data. Finally, it shows connecting Python to R using the rpy2 module.

Uploaded by

Sarthak Regmi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 30

Introduction to Python for ArcGIS

Renzo Sanchez-Silva
Claudia Engel
Patricia Carbajales

http://bit.ly/pythonGIS
Does this describe you?

• New to Python scripting

• Comfortable using ArcGIS but want to become


more efficient

• Moving to Python from other scripting language

• Interested in Python for geospatial


Agenda
• Python scripting essentials
- What is Python? Why use Python scripting?
- Python 101: How to run it. Basic control structures and
data types, importing libraries.
- What is ArcPy?
- Scripting geoprocessing tools. Introducing ModelBuilder
(MB) and ArcToolBox. Manipulating MB Python scripts.
- Basic example exercises
• Beginner geospatial project with Python
• Connecting R from Python Demo
Python Scripting Essentials
What is Python?

• “Python is an easy to learn, powerful


language… (with) high-level data structures
and a simple but effective approach to object-
oriented programming. Python’s elegant
syntax and dynamic typing…make it an ideal
language for scripting…in many areas and on
most platforms.” –python.org

• Scripting language of ArcGIS

• Free, cross-platform, easy to learn, great


community
Why use Python scripting?

• There are many ways to run


single tools

• Use scripting to develop,


execute, and share
geoprocessing workflows

• Improves productivity
Python 101
• Where do I write Python code?
- IDE like PythonWin or PyScripter
- Python window in ArcGIS

• How do I run a Python script?


- Double-click or cmd prompt

• What are variables?


input-=A name that stores a value; assigned using =
"C:/Data/Roads.shp"
distance = 50
both = [input, distance]

# Variables act as substitutes for raw values


arcpy.Buffer_analysis(input, "Roads_buffer.shp", distance)
Python 101

• Python has logic for testing conditions


- if, else statement
- Colon at end of each condition
- Indentation determines what is executed
- == tests equality; other operators like >, <, !=

var = "a"
if var == "a":
# Execute indented lines
print("variable is a")
else:
print("variable is not a")
Python 101

• Techniques for iterating or looping


- While loops, for loops
- Colon at end of statement
- Indentation determines what is executed

x=1
while x < 5:
print x
x=x+1

x = [1, 2, 3, 4]
for num in x:
print num
Python 101

• Case sensitivity
- Variables, functions, etc. are case sensitive
- name ‘X’ is not defined, function ‘X’ does not exist

• Building blocks
- Function: a defined piece of functionality that performs a specific task;
requires arguments ()
- Module: a Python file where functions live; imported
- Package: a collection of modules
- math.sqrt(100) … 10.0
- “There’s a module for that”
ArcPy
• The access point to geoprocessing tools

• A package of functions, classes and modules, all related to


scripting in ArcGIS
- Helper functions that enable workflows (ListFeatureClasses, Describe,
SearchCursor, etc)
- Classes that can be used to create complex objects (SpatialReference,
FieldMap objects)
- Modules that provide extended functionality (Mapping, SpatialAnalyst
modules)

• Enhancement of arcgisscripting module (pre-10.0)


- Your old scripts will work
ArcGIS Python window
• Embedded, interactive Python window within ArcGIS
- Access to ArcPy, any Python functionality

• Great for experimenting with Python and learning tool syntax


- Help pane
Scripting geoprocessing tools
Demo
Executing a tool in Python
• ArcPy must be imported
• Follow syntax: arcpy.toolname_toolboxalias()
• Enter input and output parameters

# Import ArcPy
import arcpy

# Set workspace environment


arcpy.env.workspace = "C:/Data"

# Execute Geoprocessing tool


arcpy.Buffer_analysis("Roads.shp", "Roads_buffer.shp", "50 Meters")
Getting tool syntax

• Tool help page

• Copy as Python Snippet

• Export Model to Python script

• Drag tool into Python window

• help(“arcpy.Buffer_analysis”)
Setting environments in Python

• Accessed from arcpy.env


- Workspace, coordinate system, extent, etc.
• Global parameter
- See tool help for honored environments
• Provides finer control of tool execution
• Makes scripting easier

arcpy.env.workspace = "C:/Data"
arcpy.env.extent = "0 0 100 100"
Error handling

• Why do errors occur?


- Incorrect tool use
- Typos
- Syntax errors

• What can I do if my script doesn't


work?
- View the geoprocessing messages
- Use Python error handling
- Debug the script in an IDE
Geoprocessing messages

• Three types of messages:


- Informative messages
- Warning messages
- Error messages

• Displayed in the Python window

• arcpy.GetMessages()
- (): All messages
- (0): Only informative messages
- (1): Only warning messages
- (2): Only error messages
arcpy.GetMessages

# Execute Geoprocessing tool


arcpy.Buffer_analysis("Roads.shp", "Roads_buffer.shp", "50 Meters")

# Print the execution messages


print(arcpy.GetMessages())

>>>
Executing: Buffer Roads.shp Roads_buffer.shp '50 Meters'
Start Time: Tue July 12 08:52:40 2011
Executing (Buffer) successfully.
End Time: Tue July 12 03:52:45 2011(Elapsed Time: 5.00…
Python error handling

• Try…Except…
- "Try to do something, and if an error occurs, do
something else!"

# Start Try block


try:
arcpy.Buffer_analysis("Roads.shp", "Roads_buffer.shp", “50 Meters”)

# If an error occurs
except:
# Print that Buffer failed and why
print("Buffer failed")
print(arcpy.GetMessages(2))
ArcPy Functions
ArcPy functions
• Helper functions
• Perform useful scripting tasks
- Print messages (GetMessages)
- List data to perform batch processing
(ListFeatureClasses, 12 total List
functions)
- Getting data properties (Describe)
- Etc.

• Supports automation of
manual tasks
Batch processing

• Run a geoprocessing operation multiple times with some


automation
- Clip every feature class in a geodatabase to a boundary
- Calculate statistics for every raster in a folder

• List functions used in Python to


perform batch processing

• One of the highest values in scripting


arcpy.ListFeatureClasses

# Set the workspace


arcpy.env.workspace = "C:/Data/FileGDB.gdb/FDs"

# Get a list of all feature classes


fcList = arcpy.ListFeatureClasses()

# Print the list of feature classes one at a time


for fc in fcList:
print(fc)
ArcPy functions -- Describe
• Use the Describe function to read data properties
- Returns an object with properties

• Allows script to determine properties of data


- Data type (shapefile, coverage, network dataset, etc.)
- Shape type (point, polygon, line, etc.)
- Spatial reference
- Etc.

# Describe a feature class


desc = arcpy.Describe("C:/Data/Roads.shp")

print(desc.shapeType)
>>> "Polyline"
Batch Processing
Exercise
Accessing R with python, rpy2
Demonstration by Claudia Engel
Demo
Python scripting resources
• ArcGIS Resource Center
- resources.arcgis.com
- Online documentation
- Geoprocessing: script gallery,
blog, tutorials, presentations

• python.org

• Python References
- Learning Python by Lutz, et al.
- The Python Standard Library by
Example by Hellmann
- diveintopython.org
Please complete our post-workshop
survey

http://bit.ly/gisworkshopsurvey

Thanks!

You might also like