You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言Raster栅格数据50米分辨率转30米分辨率问题求助

50米栅格调整为30米分辨率的解决方案

错误原因

disaggregate 函数的fact参数仅支持传入大于等于1的正整数,作用是将单个原始栅格单元拆分为fact个等大的更小单元,仅适用于整数倍的精度提升场景。你传入的30/50=0.6为小于1的小数,不符合参数要求,因此无法生效。
非整数倍的分辨率调整需要通过重采样实现,可行方案如下:


方案1:使用raster包resample函数

library(raster)
# 读取原始50米栅格
orig_rst <- raster("file.tif")
# 构建与原始栅格同范围、同投影,分辨率为30米的参考栅格
target_rst <- raster(extent(orig_rst), res = 30, crs = crs(orig_rst))
# 重采样:连续值数据用bilinear双线性插值,分类数据请改用method = "ngb"邻近法
resampled_rst <- resample(orig_rst, target_rst, method = "bilinear")
# 导出结果
writeRaster(resampled_rst, "output_30m.tif", overwrite = TRUE)

方案2:使用terra包实现(官方推荐替代raster包,性能更优)

library(terra)
# 读取原始栅格
orig_rst <- rast("file.tif")
# 直接指定目标分辨率完成重采样
resampled_rst <- resample(orig_rst, res = 30, method = "bilinear")
# 导出结果
writeRaster(resampled_rst, "output_30m.tif", overwrite = TRUE)

内容的提问来源于stack exchange,提问作者Ankit Sagar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 22:06:05