我正在尝试在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)
我如何使用它比较它找到的形状,看看资产名称是否相同?
答案 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