如何高效地将分辨率为25米的栅格聚合成100米分辨率?

编程语言 2026-07-09

我在R 中有一个分辨率为25 m的英国土地覆盖栅格数据,包含21个类别,我想把它转换成一个分辨率为100 m的栅格数据,其中记录每个像元内各类别的占比。使用Terra将各类别拆分成单独的栅格并聚合,然后再把它们堆叠起来,似乎效率不高。

library(terra)
## Example data
Land_cover <- rast(nrow=100, ncol=100, res=25, ext=c(0,2500,0,2500), crs="local")
values(Land_cover) <- sample(2, 10000, replace=TRUE)

Broadleaf <- Land_cover == 1
Coniferous <- Land_cover == 2
broadleaf100 <- aggregate(Broadleaf, fact = 4, fun = mean)
coniferous100 <- aggregate(Coniferous, fact = 4, fun = mean)
broadcon <- c(broadleaf100, coniferous100)

exactextractr 可以获取位于多边形内的栅格类别所占的比例,但那需要一个多边形图层,我想这在计算上会比较重。有没有更高效的方法?

解决方案

你可以这样做:

x <- segregate(Land_cover) |> aggregate(4, mean)
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章