[英]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.