繁体   English   中英

从最外点空间坐标创建多边形

[英]Create polygon from outermost point spatial coordinates

我有一个大的 dataframe 点坐标,我试图从坐标的边缘制作一个多边形。 有些点落在中间附近,所以我不希望这些点塑造所创建的多边形的边界。 这些是空间数据,我确实将它们转换为 sf 或 terra 对象,但在最简单的形式中,它们只是 (x,y) 坐标。

我已经看过,但找不到任何已经为此任务开发的 function。

这是复制问题的一组基本坐标:

lat <- c(-34.8861,-34.9845,-34.9839,-34.4555,-34.3272,-34.922,-34.7)
lon <- c(118,117.721,117.118,116.789,115.785,115.843,116.5)

plot(lon,lat)

从这些坐标的最外面的点创建多边形有什么想法吗?

是这样的:

library(sf)
df <- data.frame(x = lon, y = lat)
pts1 <- st_as_sf(x = df, coords = c('x', 'y'))
my_hull <- st_convex_hull(st_union(pts1))
plot(my_hull)

对于“terra”,它是这样的:

lat <- c(-34.8861,-34.9845,-34.9839,-34.4555,-34.3272,-34.922,-34.7)
lon <- c(118,117.721,117.118,116.789,115.785,115.843,116.5)

library(terra)
v <- vect(cbind(lon, lat), crs="+proj=longlat")
x <- convHull(v)

plot(x, col="red")
points(v, cex=2, col="blue")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM