游标(Cursor)是 ArcPy 中用于操作地理数据表的工具。它允许我们逐行读取、插入、更新和删除数据。游标分为两种类型:搜索游标(SearchCursor)和更新游标(UpdateCursor)。
(一)搜索游标(SearchCursor)
搜索游标用于读取数据表中的记录。我们可以指定要读取的字段和条件,然后逐行访问数据。
```python
# 使用搜索游标读取数据
with arcpy.da.SearchCursor("path/to/your/feature_class", ["SHAPE@", "Field1", "Field2"]) as cursor:
for row in cursor:
geometry = row[0] # 获取几何对象
field1_value = row[1] # 获取字段1的值
field2_value = row[2] # 获取字段2的值
print(geometry, field1_value, field2_value)
```
在上面的代码中,`"SHAPE@"`是一个特殊的字段,用于获取几何对象。我们还可以通过指定字段名来获取其他属性字段的值。
(二)更新游标(UpdateCursor)
更新游标不仅可以读取数据,还可以更新和删除数据。我们可以使用它来修改数据表中的记录。
```python
# 使用更新游标更新数据
with arcpy.da.UpdateCursor("path/to/your/feature_class", ["SHAPE@", "Field1"]) as cursor:
for row in cursor:
geometry = row[0] # 获取几何对象
if geometry.area > 1000: # 判断面积是否大于1000
row[1] = "Large" # 更新字段1的值
else:
row[1] = "Small"
cursor.updateRow(row) # 更新记录
```
在上面的代码中,我们通过判断几何对象的面积来更新字段1的值。`cursor.updateRow(row)`方法用于将修改后的记录写回数据表。
三、几何与游标的结合
几何对象和游标是 ArcPy 中两个强大的工具,它们可以结合使用,实现复杂的空间数据处理和分析。例如,我们可以使用游标读取数据,然后对几何对象进行操作,最后将结果写回数据表。