如何绘制多个经纬度坐标的多边形并计算曲面面积? [英] How to draw Polygon for lots of lat/long coordinates and calculate surface are?

查看:15
本文介绍了如何绘制多个经纬度坐标的多边形并计算曲面面积?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下数据: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)

这会导致(显然不是一个很好的多边形): 我还尝试实现Create polygon from set of points distributed的答案,但这对我来说只产生了一个矩形:

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

推荐答案

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

这篇关于如何绘制多个经纬度坐标的多边形并计算曲面面积?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆