SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
Python Programming for Arcgis 2
Daniel Sheehan
dsheehan@mit.edu, gishelp@mit.edu
9:30AM-12:30PM
January 15, 2015
This class was originally developed by David
Quinn and taught by David and Daniel in IAP
2010 and 2011.
Goals for the workshop (from yesterday)
• Learning enough Python to
– Access Arcgis commands through Python
– Access individual records from attribute table
– Acccess individual geometries for use in
geoprocessing
• Develop the ability to record and document
your geoprocessing
Slides available at …
• http://web.mit.edu/dsheehan/www/
dataForPythonIAP2015.zip (same data as
yesterday)
• http://web.mit.edu/dsheehan/www/
PythonProgrammingforArcgis2.pdf
Outline
• More data types
• Python functions
• Accessing Attribute Tables
• Select by attributes and location
Lists = []
An ordered set of elements enclosed in square brackets.
Zero based (first element is accessed by typing list[0]).
# This is a list []
animals = [ 'dog ' , ' cat ' , 'horse ' , ' seal ' ]
print animals[3]
animals.append(‘owl’)
Lists are mutable
Tuples = ()
Zero base (first element of a non-empty tuple is
always tuple(0)
# This is a tuple
Countries = (‘Costa Rica’, ‘India’, ‘Abu Dhabi’)
# You cannot change a tuple (immutable)
String processing – slicing a string
# slicing a string
Name = ‘Massachusetts’
#Fenceposts – starting at index 1 and ending
# before index 2
Name[1:2]
# find the first 4 characters of Name
Name[:4]
Example: using length
len(Name) shows length of string
• Find the length of a string variable called
name with a value of ‘Massachusetts’
• Print the last 4 characters in the name string
Example Function 1
# Python uses dynamic typing (type is set when
a variable is assigned or argument is passed)
# Save in file called test.py
def print_value(argument):
# Print the passed argument
print argument
# default return is none for a function
Import ‘test.py’ - DIY
# Importing a script(that is stored in the same
folder, otherwise use full path)
import test
# print number from function
Answer = test.print_value(15)
Example Function 2
# Function will give an error if argument is not a
number
# Save this file as example.py
def change_value(number):
# Add documentation here
number += 8
return number
Import ‘example.py’ - DIY
# Importing a script (that is stored in the same
folder, otherwise use full path)
import example
# get new number from function
Answer = example.change_value(15)
print Answer
Exercise 1: Function to return shapefile
name
• Take in full file path string:
“C:Usersdsheehandesktopinterstatehigh
ways.shp”
• Return shapefile name:
“InterstateHighways.shp”
Should work for any full file path string, not one
case. You should have a second .py file to call the
function.
Examine python documentation http://doc.python.org;
in particular string.split(), len()
Warning: beware when copying from
slides
• Double quotes aren’t the same in PP as in IDLE
• Maintain indents so logic of the program
remains as intended
• And don’t open shapefiles with a cursor that
are open in Arcmap
Accessing the Attribute Table
def sumUpLength(shapefile):
# returns the length of all line segments in an attribute
table
import arcpy, os
sumLength = 0.0
try:
with arcpy.da.SearchCursor(shapefile, (“LENGTH”))
as cursor:
for row in cursor:
sumLength += row[0]
del cursor
except:
return -9999
return sumLength
Exercise 2
Call the function in the previous slide (called
accessAT.py) from a .py file. You should submit
a full path to the shapefile
(example -
“C:dsheehandesktopInterstateHighways.shp”)
as the argument to the function. Once this works,
add a where clause to the searchCursor function
to find only records with a length of 40 KM or
greater. Search help for Search Cursor and look for
AddFieldDelimiters.
Exercise 3
• Working with cursors
• Select by attributes
• Select by location
Exercise 3 - cursor
We are working with a shapefile, stepping
through the atttribute table of a FEATURE
CLASS with the cursor:
FC =
"C:UsersdsheehanDesktopkenyaDistrict2.shp
"
with arcpy.da.SearchCursor(FC, ("DISTRICT")) as cursor:
for row in cursor:
print row[0]
del cursor
Exercise 3 – selecting using attributes
Selecting by layer requires converting from a FEATURE CLASS to
LAYER but uses the same shapefile but opened a second time.
before loop
arcpy.MakeFeatureLayer_management("C:Usersdsheehan
DesktopkenyaDistricts.shp", "lyr")
Inside loop
arcpy.SelectLayerByAttribute_management("lyr",
"NEW_SELECTION", ' "DISTRICT" = '' + row[0] + ''')
Confused by mix of quotes, single and double?
Exercise 3 – select by location
Using the Layer, not the feature class, all inside
the loop:
arcpy.SelectLayerByLocation_management
("lyr", "BOUNDARY_TOUCHES", "lyr")
And checking the number selected:
theCount = arcpy.GetCount_management("lyr")
print theCount
Exercise 3 - result
import arcpy, os
try:
with
arcpy.da.SearchCursor("C:UsersdsheehanDesktopPython2015currentkenyaDistricts.
shp", ("DISTRICT")) as cursor:
arcpy.MakeFeatureLayer_management("C:UsersdsheehanDesktopPython2015current
kenyaDistricts2.shp", "lyr")
for row in cursor:
arcpy.SelectLayerByAttribute_management("lyr", "NEW_SELECTION", ' "DISTRICT" = '' +
row[0] + ''')
arcpy.SelectLayerByLocation_management ("lyr", "BOUNDARY_TOUCHES", "lyr")
theCount = arcpy.GetCount_management("lyr")
print row[0]
print theCount
arcpy.SelectLayerByLocation_management ("lyr", "BOUNDARY_TOUCHES", "lyr")
theCount = arcpy.GetCount_management("lyr")
print theCount
del cursor
except:
print arcpy.GetMessages()
raise
Try this at home:
• Add code to test whether any of the nearby
polygons contain a specified district
• If not, select additional neighbors and test
• Count how many iterations before you find
the specified district
• You should do this inside a while loop

Más contenido relacionado

Destacado

StephenJonesResume1November2015
StephenJonesResume1November2015StephenJonesResume1November2015
StephenJonesResume1November2015Stephen Jones
 
Essay writing service
Essay writing serviceEssay writing service
Essay writing serviceShey1979
 
DESCRIPTION OF PRODUCTS & SERVICES
DESCRIPTION OF PRODUCTS & SERVICESDESCRIPTION OF PRODUCTS & SERVICES
DESCRIPTION OF PRODUCTS & SERVICESFitness Culture
 
revenue generator Sheet1
revenue generator Sheet1revenue generator Sheet1
revenue generator Sheet1Fitness Culture
 
преступление и наказание
преступление и наказаниепреступление и наказание
преступление и наказаниеSnezhanaP10
 
El continente americano
El continente americanoEl continente americano
El continente americanoEsthela Tejada
 
Влада золота в повісті Бальзака Гобсек
Влада золота в повісті Бальзака ГобсекВлада золота в повісті Бальзака Гобсек
Влада золота в повісті Бальзака ГобсекSnezhanaP10
 
3 ključna problema svakodnevnog poslovanja! Pitali smo poduzetnike
3 ključna problema svakodnevnog poslovanja! Pitali smo poduzetnike3 ključna problema svakodnevnog poslovanja! Pitali smo poduzetnike
3 ključna problema svakodnevnog poslovanja! Pitali smo poduzetnikeHrvatski Telekom
 
Limitedeunafuncion 140412082144-phpapp01
Limitedeunafuncion 140412082144-phpapp01Limitedeunafuncion 140412082144-phpapp01
Limitedeunafuncion 140412082144-phpapp01yanirak
 
Guiding Principles for Experience Design
Guiding Principles for Experience DesignGuiding Principles for Experience Design
Guiding Principles for Experience DesignIan Fitzpatrick
 
Guide line for groth and development
Guide line for groth and developmentGuide line for groth and development
Guide line for groth and developmentDR.MANOJ KR VERMA
 

Destacado (14)

StephenJonesResume1November2015
StephenJonesResume1November2015StephenJonesResume1November2015
StephenJonesResume1November2015
 
Essay writing service
Essay writing serviceEssay writing service
Essay writing service
 
המלצה פניקס.יצחק בלייר
המלצה פניקס.יצחק בליירהמלצה פניקס.יצחק בלייר
המלצה פניקס.יצחק בלייר
 
DESCRIPTION OF PRODUCTS & SERVICES
DESCRIPTION OF PRODUCTS & SERVICESDESCRIPTION OF PRODUCTS & SERVICES
DESCRIPTION OF PRODUCTS & SERVICES
 
revenue generator Sheet1
revenue generator Sheet1revenue generator Sheet1
revenue generator Sheet1
 
преступление и наказание
преступление и наказаниепреступление и наказание
преступление и наказание
 
El continente americano
El continente americanoEl continente americano
El continente americano
 
Влада золота в повісті Бальзака Гобсек
Влада золота в повісті Бальзака ГобсекВлада золота в повісті Бальзака Гобсек
Влада золота в повісті Бальзака Гобсек
 
3 ključna problema svakodnevnog poslovanja! Pitali smo poduzetnike
3 ključna problema svakodnevnog poslovanja! Pitali smo poduzetnike3 ključna problema svakodnevnog poslovanja! Pitali smo poduzetnike
3 ključna problema svakodnevnog poslovanja! Pitali smo poduzetnike
 
Limitedeunafuncion 140412082144-phpapp01
Limitedeunafuncion 140412082144-phpapp01Limitedeunafuncion 140412082144-phpapp01
Limitedeunafuncion 140412082144-phpapp01
 
Guiding Principles for Experience Design
Guiding Principles for Experience DesignGuiding Principles for Experience Design
Guiding Principles for Experience Design
 
Guide line for groth and development
Guide line for groth and developmentGuide line for groth and development
Guide line for groth and development
 
Report on sabah claim
Report on sabah claimReport on sabah claim
Report on sabah claim
 
Historia Power Point
Historia Power Point Historia Power Point
Historia Power Point
 

Similar a Python Programming for ArcGIS: Part II

Data Migrations in the App Engine Datastore
Data Migrations in the App Engine DatastoreData Migrations in the App Engine Datastore
Data Migrations in the App Engine DatastoreRyan Morlok
 
Educational Objectives After successfully completing this assignmen.pdf
Educational Objectives After successfully completing this assignmen.pdfEducational Objectives After successfully completing this assignmen.pdf
Educational Objectives After successfully completing this assignmen.pdfrajeshjangid1865
 
Wiesław Kałkus: C# functional programming
Wiesław Kałkus: C# functional programmingWiesław Kałkus: C# functional programming
Wiesław Kałkus: C# functional programmingAnalyticsConf
 
Presentation 3rd
Presentation 3rdPresentation 3rd
Presentation 3rdConnex
 
Lecture 24 multiple-fileprograming.pptx
Lecture 24 multiple-fileprograming.pptxLecture 24 multiple-fileprograming.pptx
Lecture 24 multiple-fileprograming.pptxAyeCS11
 
Pemrograman Python untuk Pemula
Pemrograman Python untuk PemulaPemrograman Python untuk Pemula
Pemrograman Python untuk PemulaOon Arfiandwi
 
Python Functions Tutorial | Working With Functions In Python | Python Trainin...
Python Functions Tutorial | Working With Functions In Python | Python Trainin...Python Functions Tutorial | Working With Functions In Python | Python Trainin...
Python Functions Tutorial | Working With Functions In Python | Python Trainin...Edureka!
 
Introduction to objective c
Introduction to objective cIntroduction to objective c
Introduction to objective cSunny Shaikh
 
Unit testing presentation
Unit testing presentationUnit testing presentation
Unit testing presentationArthur Freyman
 
An Overview Of Python With Functional Programming
An Overview Of Python With Functional ProgrammingAn Overview Of Python With Functional Programming
An Overview Of Python With Functional ProgrammingAdam Getchell
 
Property Based Testing in PHP
Property Based Testing in PHPProperty Based Testing in PHP
Property Based Testing in PHPvinaikopp
 
OOPs Concepts - Android Programming
OOPs Concepts - Android ProgrammingOOPs Concepts - Android Programming
OOPs Concepts - Android ProgrammingPurvik Rana
 
Py.test
Py.testPy.test
Py.testsoasme
 
2014 International Software Testing Conference in Seoul
2014 International Software Testing Conference in Seoul2014 International Software Testing Conference in Seoul
2014 International Software Testing Conference in SeoulJongwook Woo
 
Lecture-10_PHP-OOP.pptx
Lecture-10_PHP-OOP.pptxLecture-10_PHP-OOP.pptx
Lecture-10_PHP-OOP.pptxShaownRoy1
 
PYTHON -Chapter 2 - Functions, Exception, Modules and Files -MAULIK BOR...
PYTHON -Chapter 2 - Functions,   Exception, Modules  and    Files -MAULIK BOR...PYTHON -Chapter 2 - Functions,   Exception, Modules  and    Files -MAULIK BOR...
PYTHON -Chapter 2 - Functions, Exception, Modules and Files -MAULIK BOR...Maulik Borsaniya
 
Programming with Python - Week 3
Programming with Python - Week 3Programming with Python - Week 3
Programming with Python - Week 3Ahmet Bulut
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twentiesPuppet
 

Similar a Python Programming for ArcGIS: Part II (20)

Data Migrations in the App Engine Datastore
Data Migrations in the App Engine DatastoreData Migrations in the App Engine Datastore
Data Migrations in the App Engine Datastore
 
Educational Objectives After successfully completing this assignmen.pdf
Educational Objectives After successfully completing this assignmen.pdfEducational Objectives After successfully completing this assignmen.pdf
Educational Objectives After successfully completing this assignmen.pdf
 
Wiesław Kałkus: C# functional programming
Wiesław Kałkus: C# functional programmingWiesław Kałkus: C# functional programming
Wiesław Kałkus: C# functional programming
 
Presentation 3rd
Presentation 3rdPresentation 3rd
Presentation 3rd
 
Lecture 24 multiple-fileprograming.pptx
Lecture 24 multiple-fileprograming.pptxLecture 24 multiple-fileprograming.pptx
Lecture 24 multiple-fileprograming.pptx
 
Pemrograman Python untuk Pemula
Pemrograman Python untuk PemulaPemrograman Python untuk Pemula
Pemrograman Python untuk Pemula
 
Python Functions Tutorial | Working With Functions In Python | Python Trainin...
Python Functions Tutorial | Working With Functions In Python | Python Trainin...Python Functions Tutorial | Working With Functions In Python | Python Trainin...
Python Functions Tutorial | Working With Functions In Python | Python Trainin...
 
Pa2 session 1
Pa2 session 1Pa2 session 1
Pa2 session 1
 
Introduction to objective c
Introduction to objective cIntroduction to objective c
Introduction to objective c
 
Unit testing presentation
Unit testing presentationUnit testing presentation
Unit testing presentation
 
An Overview Of Python With Functional Programming
An Overview Of Python With Functional ProgrammingAn Overview Of Python With Functional Programming
An Overview Of Python With Functional Programming
 
Property Based Testing in PHP
Property Based Testing in PHPProperty Based Testing in PHP
Property Based Testing in PHP
 
OOPs Concepts - Android Programming
OOPs Concepts - Android ProgrammingOOPs Concepts - Android Programming
OOPs Concepts - Android Programming
 
Py.test
Py.testPy.test
Py.test
 
2014 International Software Testing Conference in Seoul
2014 International Software Testing Conference in Seoul2014 International Software Testing Conference in Seoul
2014 International Software Testing Conference in Seoul
 
Lecture-10_PHP-OOP.pptx
Lecture-10_PHP-OOP.pptxLecture-10_PHP-OOP.pptx
Lecture-10_PHP-OOP.pptx
 
PYTHON -Chapter 2 - Functions, Exception, Modules and Files -MAULIK BOR...
PYTHON -Chapter 2 - Functions,   Exception, Modules  and    Files -MAULIK BOR...PYTHON -Chapter 2 - Functions,   Exception, Modules  and    Files -MAULIK BOR...
PYTHON -Chapter 2 - Functions, Exception, Modules and Files -MAULIK BOR...
 
Programming with Python - Week 3
Programming with Python - Week 3Programming with Python - Week 3
Programming with Python - Week 3
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
 
Pa1 session 5
Pa1 session 5Pa1 session 5
Pa1 session 5
 

Más de DUSPviz

Intro to inkscape
Intro to inkscapeIntro to inkscape
Intro to inkscapeDUSPviz
 
Intro to Tableau Public
Intro to Tableau PublicIntro to Tableau Public
Intro to Tableau PublicDUSPviz
 
Mapping with Adobe CC
Mapping with Adobe CCMapping with Adobe CC
Mapping with Adobe CCDUSPviz
 
Intro to Microsoft Access
Intro to Microsoft AccessIntro to Microsoft Access
Intro to Microsoft AccessDUSPviz
 
Intro to Adobe Photoshop
Intro to Adobe PhotoshopIntro to Adobe Photoshop
Intro to Adobe PhotoshopDUSPviz
 
Intro to Adobe Illustrator
Intro to Adobe IllustratorIntro to Adobe Illustrator
Intro to Adobe IllustratorDUSPviz
 
Intro to AutoCAD
Intro to AutoCADIntro to AutoCAD
Intro to AutoCADDUSPviz
 
Google Fusion Tables
Google Fusion TablesGoogle Fusion Tables
Google Fusion TablesDUSPviz
 
Habits of Effective Designers - Handout
Habits of Effective Designers - HandoutHabits of Effective Designers - Handout
Habits of Effective Designers - HandoutDUSPviz
 
Habits of Effective Designers
Habits of Effective DesignersHabits of Effective Designers
Habits of Effective DesignersDUSPviz
 
Intro to Adobe Illustrator
Intro to Adobe IllustratorIntro to Adobe Illustrator
Intro to Adobe IllustratorDUSPviz
 
Intro to Adobe Photoshop
Intro to Adobe PhotoshopIntro to Adobe Photoshop
Intro to Adobe PhotoshopDUSPviz
 
Introduction to InDesign
Introduction to InDesignIntroduction to InDesign
Introduction to InDesignDUSPviz
 
The DUSP GIS Data Drive
The DUSP GIS Data DriveThe DUSP GIS Data Drive
The DUSP GIS Data DriveDUSPviz
 
GIS Orientation 2015
GIS Orientation 2015GIS Orientation 2015
GIS Orientation 2015DUSPviz
 
Setting up your DUSP ArcGIS Environment
Setting up your DUSP ArcGIS EnvironmentSetting up your DUSP ArcGIS Environment
Setting up your DUSP ArcGIS EnvironmentDUSPviz
 
AFS Connection Instructions
AFS Connection InstructionsAFS Connection Instructions
AFS Connection InstructionsDUSPviz
 
Intro to ArcGIS ModelBuilder
Intro to ArcGIS ModelBuilderIntro to ArcGIS ModelBuilder
Intro to ArcGIS ModelBuilderDUSPviz
 
DUSPviz Rhino 3D Workshop
DUSPviz Rhino 3D WorkshopDUSPviz Rhino 3D Workshop
DUSPviz Rhino 3D WorkshopDUSPviz
 
Drawing for planners_ivanov
Drawing for planners_ivanovDrawing for planners_ivanov
Drawing for planners_ivanovDUSPviz
 

Más de DUSPviz (20)

Intro to inkscape
Intro to inkscapeIntro to inkscape
Intro to inkscape
 
Intro to Tableau Public
Intro to Tableau PublicIntro to Tableau Public
Intro to Tableau Public
 
Mapping with Adobe CC
Mapping with Adobe CCMapping with Adobe CC
Mapping with Adobe CC
 
Intro to Microsoft Access
Intro to Microsoft AccessIntro to Microsoft Access
Intro to Microsoft Access
 
Intro to Adobe Photoshop
Intro to Adobe PhotoshopIntro to Adobe Photoshop
Intro to Adobe Photoshop
 
Intro to Adobe Illustrator
Intro to Adobe IllustratorIntro to Adobe Illustrator
Intro to Adobe Illustrator
 
Intro to AutoCAD
Intro to AutoCADIntro to AutoCAD
Intro to AutoCAD
 
Google Fusion Tables
Google Fusion TablesGoogle Fusion Tables
Google Fusion Tables
 
Habits of Effective Designers - Handout
Habits of Effective Designers - HandoutHabits of Effective Designers - Handout
Habits of Effective Designers - Handout
 
Habits of Effective Designers
Habits of Effective DesignersHabits of Effective Designers
Habits of Effective Designers
 
Intro to Adobe Illustrator
Intro to Adobe IllustratorIntro to Adobe Illustrator
Intro to Adobe Illustrator
 
Intro to Adobe Photoshop
Intro to Adobe PhotoshopIntro to Adobe Photoshop
Intro to Adobe Photoshop
 
Introduction to InDesign
Introduction to InDesignIntroduction to InDesign
Introduction to InDesign
 
The DUSP GIS Data Drive
The DUSP GIS Data DriveThe DUSP GIS Data Drive
The DUSP GIS Data Drive
 
GIS Orientation 2015
GIS Orientation 2015GIS Orientation 2015
GIS Orientation 2015
 
Setting up your DUSP ArcGIS Environment
Setting up your DUSP ArcGIS EnvironmentSetting up your DUSP ArcGIS Environment
Setting up your DUSP ArcGIS Environment
 
AFS Connection Instructions
AFS Connection InstructionsAFS Connection Instructions
AFS Connection Instructions
 
Intro to ArcGIS ModelBuilder
Intro to ArcGIS ModelBuilderIntro to ArcGIS ModelBuilder
Intro to ArcGIS ModelBuilder
 
DUSPviz Rhino 3D Workshop
DUSPviz Rhino 3D WorkshopDUSPviz Rhino 3D Workshop
DUSPviz Rhino 3D Workshop
 
Drawing for planners_ivanov
Drawing for planners_ivanovDrawing for planners_ivanov
Drawing for planners_ivanov
 

Último

Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...amitlee9823
 
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightCheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightDelhi Call girls
 
BabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxBabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxolyaivanovalion
 
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...shivangimorya083
 
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptxBPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptxMohammedJunaid861692
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...amitlee9823
 
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...amitlee9823
 
FESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdfFESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdfMarinCaroMartnezBerg
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...amitlee9823
 
BigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxBigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxolyaivanovalion
 
Data-Analysis for Chicago Crime Data 2023
Data-Analysis for Chicago Crime Data  2023Data-Analysis for Chicago Crime Data  2023
Data-Analysis for Chicago Crime Data 2023ymrp368
 
Accredited-Transport-Cooperatives-Jan-2021-Web.pdf
Accredited-Transport-Cooperatives-Jan-2021-Web.pdfAccredited-Transport-Cooperatives-Jan-2021-Web.pdf
Accredited-Transport-Cooperatives-Jan-2021-Web.pdfadriantubila
 
Market Analysis in the 5 Largest Economic Countries in Southeast Asia.pdf
Market Analysis in the 5 Largest Economic Countries in Southeast Asia.pdfMarket Analysis in the 5 Largest Economic Countries in Southeast Asia.pdf
Market Analysis in the 5 Largest Economic Countries in Southeast Asia.pdfRachmat Ramadhan H
 
Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...shambhavirathore45
 
Ravak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxRavak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxolyaivanovalion
 
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...SUHANI PANDEY
 
Mature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxMature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxolyaivanovalion
 
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...amitlee9823
 
Midocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxMidocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxolyaivanovalion
 

Último (20)

Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
 
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightCheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
 
BabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxBabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptx
 
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
 
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptxBPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
 
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
 
FESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdfFESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdf
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
 
BigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxBigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptx
 
Data-Analysis for Chicago Crime Data 2023
Data-Analysis for Chicago Crime Data  2023Data-Analysis for Chicago Crime Data  2023
Data-Analysis for Chicago Crime Data 2023
 
Accredited-Transport-Cooperatives-Jan-2021-Web.pdf
Accredited-Transport-Cooperatives-Jan-2021-Web.pdfAccredited-Transport-Cooperatives-Jan-2021-Web.pdf
Accredited-Transport-Cooperatives-Jan-2021-Web.pdf
 
Market Analysis in the 5 Largest Economic Countries in Southeast Asia.pdf
Market Analysis in the 5 Largest Economic Countries in Southeast Asia.pdfMarket Analysis in the 5 Largest Economic Countries in Southeast Asia.pdf
Market Analysis in the 5 Largest Economic Countries in Southeast Asia.pdf
 
Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...Determinants of health, dimensions of health, positive health and spectrum of...
Determinants of health, dimensions of health, positive health and spectrum of...
 
Ravak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxRavak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptx
 
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
VIP Model Call Girls Hinjewadi ( Pune ) Call ON 8005736733 Starting From 5K t...
 
Mature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxMature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptx
 
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
Call Girls Bannerghatta Road Just Call 👗 7737669865 👗 Top Class Call Girl Ser...
 
Midocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxMidocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFx
 

Python Programming for ArcGIS: Part II

  • 1. Python Programming for Arcgis 2 Daniel Sheehan dsheehan@mit.edu, gishelp@mit.edu 9:30AM-12:30PM January 15, 2015 This class was originally developed by David Quinn and taught by David and Daniel in IAP 2010 and 2011.
  • 2. Goals for the workshop (from yesterday) • Learning enough Python to – Access Arcgis commands through Python – Access individual records from attribute table – Acccess individual geometries for use in geoprocessing • Develop the ability to record and document your geoprocessing
  • 3. Slides available at … • http://web.mit.edu/dsheehan/www/ dataForPythonIAP2015.zip (same data as yesterday) • http://web.mit.edu/dsheehan/www/ PythonProgrammingforArcgis2.pdf
  • 4. Outline • More data types • Python functions • Accessing Attribute Tables • Select by attributes and location
  • 5. Lists = [] An ordered set of elements enclosed in square brackets. Zero based (first element is accessed by typing list[0]). # This is a list [] animals = [ 'dog ' , ' cat ' , 'horse ' , ' seal ' ] print animals[3] animals.append(‘owl’) Lists are mutable
  • 6. Tuples = () Zero base (first element of a non-empty tuple is always tuple(0) # This is a tuple Countries = (‘Costa Rica’, ‘India’, ‘Abu Dhabi’) # You cannot change a tuple (immutable)
  • 7. String processing – slicing a string # slicing a string Name = ‘Massachusetts’ #Fenceposts – starting at index 1 and ending # before index 2 Name[1:2] # find the first 4 characters of Name Name[:4]
  • 8. Example: using length len(Name) shows length of string • Find the length of a string variable called name with a value of ‘Massachusetts’ • Print the last 4 characters in the name string
  • 9. Example Function 1 # Python uses dynamic typing (type is set when a variable is assigned or argument is passed) # Save in file called test.py def print_value(argument): # Print the passed argument print argument # default return is none for a function
  • 10. Import ‘test.py’ - DIY # Importing a script(that is stored in the same folder, otherwise use full path) import test # print number from function Answer = test.print_value(15)
  • 11. Example Function 2 # Function will give an error if argument is not a number # Save this file as example.py def change_value(number): # Add documentation here number += 8 return number
  • 12. Import ‘example.py’ - DIY # Importing a script (that is stored in the same folder, otherwise use full path) import example # get new number from function Answer = example.change_value(15) print Answer
  • 13. Exercise 1: Function to return shapefile name • Take in full file path string: “C:Usersdsheehandesktopinterstatehigh ways.shp” • Return shapefile name: “InterstateHighways.shp” Should work for any full file path string, not one case. You should have a second .py file to call the function. Examine python documentation http://doc.python.org; in particular string.split(), len()
  • 14. Warning: beware when copying from slides • Double quotes aren’t the same in PP as in IDLE • Maintain indents so logic of the program remains as intended • And don’t open shapefiles with a cursor that are open in Arcmap
  • 15. Accessing the Attribute Table def sumUpLength(shapefile): # returns the length of all line segments in an attribute table import arcpy, os sumLength = 0.0 try: with arcpy.da.SearchCursor(shapefile, (“LENGTH”)) as cursor: for row in cursor: sumLength += row[0] del cursor except: return -9999 return sumLength
  • 16. Exercise 2 Call the function in the previous slide (called accessAT.py) from a .py file. You should submit a full path to the shapefile (example - “C:dsheehandesktopInterstateHighways.shp”) as the argument to the function. Once this works, add a where clause to the searchCursor function to find only records with a length of 40 KM or greater. Search help for Search Cursor and look for AddFieldDelimiters.
  • 17. Exercise 3 • Working with cursors • Select by attributes • Select by location
  • 18. Exercise 3 - cursor We are working with a shapefile, stepping through the atttribute table of a FEATURE CLASS with the cursor: FC = "C:UsersdsheehanDesktopkenyaDistrict2.shp " with arcpy.da.SearchCursor(FC, ("DISTRICT")) as cursor: for row in cursor: print row[0] del cursor
  • 19. Exercise 3 – selecting using attributes Selecting by layer requires converting from a FEATURE CLASS to LAYER but uses the same shapefile but opened a second time. before loop arcpy.MakeFeatureLayer_management("C:Usersdsheehan DesktopkenyaDistricts.shp", "lyr") Inside loop arcpy.SelectLayerByAttribute_management("lyr", "NEW_SELECTION", ' "DISTRICT" = '' + row[0] + ''') Confused by mix of quotes, single and double?
  • 20. Exercise 3 – select by location Using the Layer, not the feature class, all inside the loop: arcpy.SelectLayerByLocation_management ("lyr", "BOUNDARY_TOUCHES", "lyr") And checking the number selected: theCount = arcpy.GetCount_management("lyr") print theCount
  • 21. Exercise 3 - result import arcpy, os try: with arcpy.da.SearchCursor("C:UsersdsheehanDesktopPython2015currentkenyaDistricts. shp", ("DISTRICT")) as cursor: arcpy.MakeFeatureLayer_management("C:UsersdsheehanDesktopPython2015current kenyaDistricts2.shp", "lyr") for row in cursor: arcpy.SelectLayerByAttribute_management("lyr", "NEW_SELECTION", ' "DISTRICT" = '' + row[0] + ''') arcpy.SelectLayerByLocation_management ("lyr", "BOUNDARY_TOUCHES", "lyr") theCount = arcpy.GetCount_management("lyr") print row[0] print theCount arcpy.SelectLayerByLocation_management ("lyr", "BOUNDARY_TOUCHES", "lyr") theCount = arcpy.GetCount_management("lyr") print theCount del cursor except: print arcpy.GetMessages() raise
  • 22. Try this at home: • Add code to test whether any of the nearby polygons contain a specified district • If not, select additional neighbors and test • Count how many iterations before you find the specified district • You should do this inside a while loop