[go: up one dir, main page]

0% found this document useful (0 votes)
53 views29 pages

AP P Gis P: Ython Rimer FOR THE Rofessional

This document provides an introduction to Python scripting for GIS professionals. It discusses why tasks are automated with scripts, defines what a script is, and outlines the benefits of automation. The document then defines Python and its uses, including its ability to access GIS functionality through libraries like ArcPy. It provides examples of common tasks that can be accomplished using Python, such as geoprocessing, data management, and automation of workflows. The document concludes by offering guidance on writing basic Python scripts, including examples, and identifies online resources for learning more about Python scripting.

Uploaded by

Azzouz Fatouh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
53 views29 pages

AP P Gis P: Ython Rimer FOR THE Rofessional

This document provides an introduction to Python scripting for GIS professionals. It discusses why tasks are automated with scripts, defines what a script is, and outlines the benefits of automation. The document then defines Python and its uses, including its ability to access GIS functionality through libraries like ArcPy. It provides examples of common tasks that can be accomplished using Python, such as geoprocessing, data management, and automation of workflows. The document concludes by offering guidance on writing basic Python scripts, including examples, and identifies online resources for learning more about Python scripting.

Uploaded by

Azzouz Fatouh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

A PYTHON PRIMER

FOR THE
GIS PROFESSIONAL
Lee Frederick
City of Milwaukee ITMD-GIS
A Python Primer
for the GIS Professional

Topics
• What is a script? Why automate a task?

• What is Python? What can Python do? Why use it?

• What is ArcPy?

• How do you write and run a Python script?

• Tips to get started writing your own Python scripts

• Online resources
A Python Primer
for the GIS Professional

What is a script?
• a set of instructions, or code, written in a human-readable
language that tells a piece of software what to do

• instructions are converted by an interpreter into a machine-


readable language that the software can understand

• scripts are typically used to automate a task or workflow


A Python Primer
for the GIS Professional

Why automate a task with a script?


• a task is repeated on a regular or semi-regular basis

• the results of a task must be exactly the same each time the
task is performed

• a task must be performed outside of normal working hours


A Python Primer
for the GIS Professional

Why automate a task with a script? scripts can…


• provide detailed documentation about a task’s inputs,
processes, and outputs

• be shared or reused for other similar tasks

• minimize or eliminate input errors

• boost productivity: free up time to do other things…


A Python Primer
for the GIS Professional

What is Python?
• an object-oriented programming language that is open
source & non-proprietary:
 unrestricted use & distribution
 not tied to a single OS, platform, application, or vendor

• also referred to as a dynamic or scripting language

• part of the default ArcGIS installation: if you are an ArcGIS


Desktop 10.X user, you probably already have Python and
ArcPy at your disposal
A Python Primer
for the GIS Professional

Why use Python?


• popularity: large community of users offers a strong base of
documentation & support

• access ArcGIS functionality along with built-in & third-party


Python functionality:
 combine both GIS & non-GIS processes into a complete scripted
workflow or task
 single programming language
 single development environment

• because Esri said so…


A Python Primer
for the GIS Professional

What can Python do?


• run (almost) any ArcGIS tool

• built-in functionality, as well as thousands of available third-


party site packages, allows Python to do (almost) anything
else that you can imagine…
A Python Primer
for the GIS Professional

What can Python do? General computing tasks:


• copy, move, rename, or delete files
• write to or read from files
• compose & send emails
• compress files
A Python Primer
for the GIS Professional

What can Python do? ETL tasks:


• ‘extract-transform-load’
• download and upload files
• import and export files & database objects
• ‘scrub’ data (string manipulation)
• QA/QC
• modify schemas
• convert from one data storage format to another
A Python Primer
for the GIS Professional

What can Python do? GIS tasks:


• general geoprocessing
• general data management
• spatial analysis
• refresh data in publication environments
• automate production of maps
• run Modelbuilder models (or replace models altogether)
• geodatabase administration
A Python Primer
for the GIS Professional

What is ArcPy?
• An ArcGIS-specific site package developed by Esri

• primary role is to extend Desktop functionality into a Python


scripting environment

• when imported as a module into a Python script, ArcPy


provides access to ArcGIS extensions and ArcToolbox tools
for Python scripting

• (almost) anything that can be done ‘manually’ in ArcMap or


ArcCatalog can be performed via ArcPy
A Python Primer
for the GIS Professional

Where do you write a Python script? IDEs:


• ‘integrated development environment’
• a single interface where code can be written, tested, edited,
and executed
• provides language-specific color coding, debugging, syntax &
formatting help, etc.
• examples:
 PyScripter
 IDLE (included with ArcGIS)
 Python Tools for Visual Studio
 many others…
A Python Primer
for the GIS Professional

Where do you write a Python script? code editors:


• language-specific color coding, syntax & formatting help, etc.
• examples:
 Notepad ++
 EditPad Lite
 many others…
A Python Primer
for the GIS Professional

How do you write a Python script? Get code from…


• geoprocessing results after running an ArcToolbox tool

• Modelbuilder export
A Python Primer
for the GIS Professional

How do you write a Python script? Get code from…


• ArcToolbox documentation
• online developer communities
A Python Primer
for the GIS Professional

How do you write a Python script? The basics…


• gain access to the ArcPy module using the import statement:
import arcpy

• call ArcPy classes or functions (tools) from the module


import arcpy
arcpy.FeatureClassToFeatureClass_conversion(arguments )

• be sure to include all input arguments or parameters that


the tool expects, in the expected order
A Python Primer
for the GIS Professional

How do you write a Python script? The basics…


• pay close attention to syntax:
 case sensitivity
arcpy.FeatureClassToFeatureClass_conversion( arguments )
is NOT the same as…
Arcpy.FeatureclassToFeatureclass_conversion( arguments )

 strings vs. variable names and statements


"my_file_gdb” and ‘import’
are NOT the same as…
my_file_gdb and import

• save your script text file with a .py extension


A Python Primer
for the GIS Professional

How do you write a Python script? A basic GIS example:


# Imports shapefile features into a new file geodatabase
# Arguments:
IN_DIR = "C:\\Users\\lfrede\\Desktop"
IN_SHP = IN_DIR + "\\" + "my_shapefile.shp"
OUT_DIR = IN_DIR
OUT_GDB_NAME = "my_file_gdb"
OUT_GDB = OUT_DIR + "\\" + OUT_GDB_NAME + ".gdb"
OUT_FC_NAME = "my_fc"
# Processes:
# import module(s)
import arcpy
# create a new file geodatabase
arcpy.CreateFileGDB_management( OUT_DIR, OUT_GDB_NAME, ‘’ )
# create a feature class from input shapefile features in new file geodatabase
arcpy.FeatureClassToFeatureClass_conversion( IN_SHP, OUT_GDB, OUT_FC_NAME, ‘’, ‘’, ‘’ )
A Python Primer
for the GIS Professional

How do you run a Python script? IDEs/shells:


• ArcMap Python window
• ArcCatalog Python window
• Pyscripter, IDLE, etc.
A Python Primer
for the GIS Professional

How do you run a Python script?


• from Windows Explorer (double-click on .py file)
• within a custom ArcGIS toolbox as a ‘script tool’

• Task Scheduler
A Python Primer
for the GIS Professional

Get started: Just jump into it!


• become familiar with Python & ArcPy basics within the
context of your own work using your own data

• identify a task or workflow that involves GIS data and break


it down into smaller steps

• develop & test short, simple practice scripts (one script per
step or group of steps) using small ‘disposable’ input &
output datasets

• gradually become more comfortable and confident by


building on small ‘victories’
A Python Primer
for the GIS Professional

Get started: trial & error...


• make mistakes and learn from the error messages returned
by Python

• learn from other Python users:


 search the web for error messages to see how other users reached a
solution
 find code on the web and adapt it to your own needs without guilt,
but give credit where credit is due
A Python Primer
for the GIS Professional

Get started: develop scripts with portability,


reusability & modularity in mind
• Refined, organized, and self-explanatory scripts are easily…
 read and understood
 shared
 repurposed
 integrated into other scripted tasks

• Refine: replace repeated argument strings with ‘constants’ &


‘variables’ that represent arguments
A Python Primer
for the GIS Professional

Get started: develop scripts with portability,


reusability & modularity in mind
• Organize: divide code into ordered & labeled sections for
readability & ‘transparency’
# Who/what/when/why/how
# Input argument constants
# Functions
# Input argument variables
# Processes
• Explain: what does your code do?
# explain your code…
# …using brief comments…
# …throughout your script
A Python Primer
for the GIS Professional

Online resources: Esri


• ArcGIS Desktop overview of Python

• ArcGIS Desktop overview of ArcPy

• ArcGIS Desktop geoprocessing tool references

• ArcGIS Python Recipes

• ArcGIS Resources: Python

• Free Esri Training web course: Python for Everyone

• Free Esri Training web course: Using Python in ArcGIS Desktop

• GIS developer Python discussions at GeoNet, The Esri Community


A Python Primer
for the GIS Professional

Online resources: Python.org


• Python Beginner's Guide for Non-Programmers

• Python Tutorial

• Python Style Guide

• Python Documentation

• Python Language Reference

• Python Standard Library

• Python Package Index


A Python Primer
for the GIS Professional

Online resources: developer communities


• GIS + Python discussions at Stack Exchange

• GIS + Python discussions at Stack Overflow


A Python Primer
for the GIS Professional

Questions?

You might also like