不保存输入文件列表中设置的输出光栅文件名
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] )
这会将所有现有的文件扩展名替换为您的新文件扩展名。
当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] )
这会将所有现有的文件扩展名替换为您的新文件扩展名。