我使用R读取形状文件,用油田的sp包多边形(WGS84的经度 - 纬度)及其各自的区域进行分析。不幸的是我不知道区域输出的单位。例如。面积平均为0.85个单位(最大4.34),可能不是平方公里,因为这对油田来说太小了。
有没有人知道sp包中多边形区域输出的单位?非常感谢!
答案 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
。