如何绘制多个经纬度坐标的多边形并计算曲面面积? [英] How to draw Polygon for lots of lat/long coordinates and calculate surface are?
本文介绍了如何绘制多个经纬度坐标的多边形并计算曲面面积?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想要一个看起来像那样(或类似)的多边形: 以下是我尝试的内容:
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的答案,但这对我来说只产生了一个矩形:
有人知道我如何优化我的多边形以获得一个看起来像我的数据点的外部形状的图形,以及如何计算优化后的多边形的表面吗?
推荐答案
使用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]
library(ggplot2)
ggplot() +
geom_sf(data=pts, col = 'red', pch=3) +
geom_sf(data = conc, fill = NA)
这篇关于如何绘制多个经纬度坐标的多边形并计算曲面面积?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文