不保存输入文件列表中设置的输出光栅文件名

时间:2017-06-05 04:33:02

标签: r raster

当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)
}

1 个答案:

答案 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] )

这将使用您的新文件扩展名替换现有的文件扩展名。