Berechnen Sie die Fläche für jedes Polygon in R.

9

Ich arbeite mit einem Shapefile, das viele Polygone enthält.

Wie füge ich ein weiteres Feld mit dem Namen "area_sqkm" hinzu und berechne die Fläche für jedes Polygon im Shapefile?

HLe
quelle
1
Welche Bibliotheken haben Sie installiert und was haben Sie versucht?
GISKid
5
rgeos :: gArea (x, byid = TRUE)
mdsumner
1
Willkommen bei gis.stackexchange! Bitte beachten Sie, dass von einer guten Frage auf dieser Website erwartet wird, dass sie ein gewisses Maß an Forschung von Ihrer Seite zeigt, dh was Sie bisher versucht haben und - falls zutreffend - Code. Weitere Informationen finden Sie in unseren FAQ .
underdark

Antworten:

19

Du kannst tun

library(raster)
x <- shapefile('file.shp')
crs(x)
x$area_sqkm <- area(x) / 1000000

Angenommen, Ihr crs ist Längen- / Breitengrad oder mit Meter als Entfernungseinheit

Robert Hijmans
quelle
1
ist raster::area()mit nicht projizierten Daten genauer als rgeos::gArea()mit dem projizierten Daten?
Richard DiSalvo
1
Es kann sein. Weil Projektionen verzerren. Wenn der Abstand zwischen den Knoten des Polygons hoch ist, kann die Projektion den Bereich weiter verzerren (siehe geosphereVignette).
Robert Hijmans