比较ArcPy中的两个几何?
我正在尝试比较两个单独的要素类,以识别它们之间的差异(某种diff函数)。我的基本工作流程: 我使用SearchCursor提取几何 使用修改后的两个要素类的几何形状另存为GeoJSON __geo_interface__(从valveLondon获取 return {'type': 'Polygon', 'coordinates': [[((pt.X, pt.Y) if pt else None) for pt in part] for part in self]})。这是为了避免ESRI与游标一起使用的共享几何对象以及无法进行深拷贝的操作(有关gis.stackexchange的某些讨论在此进行了讨论)。 根据唯一标识符检查两个要素类的几何。例如,将FC1 OID1几何与FC2 OID1几何进行比较。为了获得几何形状作为ESRI对象实例,呼叫arcpy.AsShape()(改性具有孔(见上面第2点)与读取的多边形return cls(Array([map(lambda p: Point(*p) if p is not None else Point(), part) for part in coordinates]))。该比较简单地geom1.equals(geom2)为在所指示的Geometry类。 我期望找到约140个几何形状的变化,但是我的脚本坚持认为有430个变化。我试图检查那些GeoJSON表示形式,它们是相同的,但是Geometry类equals()拒绝这么说。 下面是一个示例: >>> geom1geoJSON {'type': 'Polygon', 'coordinates': [[(-122.8423481559999, 47.060497293000083), (-122.84239755599992, …