利用arcpy比较两个要输中在同一个空间位置的图斑的“地类名称”字段是否一致,属性不一致的图斑将导出一个表格,以(标识码)导出
时间: 2024-04-16 19:27:09 浏览: 73
关于mdb、shapefile数据包整合前后地类图斑面积、线状地物线段长度、记录总数是否相同的检查软件
3星 · 编辑精心推荐
您可以使用ArcPy来比较两个要素类中的"地类名称"字段是否一致,并导出不一致的要素到一个表格中。以下是一个示例代码:
```python
import arcpy
# 设置工作空间
arcpy.env.workspace = r"路径\到\您的\数据库.gdb"
# 输入要素类
input_feature_class1 = "要素类1"
input_feature_class2 = "要素类2"
# 输出表格
output_table = "输出表格"
# 创建一个空的表格来存储不一致的要素
arcpy.CreateTable_management(arcpy.env.workspace, output_table)
# 添加字段到输出表格
arcpy.AddField_management(output_table, "标识码", "LONG")
arcpy.AddField_management(output_table, "地类名称1", "TEXT")
arcpy.AddField_management(output_table, "地类名称2", "TEXT")
# 打开游标用于插入数据到输出表格
insert_cursor = arcpy.da.InsertCursor(output_table, ["标识码", "地类名称1", "地类名称2"])
# 使用搜索游标遍历要素类1
with arcpy.da.SearchCursor(input_feature_class1, ["标识码", "地类名称"]) as cursor1:
for row1 in cursor1:
# 使用搜索游标遍历要素类2
with arcpy.da.SearchCursor(input_feature_class2, ["标识码", "地类名称"]) as cursor2:
for row2 in cursor2:
# 如果标识码相同且地类名称不一致,则插入数据到输出表格
if row1[0] == row2[0] and row1[1] != row2[1]:
insert_cursor.insertRow((row1[0], row1[1], row2[1]))
break
# 关闭游标
del insert_cursor
print("导出完成!")
```
请将代码中的"路径\到\您的\数据库.gdb"替换为您的实际数据库路径,"要素类1"和"要素类2"替换为您要比较的两个要素类的名称。执行代码后,将会在指定的工作空间中创建一个输出表格,其中包含不一致的要素的标识码、地类名称1和地类名称2。
阅读全文