私は、QGISで行われたセグメント化の結果を含むいくつかのシェープファイル(タイプポリゴン)を解析するためにPysalツールを使用しています。Pysalはいくつかのポリゴンネイバーを認識しません
私は、対応するシェープファイルの名前VECTさ
segshp = pysal.weights.Queen.from_shapefile(vect)
を使用してシェープファイルをロードします。
問題は、隣人の辞書を見ると、ポリゴンが2ピクセル未満のものを共有する場合、近隣と見なされないということです。
ArcGISを使用して、ポリゴン隣接(計算ツール→近接→ポリゴン隣接)を計算します。たとえば、ポリゴン1227には画像に示すように4つの隣接があります。
Neighbors calculated with ArcGIS
しかしPysalを使用してPythonでロードするときに、多角形1227は、3ネイバーを有しており、欠落一つのみ2ピクセルの境界線を共有する、3307です。 1または2ピクセルしか共有しない他のポリゴンでも同じことが起こります。この2ピクセルの「閾値」は、私がいくつかのポリゴンの解析を見ただけのものです。
Neighbors calculated with Pysal
とにかくすべてのネイバーを検討するために、その「しきい値」を変更するのはありますか?私はPysalのドキュメントで見て、多分それは、コマンド
pysal.weights.user.min_threshold_dist_from_shapefile
または類似のものに近い関連と思ったが、正直なところ私は考えを持っていないしました。
また、pysal.weights.Rook ...オプションで試しましたが、それよりも少ない近隣を認識し、より多くの島を検出します。
どうもありがとう
シェイプファイルが有効であり、ポリゴン3307にポリゴン1227と共通の頂点が2つあることを確認できますか? QGISでジオメトリを編集すると、3307の頂点が表示されます。また、QGISまたはArcGISでジオメトリを修復してみてください。 – Charles