【发布时间】:2016-01-20 20:24:15
【问题描述】:
我正在尝试计算从栅格的几个像素到 R 中某些多边形的边界的距离,如图像所示。我有两个问题:
如何正确定义
SpatialPolygon对象的边界。我目前有两个选择,但我无法决定哪个是最好的。首先,我可以强制SpatialPolygonas一个SpatialLines对象,然后强制到 SpatialPoints。其次,我可以raster::rasterizeSpatialPolygon。我想每个选项都有其优点和缺点。我只想从边界的一侧进行距离计算。在示例中,我只想要从哥伦比亚内部的像素到两国边界的距离。我尝试使用纬度参数“过滤”边界,但实际边界非常不规则,因此使用严格的截止值可能会导致错误。
以下代码可用于获取示例SpatialPolygonsDataFrame:
#Get the world map and select two countries [Colombia and Venezuela]
library(maptools) #To get the polygon data
data(wrld_simpl)
colven <- c("Colombia", "Venezuela")
colven_map <- wrld_simpl[wrld_simpl$NAME %in% colven, ]
可以使用以下代码创建栅格数据:
library(raster)
raster <- raster(colven_map, nrow=100, ncol=100)
raster[] <- 1:length(raster)
raster_colven <- mask(raster, colven_map)
提前致谢
【问题讨论】:
-
你的图片没有显示出来。
-
请提出一个好的 R 问题:创建一个自包含的可重现示例并显示一些代码
-
我修改了问题并添加了一些代码 sn-ps 来获取 SpatialPolygon 数据和栅格。感谢您的推荐罗伯特。
标签: r geospatial distance raster euclidean-distance