我希望将美国东半部的道路(包括每条道路的一列长度)的shapefile转换为1x1公里道路密度的栅格,使用R。
我在Arcmap中找不到直接的方法(Line density与单元格中心的半径一起工作,而不仅仅是单元格)。
发布于 2021-09-03 12:12:14
这是一个从栅格单元创建多边形的解决方案(改编自我的答案here)。您可能需要对数据集的子集执行此操作,然后进行合并。
示例数据
library(terra)
v <- vect(system.file("ex/lux.shp", package="terra"))
roads <- as.lines(v)
rs <- rast(v)解决方案
values(rs) <- 1:ncell(rs)
names(rs) <- "rast"
rsp <- as.polygons(rs)
rp <- intersect(roads, rsp)
rp$length <- perim(rp) / 1000 #km
x <- tapply(rp$length, rp$rast, sum)
r <- rast(rs)
r[as.integer(names(x))] <- as.vector(x)
plot(r)
lines(roads)https://stackoverflow.com/questions/69035297
复制相似问题