附加大 spatRaster 对象的范围以匹配 spatVector 的范围:计算区域统计数据并摆脱“范围不重叠错误?”

时间:2021-04-09 16:54:04

标签: r raster terra

我专门研究 terra 软件包。

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

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

目标:计算区域统计数据

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

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

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

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

1 个答案:

答案 0 :(得分:0)

区域没有“'SpatRaster,SpatVector”方法,所以你的问题没有答案。我假设您首先使用光栅化并在那里犯了错误。对于所有 R 问题,您应该包含一个最小的、独立的可重现示例,如下所示,表明无需做您认为需要做的事情

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