当ESRI网格文件格式栅格被读入for循环并将其转换为HFA文件时,输出文件名不会设置为与输入文件名相同。以下代码用于转换;
library(raster)
raster_data <- list.files(pattern='rain', full.names=FALSE)
# "rain1970" "rain1971"
for (i in 1:length(raster_data)) {
r.nc <- raster(raster_data[i])
writeRaster(r.nc, paste0(i, '.IMG', sep = ''), format = 'HFA', overwrite = T)
}
答案 0 :(得分:0)
for循环中的值i
是一个整数,根据1:length(raster_data)
输入进行迭代。您需要使用该整数引用raster_data
向量中的名称,而不是粘贴整数本身。
改变这个:
paste0(i, '.IMG', sep = '')
对此:
paste0(raster_data[i], '.IMG', sep = '')
现在,您将在输入列表中的位置i
处获取文本字符串。您可能希望删除原始文件扩展名,因此这可能会更好。
sub( "\\.[a-z|A-Z]+$", ".IMG", raster_data[i] )
这将使用您的新文件扩展名替换现有的文件扩展名。