附加大 spatRaster 对象的范围以匹配 spatVector 的范围:计算区域统计并摆脱 'extents do not overlap error?'

Append extent of big spatRaster object to match the extent of spatVector: to compute zonal stats and to get rid of 'extents do not overlap error?'

我正在专门研究 terra 包。

spatRaster 详细信息:南美洲碳通量数据(~500 GB)

spatVector 详细信息: 南美洲保护区数据库(~70 MB)

目标:计算区域统计数据

错误:执行分区统计操作时,范围不重叠。

可能的错误原因: 光栅文件只有陆地范围。然而,多边形延伸到海洋区域,因此具有陆地、海洋和陆地-海洋组合范围。

问题:是否可以将光栅文件扩展到多边形的范围而不丢失这么大的文件的任何值?有什么有效的方法可以解决这类问题吗?

PS: 我是新来的,如果有人发现类似的问题已经回答了,请帮助我。很抱歉,我无法为这个问题制作一个可重现的例子。

zonal 没有“'SpatRaster,SpatVector”方法,所以你的问题没有答案。我假设您首先使用光栅化并在那里犯了一个错误。这是一个最小的、独立的可重现示例,它表明没有必要做您认为需要做的事情:

library(terra)
#terra version 1.1.16
f <- system.file("ex/lux.shp", package="terra")
v <- vect(f)
f <- system.file("ex/elev.tif", package="terra")
r <- rast(f)

# remove part of raster, such that polygons have larger extent 
r <- crop(r, v[1:5])

z <- rasterize(v, r, "NAME_1")    
zonal(r, z, mean, na.rm=TRUE)

#        NAME_1 elevation
#1     Diekirch  403.4237
#2 Grevenmacher  329.4595
#3   Luxembourg  315.2139