2015-05-04 50 views
0

我正在尝试在ArcMap中查看一组形状,并查看它们是否具有相同的形状和相同的资产名称。我可以拥有相同的形状,但拥有不同的资产。我用arcpy和一个光标写了这个:我如何寻找具有相同字段的相同形状?

我该如何使用它,比较它发现的形状并查看资产名称是否相同?

+0

您使用的是什么版本的ArcGIS?相同或不同要素类中的要素是? – DWynne

+0

我正在使用ArcMap 10.2.2 – ElizabethSchlueter

回答

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和形状。如果没有行被返回,那么它是唯一的。

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

有在这里表视图VS游标的相对表现一个有趣的讨论https://geonet.esri.com/thread/12041

最后的思考:你需要使用游标?有一个名为“Find Identical”的GP工具已经具有此功能。 http://resources.arcgis.com/en/help/main/10.1/index.html#//001700000054000000

+0

对不起。我为这个操作使用了一个游标,并且确实创建了名为ShapeArea的字典。我忘了将这两项内容包含在我放在这里的代码中。 – ElizabethSchlueter

+0

那么你是否能够比较字典的工作?您必须先将所有形状和ID读入字典中,那么您是否尝试过表格视图或搜索光标以查看它们是否更快? –

+0

是的,我是。我发现了一种通过那里的对象ID查看形状的方法,但我想知道是否有方法使用对象ID和资产名称字段 – ElizabethSchlueter

相关问题