Python - PowerPoint PPT Presentation

About This Presentation
Title:

Python

Description:

Python is an easy to learn, powerful language (with) high-level data structures and a simple but effective approach to object-oriented programming. – PowerPoint PPT presentation

Number of Views:282
Avg rating:3.0/5.0
Slides: 38
Provided by: DrewF2
Category:
Tags: python

less

Transcript and Presenter's Notes

Title: Python


1
Python Getting Started
  • July 12 - July 14, 2011
  • Drew Flater, Ghislain Prince

2
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 whats new in ArcGIS 10

3
Agenda
  • Python scripting essentials
  • What is Python? Why use Python scripting?
  • Python 101
  • What is ArcPy?
  • Scripting geoprocessing tools
  • Error handling
  • ArcPy functions
  • Batch processing
  • Python script tools

4
Python Scripting Essentials
5
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. Pythons elegant syntax and dynamic
    typingmake it an ideal language for scriptingin
    many areas and on most platforms. python.org
  • Scripting language of ArcGIS
  • Free, cross-platform, easy to learn, great
    community

6
Why use Python scripting?
  • There are many ways to run single tools
  • Use scripting to develop, execute, and share
    geoprocessing workflows
  • Improves productivity

7
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?
  • A name that stores a value assigned using

input "C/Data/Roads.shp" distance 50 both
input, distance Variables act as substitutes
for raw values arcpy.Buffer_analysis(input,
"Roads_buffer.shp", distance)
8
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 gt, lt, !

var "a" if var "a" Execute indented
lines print("variable is a") else
print("variable is not a")
9
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 lt 5 print x x x 1 x 1,
2, 3, 4 for num in x print num
10
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
  • Theres a module for that

11
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

12
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

13
Scripting geoprocessing tools
  • Demo

14
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")
15
Getting tool syntax
  • Tool help page
  • Copy as Python Snippet
  • Export Model to Python script
  • Drag tool into Python window
  • help(arcpy.Buffer_analysis)

16
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"
17
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

18
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

19
arcpy.GetMessages
  • Execute Geoprocessing tool
  • arcpy.Buffer_analysis("Roads.shp",
    "Roads_buffer.shp", "50 Meters")
  • Print the execution messages
  • print(arcpy.GetMessages())
  • gtgtgt
  • Executing Buffer Roads.shp Roads_buffer.shp '50
    Meters'
  • Start Time Tue July 12 085240 2011
  • Executing (Buffer) successfully.
  • End Time Tue July 12 035245 2011(Elapsed Time
    5.00

20
Python error handling
  • TryExcept
  • "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))
21
Error handling
  • Demo

22
ArcPy Functions
23
(No Transcript)
24
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

25
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

26
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)

27
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)
  • gtgtgt "Polyline"

28
Batch Processing
  • Demo

29
Python script tools
  • Connects Python to ArcGIS
  • Best way to create and share custom workflows
  • More accessible than stand-alone Python script
  • Extends ArcGIS
  • Integrated with geoprocessing framework
  • Inherits geoprocessing properties and
    environments from application
  • Can be used in ModelBuilder
  • Works with map layers

30
Receiving arguments
  • Arguments are user-defined inputs to a script
  • Values passed to script from user, instead of
    hard-coded
  • Use GetParameter or GetParameterAsText to read
    arguments
  • Create variables from input arguments
  • inputFC arcpy.GetParameterAsText(0)
  • outputFC arcpy.GetParameterAsText(1)
  • First and third parameters come from arguments
  • arcpy.Clip_analysis(inputFC, "C/Data/boundary.shp
    ", outputFC)

31
Connecting parameters
32
Script tools
  • Demo

33
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

34
Esri Training for Python
  • esri.com/training
  • Instructor-Led Course
  • Introduction to Geoprocessing Scripts Using
    Python
  • Web Course (free)
  • Using Python in ArcGIS Desktop 10

35
Other Python sessions
  • Python Intermediate
  • - Following this session
  • Python Raster Analysis
  • - Wed 315pm Room 5 A/B
  • Python - Scripting for Map Automation
  • - Wed 315pm Room 9
  • Building Tools with Python
  • - Thu 1015am Room 9
  • Spatial Analysis Island demo theater

36
Thanks for your feedback!www.esri.com/sessioneval
s
37
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com