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

Introduction To Python (Concepts and Discussion)

This document provides an overview of the Python programming language and how it can be used for GIS tasks and scripting. Python is an open source, high-level language that is well-suited for rapid prototyping. It has many standard libraries and can interface with COM objects and open source GIS toolsets. Python scripts can be run within ArcGIS applications or independently from the command line. The document discusses Python development environments and basic programming concepts like variables, data types, conditional statements, loops, functions and exceptions handling.

Uploaded by

MarkG Miguel
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
222 views

Introduction To Python (Concepts and Discussion)

This document provides an overview of the Python programming language and how it can be used for GIS tasks and scripting. Python is an open source, high-level language that is well-suited for rapid prototyping. It has many standard libraries and can interface with COM objects and open source GIS toolsets. Python scripts can be run within ArcGIS applications or independently from the command line. The document discusses Python development environments and basic programming concepts like variables, data types, conditional statements, loops, functions and exceptions handling.

Uploaded by

MarkG Miguel
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 25

(Concepts and Discussion)

 Python is a high-level programming language


 Open source and community driven
 “Batteries Included”
 a standard distribution includes many modules
 Dynamic typed
 Source can be compiled or run just-in-time
 Similar to perl, tcl, ruby
 Unlike AML and Avenue, there is a
considerable base of developers already
using the language
 “Tried and true” language that has been in
development since 1991
 Can interface with the Component Object
Model (COM) used by Windows
 Can interface with Open Source GIS toolsets
 Visual Basic is still the method of configuring
and customizing ArcMap
 If you have a button on the toolbar, it’s VB
 Python scripts can be placed in ArcToolbox
 Python can be run from the command line
without ArcMap or ArcCatalog being open
 Using just the GIS Engine, lower overhead
 Rapid prototyping, ease of authoring, etc.
 IDLE – a cross-platform Python development
environment
 PythonWin – a Windows only interface to
Python
 Python Shell – running 'python' from the
Command Line opens this interactive shell
 For the exercises, we'll use IDLE, but you can
try them all and pick a favorite
 IDLEhelps you
program in Python
by:
 color-coding your
program code
 debugging
 auto-indent
 interactive shell
 Hello World
print “hello world”
 Printshello world to
standard out
 Open IDLE and try it
out yourself
 Follow along using IDLE
 Python is an object oriented language
 Practically everything can be treated as an
object
 “hello world” is a string
 Strings, as objects, have methods that return
the result of a function on the string
 Assign a string to a
variable
 In this case “hw”
 hw.title()
 hw.upper()
 hw.isdigit()
 hw.islower()
 The string held in your variable remains the
same
 The method returns an altered string
 Changing the variable requires reassignment
 hw = hw.upper()
 hw now equals “HELLO WORLD”
 Lists (mutable sets of strings)
 var = [] # create list
 var = [‘one’, 2, ‘three’, ‘banana’]
 Tuples (immutable sets)
 var = (‘one’, 2, ‘three’, ‘banana’)
 Dictionaries (associative arrays or ‘hashes’)
 var = {} # create dictionary
 var = {‘lat’: 40.20547, ‘lon’: -74.76322}
 var[‘lat’] = 40.2054
 Each has its own set of methods
 Think of a list as a stack of cards, on which your
information is written
 The information stays in the order you place it in
until you modify that order
 Methods return a string or subset of the list or
modify the list to add or remove components
 Written as var[index], index refers to order within
set (think card number, starting at 0)
 You can step through lists as part of a loop
 Adding to the List
 var[n] = object
 replaces n with object

 var.append(object)
 adds object to the end of the list

 Removing from the List


 var[n] = []
 empties contents of card, but preserves order

 var.remove(n)
 removes card at n

 var.pop(n)
 removes n and returns its value
You will create lists:
 Layers as inputs
 Attributes to
match
 Arrays of objects
You will work with
lists:
 List of field names
 List of selected
features
 Like a list, tuples are iterable arrays of
objects
 Tuples are immutable –
once created, unchangeable
 To add or remove items, you must redeclare
 Example uses of tuples
 County Names
 Land Use Codes
 Ordered set of functions
 Dictionariesare sets of key & value pairs
 Allows you to identify values by a descriptive
name instead of order in a list
 Keys are unordered unless explicitly sorted
 Keys are unique:
 var[‘item’] = “apple”
 var[‘item’] = “banana”
 print var[‘item’] prints just banana
 Python uses whitespace and indents to
denote blocks of code
 Lines of code that begin a block end in a
colon:
 Lines within the code block are indented at
the same level
 To end a code block, remove the indentation
 You'll want blocks of code that run only when
certain conditions are met
 if and else
if variable == condition:
#do something based on v == c
else:
#do something based on v != c
 elif allows for additional branching
if condition:
elif another condition:

else: #none of the above
 For allows you to loop over a block of
code a set number of times
 For is great for manipulating lists:
a = ['cat', 'window', 'defenestrate']
for x in a:
print x, len(x)
Results:
cat 3
window 6
defenestrate 12
 We could use a for loop to perform
geoprocessing tasks on each layer in a list
 We could get a list of features in a feature
class and loop over each, checking attributes
 Anything in a sequence or list can be used in
a For loop
 Just be sure not to modify the list while
looping
 Modules are additional pieces of code that
further extend Python’s functionality
 A module typically has a specific function
 additional math functions, databases, network…
 Python comes with many useful modules
 arcgisscripting is the module we will use to
load ArcGIS toolbox functions into Python
 Modules are accessed using import
 import sys, os # imports two modules
 Modules can have subsets of functions
 os.path is a subset within os
 Modules
are then addressed by
modulename.function()
 sys.argv # list of arguments
 filename = os.path.splitext("points.txt")
 filename[1] # equals ".txt"
 Filesare manipulated by creating a file
object
 f = open("points.txt", "r")
 The file object then has new methods
 print f.readline() # prints line from file
 Files can be accessed to read or write
 f = open("output.txt", "w")
 f.write("Important Output!")
 Files are iterable objects, like lists
 Check for type assignment errors, items not
in a list, etc.
 Try & Except
try:
a block of code that might have an error
except:
code to execute if an error occurs in "try"
 Allowsfor graceful failure
– important in ArcGIS
 Python Homepage
http://www.python.org/
 Dive Into Python
http://www.diveintopython.org/
 Learning Python, 3rd Edition
http://www.oreilly.com/catalog/9780596
513986/
 Getting Started Writing Geoprocessing Scripts
Available on ESRI's support page

You might also like