使用R的raster包堆叠.tif栅格文件时遇格式错误求助
解决R中栅格堆叠报错的问题
错误原因
你的代码里list.files的pattern=".tif"会匹配所有文件名中包含.tif的文件,而目录里存在ArcGIS生成的辅助文件(比如jbas_14.tif.vat.cpg),这类文件不是标准TIFF栅格,GDAL无法识别,导致报错。
解决方案
1. 修正文件匹配规则
使用正则表达式精确匹配以.tif结尾的文件,修改list.files的参数:
cov.lst <- list.files(path = getwd(), pattern = "\\.tif$", full.names = TRUE)
\\.用来转义.(正则中.代表任意字符)$表示匹配字符串结尾full.names = TRUE直接返回带完整路径的文件名,无需手动拼接getwd()
2. 验证文件列表
先打印cov.lst确认只包含真正的TIFF文件:
print(cov.lst)
3. 重新生成栅格堆叠
用修正后的文件列表执行堆叠操作:
使用raster包:
covStack <- stack(cov.lst)
使用terra包(更高效,推荐):
covStack <- rast(cov.lst)
额外建议
- 尽量避免在工作目录中存放非栅格文件,减少匹配错误的可能
- 如果必须保留辅助文件,可以添加
ignore.case = TRUE,确保匹配.TIF后缀的文件
内容的提问来源于stack exchange,提问作者Brynollf
相关产品推荐
相关产品推荐

