ArcPyの2つのジオメトリを比較しますか?
2つの別々のフィーチャクラスを比較して、それらの違いを識別しようとしています(diff関数の一種)。私の基本的なワークフロー: SearchCursorを使用してジオメトリを抽出します 修正した__geo_interface__(valveLondon から取得したreturn {'type': 'Polygon', 'coordinates': [[((pt.X, pt.Y) if pt else None) for pt in part] for part in self]})を使用して、2つのフィーチャクラスのジオメトリをGeoJSONとして保存します。これは、ESRIがカーソルで使用する共有ジオメトリオブジェクトと、ディープコピーを作成できないことを回避するためです(gis.stackexchangeでのいくつかの議論でそれについて説明しています)。 一意の識別子に基づいて、2つのフィーチャクラスのジオメトリを確認します。たとえば、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]))。比較はGeometry Classにgeom1.equals(geom2)示されているとおりです。 ジオメトリに約140の変更が見つかると予想されますが、私のスクリプトでは430があると主張しています。 以下に例を示します。 >>> geom1geoJSON {'type': 'Polygon', 'coordinates': [[(-122.8423481559999, 47.060497293000083), (-122.84239755599992, …