我如何寻找具有相同字段的相同形状?

时间:2015-05-04 17:27:23

标签: python arcpy arcmap

我正在尝试在ArcMap中查看一组形状,看看它们是否是相同的形状和相同的资产名称。我可以拥有相同的形状但不同的资产。我用arcpy和一个游标写了这个:

AssetName = srow.getValue("AssetName")
shape = srow.getValue("Shape")
field = shape.area
ID = srow.getValue("OBJECTID")
if field in areaList:
    if ID in ShapeArea.keys():
        ShapeArea[ID].append("Duplicate Shapes")
    else:
        ShapeArea[ID] = ["Duplicate Shapes"]
else:
    areaList.append(field)

我如何使用它比较它找到的形状,看看资产名称是否相同?

1 个答案:

答案 0 :(得分:0)

看起来ShapeArea是你在某处建造的词典......

#if ID exists, check shape
if ID in ShapeArea.keys():
    #If shape is not in shape list, add it
    if not shape in ShapeArea[ID]:
        ShapeArea[ID].append("Duplicate Shapes")
#if ID does not exist, add ID and shape to dict.
else ShapeArea[ID] = shape

如果您有光标中的某个功能并想要检查它是否存在于其他位置,则可以使用包含该功能的Id和形状的where子句查询该表。如果没有返回任何行,则它是唯一的。

exists = arcpy.MakeTableView_management('INPUT TABLE',"exists", "AssetName = '{}' and Shape = '{}'".format(AssetName,shape))
if int(arcpy.GetCount_management(exists)[0])==0
    Do Stuff

有关表格视图与游标的相对表现的有趣讨论https://geonet.esri.com/thread/12041

最后的想法:你需要使用光标吗?有一个内置的GP工具叫做#34; Find Identical"已经有这个功能。 http://resources.arcgis.com/en/help/main/10.1/index.html#//001700000054000000