Wie schneidet WorldMap mit Polygon in R?

8

Ich habe einen Weltkarten-Datensatz von www.GADM.org mit dem R-Paket-Raster importiert. Ich möchte es auf ein Polygon abschneiden, das ich erstellt habe, um die Größe der Karte zu reduzieren. Ich kann die Daten abrufen und ich kann das Polygon kein Problem erstellen, aber wenn ich den 'gIntersection' Befehl verwende, erhalte ich eine obskure Fehlermeldung.

Irgendwelche Vorschläge, wie Sie meinen World Map-Datensatz schneiden können?

%Vor%

Fehlermeldung:

%Vor%     
Keith W. Larson 08.04.2013, 14:14
quelle

2 Antworten

8

Sie brauchen PBS nicht zu benutzen (ich habe das auf die harte Tour gelernt, wie die r-sig-geo Link von @flowla wurde ursprünglich von mir gepostet!). Dieser Code zeigt, wie man alles in RGEOS macht, dank verschiedenen verschiedene Postings < von Roger Bivand. Dies wäre die kanonischere Art der Teilmengenbildung, ohne auf PolySet-Objekte umzuschalten.

Der Grund für die Fehlermeldung ist, dass Sie für eine Sammlung von SpatialPolygons keine Zwischenüberschrift verwenden können. Sie müssen sie einzeln ausführen. Finden Sie mit gIntersects heraus, welche Sie verwenden möchten. Ich unterteile dann jedes Landpolygon mit gIntersection . Ich hatte ein Problem damit, eine Liste von SpatialPolygons-Objekten zurück an SpatialPolygons zu übergeben, wodurch die ausgeschnittenen Shapefiles in SpatialPolygons umgewandelt werden, da nicht alle ausgeschnittenen Objekte von class SpatialPolygons stammten. Sobald wir diese ausgeschlossen haben, funktioniert alles gut.

%Vor%

Wenn Sie können, empfehle ich Ihnen naturalearthdata . Sie haben qualitativ hochwertige Shapefiles, die auf dem neuesten Stand gehalten werden und ständig auf Fehler überprüft werden (da sie Open Source sind, wenn Sie einen Fehler finden, mailen Sie sie). Ländergrenzen sind unter den Cultural Schaltflächen. Sie werden sehen, sie sind auch ein bisschen leichter und Sie können eine Auflösung wählen, die Ihren Bedürfnissen entspricht.

    
Simon O'Hanlon 16.04.2013, 22:48
quelle
2

Wie wäre es mit einem kleinen Zwischenschritt? Ich habe den folgenden Code hauptsächlich von R-sig-Geo und von mir übernommen denke, es sollte den Trick machen. Sie benötigen sowohl 'maptools' als auch 'PBSmapping' Pakete, also stellen Sie sicher, dass Sie sie installiert haben. Hier ist mein Code:

%Vor%

Ich habe es gerade getestet und es hat ohne Probleme funktioniert. Es dauerte jedoch einige Zeit, um SpatialPolygons in PolySet zu konvertieren.

Prost, Florian

    
fdetsch 08.04.2013 16:24
quelle

Tags und Links