gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 14:48:35 24 4
gpt4 key购买 nike

我有以下数据:https://ufile.io/p9s0le6g...由 485 个纬度/经度观测值组成。我最终想计算这个数字的表面积(以 m2 或 km2 为单位)。我想用数据点(外点)创建一个多边形,然后计算表面。但是,我想不出一个漂亮的多边形。我作为坐标的数据点如下所示: enter image description here

我想要一个看起来像那样(或类似)的多边形: enter image description here这是我尝试过的:

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

这导致(显然不是一个很好的多边形): enter image description here我也尝试实现 Create polygon from set of points distributed 的答案但这对我来说只是一个矩形: enter image description here

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

最佳答案

使用 concavemansf 我们可以在您的点集周围创建一个凹包:

library(sf)
library(concaveman)

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

conc <- concaveman(pts)

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

enter image description here

关于r - 如何为大量纬度/经度坐标绘制多边形并计算表面面积?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57474365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com