Calculer l'aire de chaque polygone dans R


9

Je travaille avec un fichier de formes contenant de nombreux polygones.

Comment puis-je ajouter un champ supplémentaire nommé "area_sqkm" et calculer la zone pour chaque polygone dans le fichier de formes?


1
Quelles bibliothèques avez-vous installées et qu'avez-vous essayé?
GISKid

5
rgeos :: gArea (x, byid = TRUE)
mdsumner

1
Bienvenue sur gis.stackexchange! Veuillez noter qu'une bonne question sur ce site devrait montrer un certain degré de recherche de votre part, c'est-à-dire ce que vous avez essayé et - le cas échéant - le code jusqu'à présent. Pour plus d'informations, vous pouvez consulter notre FAQ .
underdark

Réponses:


19

Tu peux faire

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

En supposant que votre crs est la longitude / latitude ou avec le mètre comme unité de distance


1
les raster::area()données non projetées sont-elles plus précises que rgeos::gArea()les données projetées?
Richard DiSalvo

1
Ça peut être. Parce que les projections déforment. Si la distance entre les nœuds du polygone est élevée, la projection peut déformer davantage la zone (voir la geospherevignette).
Robert Hijmans
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.