R sp:多边形面积单位

时间:2017-06-01 08:23:27

标签: r polygon area sp

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

有没有人知道sp包中多边形区域输出的单位?非常感谢!

2 个答案:

答案 0 :(得分:2)

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

的包geosphere
  

“用于地理应用的球面三角法。即计算   角度(经度/纬度)的距离和相关度量   位置“

例如,这个:

require(geosphere)
areaPolygon(mypoly)

(mypoly是一个spatialPolygons个对象)会给你一个平方公里的面积。

HTH。

答案 1 :(得分:1)

使用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