2017-02-17 5 views
1

Ich konvertiere ein Raster in Polygone. In meinem ersten Raster haben Zellen einen anderen Bereich, aber wenn ich unter Verwendung von rasterToPolygons in ein Polygon umwandle und es plotte, sehe ich ein Gitter mit gleichem Abstand, obwohl die Anfangszellen eine andere Fläche hatten?r Raster zu Polygon zeigt ein reguläres Raster, auch wenn Zellen unterschiedliche Fläche haben?

Ist es ein Problem mit meinem R-Code oder ein Problem mit meinem schlechten Verständnis von Projektionen? Wie kann ich die Polygone mit einer Fläche proportional zum Zellenbereich darstellen?

library(raster) 
r <- raster(nrow=18, ncol=36) 
r$value <- 1:ncell(r) 
r$area <- as.data.frame(area(r))$layer 

head(as.data.frame(r)) 

ras_to_pol <- rasterToPolygons(r) 
spplot(ras_to_pol, "area", main="Area of initial cells converted to polygons") 

enter image description here

Dank!

Antwort

1

In Ihrem Code geben Sie weder die Auflösung der Zellen noch die Ausdehnung des Rasters oder der Projektion an. Daher raster Standardeinstellung:

extent  : -180, 180, -90, 90 (xmin, xmax, ymin, ymax) 
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 

und da Sie nrow=18, ncol=36 verwenden Sie werden Zellen von 10 Grad sowohl auf Breiten- und Längengrad erhalten, und daher „square“ Zellen, wenn man sich in „kartesischen Koordinaten“ auf einer Ebene zeichnen .

in geographischen Koordinaten jedoch der Bereich der Oberfläche des „Sphäroid“ entsprechend eine 10x10 Grad Zelle ändert tatsächlich mit dem Breitengrad (siehe hier https://gis.stackexchange.com/a/29743 und hier https://badc.nerc.ac.uk/help/coordinates/cell-surf-area.html für eine Erklärung), wie sie durch die „Farben“ gezeigt auf deiner Handlung.

Wenn Sie Polygone mit der Variablen "area" haben wollen, müssen Sie eine Projektion auf die gleiche Fläche projizieren. Es gibt viele: hier bin ich mit einem konischen Equal Area als Beispiel:

ras_to_pol_new <- spTransform(ras_to_pol, CRS("+init=epsg:3410")) 
spplot(ras_to_pol_new, "area", main="Area of initial cells converted to polygons") 

enter image description here

Sie sehen können, wie der Bereich der Polygone mit dem Breitengrad abnimmt. (Für eine sehr gute Grundierung auf Vorsprünge, können Sie zum Beispiel sehen: https://kartoweb.itc.nl/geometrics/Map%20projections/mappro.html)

+0

Danke für die Erklärung! Also kommt das Problem, dass ich in den kartesischen Koordinaten plane? Welches Koordinatensystem/welche Projektion sollte ich verwenden, um die Zellen mit "Form" proportional zu ihrer Fläche zu haben? – Matifou

+0

Nun, nicht wirklich von der Tatsache, dass Sie "kartesische Koordinaten" verwenden. Mehr von der Tatsache, dass eine geografische Projektion nicht (ich denke) gleich groß sein kann. Um die "variablen Bereiche" zu sehen, müssen Sie eine Projektion auf die gleiche Fläche projizieren (siehe die bearbeitete Antwort). – lbusett

+0

genial, das beantwortet die Frage perfekt, vielen Dank !!! – Matifou