2017-06-05 65 views
0

當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

i在for循環是一個整數,迭代按您的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]) 

這將替換任何現有的文件擴展名與您的新的。