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

Not saving output raster file name as set in input file list

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

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

这会将所有现有的文件扩展名替换为您的新文件扩展名。