ArcGIS自带的 删除相同项 工具在指定了要素类和字段之后,删除哪些相同项并不受控制。
如上图,不清楚到底会删除哪一项。如果我需要保留最新年份的怎么办呢?
import arcpy
p = arcpy.mp.ArcGISProject('CURRENT')
m = p.listMaps('地图')[0]
l = m.listLayers('JMD')[0]
cursor = arcpy.SearchCursor(l)
uniqueArea = []
for row in cursor:
value = row.getValue('Shape_Area')
if value not in uniqueArea:
uniqueArea.append(value)
for value in uniqueArea:
cursor = arcpy.UpdateCursor(l, where_clause="Shape_Area = " + str(value),
spatial_reference=None,
fields=None,
sort_fields="NF D")
i = 0
for row in cursor:
if i > 0:
cursor.deleteRow(row)
i=i+1
注:对于面积值要显示尽可能多的小数位确认是否相等
也可用 排序 工具对年份进行排序,删除相同项 工具会删除OBJECTID靠后的相同项。