R sp:多边形的面积单位

R sp: unit of area of Polygon

我用 R 读入一个形状文件来分析油田的 sp 包多边形(WGS84 的经纬度)及其各自的区域。不幸的是我不知道面积输出的单位。例如。面积输出平均为 0.85 个单位(最大 4.34),这可能不是以平方公里为单位,因为这对于油田来说太小了。

有谁知道sp包中Polygons输出面积的单位吗?非常感谢!

要在经纬度坐标中正确计算多边形的面积,最好事先使用 "spTransform" 将它们转换为公制等积投影。或者,您可以使用允许执行

的包 geosphere

"Spherical trigonometry for geographic applications. That is, compute distances and re- lated measures for angular (longitude/latitude) locations"

例如,这个:

require(geosphere)
areaPolygon(mypoly)

(mypoly 是一个 spatialPolygons 对象)将为您提供其面积(以平方公里为单位)。

HTH.

当使用 sf 时,您实际上 得到 结果单位:

> library(sf)
Linking to GEOS 3.5.1, GDAL 2.1.3, proj.4 4.9.2, lwgeom 2.3.2 r15302
> demo(nc, ask = FALSE, echo = FALSE)
Reading layer `nc.gpkg' from data source `/home/edzer/R/x86_64-pc-linux-gnu-library/3.4/sf/gpkg/nc.gpkg' using driver `GPKG'
converted into: MULTIPOLYGON
Simple feature collection with 100 features and 14 fields
Attribute-geometry relationship: 0 constant, 8 aggregate, 6 identity
geometry type:  MULTIPOLYGON
dimension:      XY
bbox:           xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965
epsg (SRID):    4267
proj4string:    +proj=longlat +datum=NAD27 +no_defs
> st_area(nc[1:2,])
Units: m^2
[1] 1137388604  611077263
> units::set_units(st_area(nc[1:2,]), km^2)
Units: km^2
[1] 1137.3886  611.0773

对于 longlat 数据,如此处,它在幕后使用 geosphere