gpt4 book ai didi

r - 如何使用R包从点创建蒂森多边形?

转载 作者:行者123 更新时间:2023-12-04 05:08:29 26 4
gpt4 key购买 nike

我有多组要点(不同年份〜20)

我想使用r个空间包为每组点生成蒂森多边形。

我知道这可以使用GIS来完成,但由于我要执行批处理,因此R中的某些内容

乐于助人。

最佳答案

您尚未允许我们访问您的数据,但这是使用Carson Farmer在his blog上描述的方法来代表世界城市的点的示例。希望它能帮助您入门...

# Carson's Voronoi polygons function
voronoipolygons <- function(x) {
require(deldir)
require(sp)
if (.hasSlot(x, 'coords')) {
crds <- x@coords
} else crds <- x
z <- deldir(crds[,1], crds[,2])
w <- tile.list(z)
polys <- vector(mode='list', length=length(w))
for (i in seq(along=polys)) {
pcrds <- cbind(w[[i]]$x, w[[i]]$y)
pcrds <- rbind(pcrds, pcrds[1,])
polys[[i]] <- Polygons(list(Polygon(pcrds)), ID=as.character(i))
}
SP <- SpatialPolygons(polys)
voronoi <- SpatialPolygonsDataFrame(SP, data=data.frame(x=crds[,1],
y=crds[,2], row.names=sapply(slot(SP, 'polygons'),
function(x) slot(x, 'ID'))))
}

示例1:输入为SpatialPointsDataFrame:
# Read in a point shapefile to be converted to a Voronoi diagram
library(rgdal)
dsn <- system.file("vectors", package = "rgdal")[1]
cities <- readOGR(dsn=dsn, layer="cities")

v <- voronoipolygons(cities)

plot(v)

示例2:输入是x,y坐标的向量:
dat <- data.frame(x=runif(100), y=runif(100))
v2 <- voronoipolygons(dat)
plot(v2)

关于r - 如何使用R包从点创建蒂森多边形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9403660/

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