使用R语言Terra包重采样栅格时输出全NA的问题求助
问题分析与解决思路
核心原因
从你提供的栅格范围信息可直接看出:
rast2的空间范围为西半球(经度-123.25至-75.5,纬度26至49),对应北美东部区域proyield2的空间范围为东半球/非洲北部(经度-24.27至23.31,纬度0.29至30.53)
两个栅格的空间范围完全没有重叠,当执行resample(proyield2, rast2)时,目标栅格rast2的所有像元都不在原栅格proyield2的覆盖区域内,因此重采样结果自然全为NA/NaN。
解决步骤
验证空间重叠情况
用可视化或代码快速确认两个栅格的空间位置:# 可视化对比范围 plot(rast2, main = "rast2 范围") plot(proyield2, add = TRUE, col = "red") # 代码判断是否存在重叠 ext_rast2 <- ext(rast2) ext_proyield2 <- ext(proyield2) overlap <- intersect(ext_rast2, ext_proyield2) print(overlap) # 输出NULL表示完全无重叠排查数据来源问题
- 检查是否加载了错误的栅格文件:确认
proyield2的原始数据是否应当对应北美区域 - 核对坐标是否有误:比如是否将经度和纬度搞反,或原始数据的投影信息是否异常(当前两者均为WGS84,投影无问题)
- 检查是否加载了错误的栅格文件:确认
若需跨区域填充数据(谨慎使用)
如果确实需要将proyield2的数据扩展到rast2的范围,单纯重采样无法实现,需要使用空间插值方法,示例代码如下:# 将栅格转为点数据后执行插值 points <- as.points(proyield2) reyield_interp <- interpolate(rast2, points, method = "bilinear")⚠️ 注意:跨如此大的地理区域插值可能不具备实际研究意义,需结合你的场景判断合理性。
内容的提问来源于stack exchange,提问作者mbh
相关产品推荐
相关产品推荐

