Calcular el área para cada polígono en R

9

Estoy trabajando con un archivo de formas que tiene muchos polígonos.

¿Cómo agrego un campo más llamado "area_sqkm" y calculo el área para cada polígono en el shapefile?

HLe
fuente
1
¿Qué bibliotecas has instalado y qué has probado?
GISKid
55
rgeos :: gArea (x, byid = TRUE)
mdsumner
1
Bienvenido a gis.stackexchange! Tenga en cuenta que se espera que una buena pregunta en este sitio muestre cierto grado de investigación de su parte, es decir, lo que ha intentado y, si corresponde, el código hasta ahora. Para más información, puede consultar nuestras preguntas frecuentes .
oscuro

Respuestas:

19

Tu puedes hacer

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

Asumiendo que su crs es longitud / latitud, o con el metro como unidad de distancia

Robert Hijmans
fuente
1
¿Es raster::area()más preciso rgeos::gArea()con los datos no proyectados que con los datos proyectados?
Richard DiSalvo
1
Puede ser. Porque las proyecciones distorsionan. Si la distancia entre nodos del polígono es alta, la proyección puede distorsionar aún más el área (ver la geosphereviñeta).
Robert Hijmans