如何绘制大量纬度/经度坐标的多边形并计算表面积?

sh_*_*ent 2 r polygon r-sp

我有以下数据: https: //ufile.io/p9s0le6g ...其中包含 485 个纬度/经度观测值。我最终想计算这个数字的表面积(以平方米或平方公里为单位)。我想用数据点(外部点)创建一个多边形,然后计算表面积。但是,我无法想出一个漂亮的多边形。我的数据点作为坐标如下所示: 在此输入图像描述

我想要一个看起来像这样(或类似)的多边形: 在此输入图像描述 这是我尝试过的:

library(sp)
df <- read.csv('data.csv')
p = Polygon(df)
ps = Polygons(list(p),1)
sps = SpatialPolygons(list(ps))
plot(sps)
Run Code Online (Sandbox Code Playgroud)

这导致(显然不是一个漂亮的多边形): 在此输入图像描述我还尝试实现从分布的点集创建多边形 的答案,但这对我来说只是一个矩形: 在此输入图像描述

任何人都知道如何优化我的多边形以获得看起来像我的数据点的外部形状的图形,以及如何计算该优化多边形的表面积?

Chr*_*ris 5

使用concaveman和sf我们可以在您的一组点周围创建一个凹形外壳:

library(sf)
library(concaveman)

pts <- st_as_sf(df, coords=c('LONG','LAT'), crs=4326 )

conc <- concaveman(pts)

conc %>% st_area()
# 4010443 [m^2]
Run Code Online (Sandbox Code Playgroud)
library(ggplot2)
ggplot() +
  geom_sf(data=pts, col = 'red', pch=3)  +
  geom_sf(data = conc, fill = NA)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述