Ich versuche, zwei SpatialPolygonsDataFrames zu schneiden und als Ergebnis einen SpatialPolygonsDataFrame zu erhalten. Leider kann ich mit der gIntersection
Funktion von rgeos
(die beeindruckend schnell arbeitet, um die Polygone zu schneiden) die zugehörigen Datenrahmen nicht abrufen. Betrachten Sie das folgende Beispiel:
> fracPoly <- gIntersection( toSingle, fromSingle )
> class(toSingle)
[1] "SpatialPolygonsDataFrame"
> class(fromSingle)
[1] "SpatialPolygonsDataFrame"
> class(fracPoly)
[1] "SpatialPolygons"
Ich kann eine Wrapper-Funktion schreiben, die die Übertragung von übernimmt data.frames
, aber es wird ein kleiner Schmerz sein, alle Überprüfungen richtig durchzuführen, und vorher hatte ich gehofft, jemand könnte entweder bestätigen, dass es keinen besseren Weg gibt, oder mich auf eine andere Funktion (oder Option) hinweisen für gIntersection
) was mir erlauben würde, das zugehörige beizubehalten data.frames
.
Aktualisieren
Bei weiterer Überlegung kann dies ein sehr absichtliches Verhalten von sein gIntersection
. Immerhin, von den beiden SPDFs, wessen Datenrahmen geben Sie weiter? Daher muss ich möglicherweise einen Wrapper schreiben, der die beiden zusammenführt.
quelle
Antworten:
Für einige Projekte hatte ich das gleiche Bedürfnis. Viel mehr als das Beibehalten
data.frame
, mussten wir weiteren Code einrichten, um den Ausgabegeometrietyp zu verwalten, und mit einer Bereinigung fortfahren (z. B. saubere Geometriesammlungen), um einen vollständigen Schnittpunkt-Geoprozess zu erhalten. Falls Sie eine solche Aufgabe in R noch ausführen müssen , können Sie das RFigisGeo- Paket ausprobieren :quelle
Das Verhalten von gIntersection besteht darin, keine geschnittenen Daten von Entwurf zu übergeben:
Zu meiner Überraschung verfügt das Rasterpaket über eine Schnittfunktion , die sich einfach schneidet und auch die Daten übergibt.
Die vollständigen Informationen dazu habe ich erhalten: http://r-sig-geo.2731867.n2.nabble.com/Intended-usage-of-gIntersection-td7587120.html
quelle
Für diejenigen (wie mich), für die die obigen Antworten nicht funktioniert haben, erklärt der Link hier, dass Sie genau dies mit dem Schnittpunkt des Rasters tun können.
Wie behalte ich alle Attributdaten bei, wenn zwei Polygone in R abgeschnitten werden?
Ich habe dies verwendet, um einen SpatialPointsDataFrame mit einem SpatialPolygons-Shapefile zuzuschneiden. Es wird eine beschnittene / abgeschnittene Version des SpatialPointsDataFrame erstellt, wobei die Originaldaten beibehalten werden.
quelle