[Tutor] Increment by string, Array

lmhosie at jacks.sdstate.edu lmhosie at jacks.sdstate.edu
Thu Dec 9 20:39:35 CET 2010


Hello,
I have a large code that I am using for ARC GIS I know could be much smaller but it works like it is. I have programmed in C++ but am just beginning with python I believe the answer would be to do a parallel array however I am having trouble keeping the SQL statment in the string format it should be and putting in the array. So I ended up using a string.template and just incrementing manually.
Here is a sample of the code:
 
# ---------------------------------------------------------------------------
# MakeFeature.py
# Created on: Tue Nov 23 2010 11:07:25 AM
#   
# ---------------------------------------------------------------------------
# Import system modules
import sys, string, os, arcgisscripting
# Create the Geoprocessor object
gp = arcgisscripting.create()
gp.overwriteoutput = 1
# Check out any necessary licenses
gp.CheckOutExtension("spatial")
# Load required toolboxes...
gp.AddToolbox("C:/Program Files (x86)/ArcGIS/ArcToolbox/Toolboxes/Spatial Analyst Tools.tbx")
gp.AddToolbox("C:/Program Files (x86)/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx")

# Local variables...
wrs_season_Layer = "wrs_season_Layer"
wrs_season_shp = "D:\\model\\wrs_season.shp"
Temp_mdb = "D:\\model\\Temp.mdb"
ecoregions = "D:\\model\\Eco\\wwfecoregions\ecoregions.shp"

t=string.Template("D:\\model\\Temp.mdb\\T$Num")
p = string.Template('"PATH" = $Path')t
 
# Process: 
 
print "Calculating row 1"
gp.MakeFeatureLayer_management(wrs_season_shp, wrs_season_Layer, p.substitute(Path ='1'), Temp_mdb,)
gp.TabulateArea_sa(wrs_season_Layer,"PR", ecoregions, "BIOME", t.substitute(Num = '1'), "0.01")

print "Calculating row 2"
gp.MakeFeatureLayer_management(wrs_season_shp, wrs_season_Layer, p.substitute(Path ='2'), Temp_mdb,)
gp.TabulateArea_sa(wrs_season_Layer,"PR", ecoregions, "BIOME", t.substitute(Num = '2'),  "0.01")
print "finished
 
 
#This process repeats for 200 paths each requiring a calculation and a separate table creation indicating which path they are calculating#
The problem I had when making $Path a variable is it won't process the SQL statement any longer because of the quotes around it. The format has to stay in (' "PATH" = X')
for it to ingest correctly, another way would be "\"PATH\" = 1" however the same problem arises when you try to turn the 1 into a variable.
 
Any help would be much appreciated I would think I could just create a parallel array incrementing by 1 and just looping through for 233 paths?
Thankyou,
Lynn 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20101209/b5d728e2/attachment.html>


More information about the Tutor mailing list