Antworten:
Ich habe keine Arc 10.1-Cursor verwendet, aber dort ist es anscheinend noch einfacher.
In 10.0 gibt es einige Möglichkeiten, dies zu tun, aber hier ist ein grundlegender Ansatz für Anfänger:
# Create a cursor on a feature class
cur = arcpy.UpdateCursor(myFeatureClass)
# Loop through the rows in the attribute table
for row in cur:
# The variable sqMiles will get the value from the column
# named 'Area_Miles'
sqMiles = row.getValue('Area_Miles')
# Calculate how many acres
acres = (sqMiles * 640)
# Assign the acres to a column named 'Area_Acres'
row.setValue('Area_Acres', acres)
# Apply the change
cur.updateRow(row)
# The loop will then move on to the next row/feature
Eine einfachere, komprimierte Version:
cur = arcpy.UpdateCursor(myFeatureClass)
for row in cur:
row.setValue('Area_Acres', row.getValue('Area_Miles') * 640)
cur.updateRow(row)
Siehe: http://help.arcgis.com/de/arcgisdesktop/10.0/help/index.html#//000v0000003m000000
Nun, es gibt einige Möglichkeiten, wie Sie dies tun können.
Wenn die Berechnung ziemlich einfach ist, würde ich das Werkzeug Feld berechnen verwenden. Wenn Sie den Parameter code_block verwenden müssen, würde ich Option 2 wählen, da es nicht immer einfach ist, die Syntax in einem Skript (oder im Tool selbst) korrekt zu machen.
Wenn Sie in Zukunft mehr Skripte erstellen möchten , würde ich die Verwendung von Cursorn dringend empfehlen . Sie können die Werte aus einem Feld in eine Python-Liste schreiben und Ihre Berechnungen für jedes Element in der Liste mit einer for-Schleife durchführen. Anschließend können Sie die Liste in Ihr neues Feld zurückschreiben.
Ich verwende selten mehr Feld berechnen, da es einfacher ist, Cursor für alle außer den einfachsten Formeln zu schreiben.