我有一个关于通过最大重叠进行多边形栅格化的问题,即分配与栅格单元具有最高面积重叠的多边形的值。
现实世界的练习是在 R 中对土壤 ID 的多边形进行栅格化,以便生成相对较低分辨率的土壤属性图作为模型输入。
问题在于rasterize()terra 包(以及类似的 star' st_rasterize())的函数从包含像元中点的多边形分配像元值。如果栅格单元包含多个多边形,我宁愿选择栅格单元中面积覆盖率最高的多边形(土壤 ID)的值。
这是一个独立的小示例,使用 terra 将我的问题可视化。
library(terra)
f <- system.file("ex/lux.shp", package="terra")
v <- vect(f)
r <- rast(v, ncols = 3, nrow = 3)
rcc <- vect(xyFromCell(r, cell = 1:ncell(r)))
x <- rasterize(v, r, field = "NAME_2")
plot(x)
lines(r, col = "light gray")
lines(v)
points(rcc)
Run Code Online (Sandbox Code Playgroud)
大多数情况下,包含单元中心的多边形似乎也具有最高的面积份额。然而,在某些情况下(顶行,第三个单元格),情况并非如此。与多边形相比,单元越大,问题似乎变得越严重。因此,我可以从高分辨率栅格开始,然后使用聚合函数(例如模式)重新采样到所需的(较低)分辨率。但是,也许有人有更有效的想法?
感谢您的帮助!