将起点和终点坐标转换为R中的空间线 [英] Convert Begin and End Coordinates into Spatial Lines in R

查看:5
本文介绍了将起点和终点坐标转换为R中的空间线的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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对象,这样我就可以使用sp包中的over函数。

推荐答案

这里有一个方法:

## 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),否则您可能需要单个对象?

为了好玩,首先构建为spatstat 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中的空间线的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆