2016-02-16 2 views
1

Il y a 3 polygones dans shp. fichier.comment passer d'un polygone à l'autre dans un fichier en python?

besoin de trouver min/max de coordonnées pour chacun. Je peux le faire que pour 1 par suivant:

import arcpy # csv 
from arcpy import env 

print "Creating and defining variables." 
env.workspace = r"C:\Users\Desktop\data" 
env.overwriteOutput = 1 

theme = 'interestAreas.shp' 
# Look for .next() in SearchCursor, need a loop 
# the same when we read line by line 
for i in theme: 
    Curs = arcpy.da.SearchCursor(theme, '[email protected]').next() 
    polygon = Curs[0] 
    ext = polygon.extent 
del Curs 

# Find min X, Y and max X, Y for each polygon and write it to the file: 
print 'xmin is: ', ext.XMin 
print 'ymin is: ', ext.YMin 
print 'xmax is: ', ext.XMax 
print 'ymax is: ', ext.YMax 
minX = ext.XMin 
minY = ext.YMin 

Comment le faire en utilisant pour ou en arcpy et la boucle? Ou comment se déplacer dans l'ID (1,2,3) de polygones?

Nous vous remercions de votre aide.

Répondre

0

Votre code d'origine était très proche. Vous avez juste besoin de déplacer et de régler votre boucle for pour itérer sur le curseur, pas le fichier de formes. Je recommande également d'utiliser with sur l'objet curseur de sorte que vous n'avez pas besoin de le gérer.

import arcpy # csv 
from arcpy import env 

print "Creating and defining variables." 
env.workspace = r"C:\Users\Desktop\data" 
env.overwriteOutput = 1 

theme = 'interestAreas.shp' 
with arcpy.da.SearchCursor(theme, ['[email protected]']) as Curs: 
    for i in Curs: # iterate through the rows in the cursor object 
     polygon = i[0] 
     ext = polygon.extent 

     # Find min X, Y and max X, Y for each polygon and write it to the file: 
     print 'xmin is: ', ext.XMin 
     print 'ymin is: ', ext.YMin 
     print 'xmax is: ', ext.XMax 
     print 'ymax is: ', ext.YMax 
     minX = ext.XMin 
     minY = ext.YMin 
0

Je ne suis pas très habitué à python, mais la logique est la plupart du temps même dans toutes les langues ... vous devriez probablement faire quelque chose comme ça (il pourrait y avoir des erreurs de syntaxe mineures):

polygons = arcpy.SearchCursor(theme, '[email protected]') 
curPolygon = polygons.next() 
while Curs: 
    polygon = Curs[0] 
    ext = polygon.extent 

    # Find min X, Y and max X, Y for each polygon and write it to the file: 
    print 'xmin is: ', ext.XMin 
    print 'ymin is: ', ext.YMin 
    print 'xmax is: ', ext.XMax 
    print 'ymax is: ', ext.YMax 
    minX = ext.XMin 
    minY = ext.YMin 

    # now look for next polygon description 
    curPolygon = polygons.next() 

for further reading click here