Ich möchte ein SpatialPolygonsDataFrame
in R verallgemeinern , um das Zeichnen effizienter zu gestalten. Die Polygone, die ich habe, führen zu riesigen PDF-Plots, die langsam geladen und schwer in ein Dokument zu integrieren sind.
Ich habe versucht, die gSimplify
Funktion aus dem rgeos
Paket zu verwenden, aber leider wird die Topologie der Polygone nicht beibehalten.
Gibt es eine Alternative, die ich verwenden kann?
r
topology
generalization
Yellowcap
quelle
quelle
gSimplify()
hat einen optionalen Parameter,topologyPreserve
der standardmäßig verwendet wirdFALSE
. Haben Sie versucht, dies einzustellenTRUE
?Antworten:
Es gibt eine Diskussion darüber auf R-Sig-Geo . Um eine endgültige Antwort zu erhalten, sollten Sie dort nachfragen, da es Völker gibt, die die Einsichten von räumlichem R kennen.
Sie können dies jedoch auch in GIS-Desktopanwendungen tun (exportieren Sie die Form mit dem Befehl writeOGR aus rgdal oder writePolyShape () aus maptools) wie QuantumGIS, GRASS oder SAGA.
Verwenden Sie für QuantumGIS die Optionen Vektor / Geometriewerkzeuge / Geometrien vereinfachen (Ich habe die Topologie getestet und behalte sie nicht bei, sie wird jedoch auf Rumänien angewendet.
Für GRASS verwenden Sie v.generalize (lesen Sie das Handbuch für Informationen zu den Algorithmen, es gibt einige).
Für SAGA müssen Sie zuerst das Polygon in eine Linie konvertieren (Formen - Linien / Polygone in Linien konvertieren), dann die Linien vereinfachen (Formen Linien / Linienvereinfachung) und schließlich die Linien in Polygone konvertieren (Formen - Polygone / Linien in Polygone konvertieren). Ich habe dies getestet und das Ergebnis hat die Topologie erhalten.
Prost und viel Glück,
quelle
Es gibt jetzt das wunderbare
rmapshaper
Paket von Andy Teucher, das eine Simplify-Funktion enthält, die "topologisch bewusste Multi-Polygon-Vereinfachung durchführt".Aus ihrem Github-Repo ein Anwendungsbeispiel:
wo
states_sp
ist einspatialPolygons*
Objekt.Weitere Informationen finden Sie in der README-Datei des Pakets: https://github.com/ateucher/rmapshaper
quelle
das sollte helfen:
gSimplify(..., topologyPreserve=T)
aus demGEOS
Paketquelle
gSimplify
nicht wirklich die Topologie über mehrere Polygone. Ich denke, es bezieht sich mehr auf die Topologie von Einzel- oder Multipolygonen. Bei einem Shapefile mit vielen Polygonen wird die Topologie nicht beibehalten.