Ich verwende das Pysal-Werkzeug zur Analyse mehrerer Shapefiles (Typ Polygon), die die Ergebnisse von Segmentierungen in QGIS enthalten.Pysal erkennt einige Polygon-Nachbarn nicht
I lädt die Shape-Datei
segshp = pysal.weights.Queen.from_shapefile(vect)
wobei vect den Namen der entsprechenden Formdatei verwenden.
Das Problem ist, dass, wenn ich in das Nachbarwörterbuch schaue, wenn ein Polygon weniger als 2 Pixel teilt, es nicht als Nachbar betrachtet wird. Lassen Sie mich etwas besser zeigen:
Mit ArcGIS, ich berechne die Polygon-Nachbarn (Analyse-Tools -> Nähe ---> Polygon-Nachbarn), und zum Beispiel hat Polygon 1227 4 Nachbarn wie im Bild gezeigt.
Neighbors calculated with ArcGIS
Aber wenn in Python mit Pysal Laden, Polygon 1227 hat nur 3 Nachbarn und das eine fehlt, ist 3307, die nur eine 2 Pixel Grenze teilt. Das Gleiche passiert mit anderen Polygonen, die nur 1 oder 2 Pixel teilen. Diese "Schwelle" von 2 Pixeln ist genau das, was ich beim Analysieren einiger Polygone gesehen habe.
Neighbors calculated with Pysal
Gibt es trotzdem, dass „Schwelle“, um alle Nachbarn zu berücksichtigen zu ändern? Ich habe in der Pysal Dokumentation gesehen und dachte, vielleicht ist es mit dem Befehl verwendet ist
pysal.weights.user.min_threshold_dist_from_shapefile
oder etwas ähnliches, aber ehrlich gesagt habe ich keine Ahnung.
Ich habe auch versucht mit der Option pysal.weights.Rook ..., aber es erkennt weniger Nachbarn und findet mehr Inseln.
Vielen Dank
Können Sie überprüfen, ob Ihr Shapefile gültig ist und das Polygon 3307 mit dem Polygon 1227 2 Scheitelpunkte gemeinsam hat? Versuchen Sie, die Geometrie in QGIS zu bearbeiten, sehen Sie sich die Scheitelpunkte von 3307 an. Versuchen Sie auch, die Geometrie in QGIS oder ArcGIS zu reparieren. – Charles