Câu trả lời:
Tôi đã không sử dụng con trỏ Arc 10.1, nhưng dường như thậm chí còn dễ dàng hơn ở đó.
Trong 10.0, có một vài cách để thực hiện, nhưng đây là cách tiếp cận cơ bản, dành cho người mới bắt đầu:
# 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
Một phiên bản đơn giản hơn, cô đọng:
cur = arcpy.UpdateCursor(myFeatureClass)
for row in cur:
row.setValue('Area_Acres', row.getValue('Area_Miles') * 640)
cur.updateRow(row)
Xem: http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//000v0000003m000000
Vâng, có một vài cách bạn có thể làm điều này.
Nếu phép tính khá đơn giản, tôi sẽ sử dụng công cụ Tính toán trường . Nếu bạn cần sử dụng tham số code_block, tôi sẽ sử dụng tùy chọn # 2 vì không phải lúc nào cũng dễ dàng thực hiện cú pháp chính xác trong tập lệnh (hoặc trong chính công cụ cho vấn đề đó).
Nếu bạn quan tâm đến việc viết kịch bản nhiều hơn trong tương lai, tôi thực sự khuyên bạn nên sử dụng con trỏ . Bạn có thể viết các giá trị từ một trường vào danh sách Python và thực hiện các tính toán của bạn trên từng mục trong danh sách bằng một vòng lặp for và sau đó viết danh sách trở lại trường mới của bạn.
Tôi hiếm khi sử dụng Trường tính toán nữa vì nó dễ dàng hơn đối với các con trỏ script cho tất cả trừ các công thức đơn giản nhất.