Date post: | 29-Nov-2014 |
Category: |
Technology |
Upload: | wisconsin-land-information-association |
View: | 1,946 times |
Download: | 5 times |
Python & Drive Time Analyses
Python 2.6ArcCatalog 9.3.1ArcMap 9.3.1
Project technologiesProgramming language:
Software products:
Janice PoehlmanDivision of Forestry, Dept. Natural [email protected]
Use python scripts to summarize the total number of people who are
within drive times of a location.
30 Minute60 Minute90 Minute
120 Minute
Drive Time Service AreaNetwork Analyst}
Data
WI, MN, MI, IL, IA
• Census 2000
Block Groups
• TIGER 2000 Road
• PLSS Township
#---------------------------------------------------------------------#Author: JP ##Last Update: December, 2010##Purpose: #Use cursors to select individual records (rows) in feature class. The#individual record is saved to an individual feature class and used to#clip census block groups. A town-range field is added and calculated#for each census block group feature class. The block group individual#files are merged into a single feature class, which can be summarized#by DTR for total population for each drive time service area.#-----------------------------------------------------------------------
What is a cursor and how does it work.
What is a cursor and how does it work.
What is a cursor and how does it work.
What is a cursor and how does it work.
What is a cursor and how does it work.
1.The cursor selects an individual record in a feature class and uses the python
tool to create a new feature class with one feature. (data export selected set):
gp.SearchCursor
What the python script does inside the cursor with one record:
2. Creates a new feature class from the record
gp.Select_Analysis
3. Clips block groups by the new feature class
gp.Clip_Analysis
4. Calculates a total population for the service area
gp.Calculate_Field 40417
#import modulesimport arcgisscripting, sys, os, time
#create the geoproccessor object and set file overwritegp = arcgisscripting.create()gp.overwriteoutput = 1
#set workspace variables and add toolboxesgp.workspace = "D:\drivetime\RoadsTigerResultsDT120Min_processing4.gdb”gp.addtoolbox("C:/Program Files/ArcGIS/ArcToolBox/Toolboxes/Data
Management Tools.tbx")gp.addtoolbox("C:/Program Files/ArcGIS/ArcToolBox/Toolboxes/Analysis
Tools.tbx")servicearea = "DriveTime120Minutes_SEW_NN”
log = open('D:/drivetime/logprocessing.log', 'a’)log.write('\n\nFile is ' + servicearea)timestamp = time.strftime('%I:%M:%S %p', time.localtime())log.write('\nStarting time is ' + timestamp)
What the python script does inside the cursor with one record:
2. Creates a new feature class from the record
gp.Select_Analysis
3. Clips block groups by the new feature class
gp.Clip_Analysis
4. Calculates a total population for the service area
gp.Calculate_Field 40417
try:
rows = gp.SearchCursor(servicearea)
row = rows.Next()
while row <> None:
ShapeName = str(row.DTR)
gp.Select_analysis(servicearea, "xxsel" +ShapeName, '"DTR"=' +ShapeName)
gp.clip_analysis("pop2000", "xxsel"+ShapeName, "xxclipSEWNN"+ShapeName, "") gp.calculatefield_management("xxclipSEWNN"+ShapeName, "DTR", row.DTR)
gp.delete_management ("xxsel" +ShapeName)
row = rows.next()
del row, rows
except:
if not gp.getmessages() == "”:
gp.addmessage(gp.getmessages(2))
if 'row' in dir():
del row
if 'rows' in dir():
del rows
After the cursor is used for geoprocessing every record, the individual feature classes containing block groups for each service area are merged together using a value table. gp.merge_management
vTab = gp.createobject("ValueTable”)fcList = gp.listfeatureclasses("xxclipSEWNN*”)fc = fcList.Next()while fc: fcpath = gp.workspace + "\\" + fc vTab.Addrow(fcpath) fc = fcList.Next()gp.merge_management(vTab, "AMergedDriveTime120MinutesSEWNN", "”)print "Completed merged file for features of %s" %(servicearea)timestamp = time.strftime('%I:%M:%S %p', time.localtime())log.write('\nFinishing time is ' + timestamp)print"Done.”del vTabdel fcdel fcpathdel serviceareadel timestamplog.close()
A supply and demand analysis oflocation to people.
•Using hunting or fishing licensing information to determine if quality or quantity of lands support types of recreation.•Using the density of people to determine where to build facilities or infrastructure.
Voila!
Thank you for your attention.