gpt4 book ai didi

r - 将开始和结束坐标转换为 R 中的空间线

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

我有一组开始和结束坐标,如下所示:

begin.coord <- data.frame(lon=c(-85.76,-85.46,-85.89), lat=c(38.34,38.76,38.31))
end.coord <- data.frame(lon=c(-85.72,-85.42,-85.85), lat=c(38.38,38.76,38.32))

我试图通过将每个起点连接到其相应的终点来创建一组 3 条线段。我希望最终产品是 SpatialLines对象,以便我可以将它与 over 一起使用 sp 中的函数包裹。

最佳答案

这里有一个方法:

## raw list to store Lines objects
l <- vector("list", nrow(begin.coord))
library(sp)
for (i in seq_along(l)) {
l[[i]] <- Lines(list(Line(rbind(as.matrix(begin.coord[i, ], end.coord[i,])))), as.character(i))
}

SpatialLines(l)

这为每一对创建了一个单独的 Lines 对象(每个对象都有一个唯一的 ID),否则您可能想要一个对象?

只是为了好玩,首先构建为 sptstat psp 对象,然后使用 maptools 中的方法进行强制:
library(spatstat)
p <- psp(begin.coord[,1], begin.coord[,2], end.coord[,1], end.coord[,2], owin(range(c(begin.coord[,1], end.coord[,1])), range(c(begin.coord[,2], end.coord[,2]))))

library(maptools)
as(p, "SpatialLines")

关于r - 将开始和结束坐标转换为 R 中的空间线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20531066/

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