2017-06-05 2 views
0

Wenn ESRI-Grid-Dateiformat-Raster in for-Schleife eingelesen und in HFA-Dateien konvertiert werden, wird der Name der Ausgabedatei nicht mit dem Namen der Eingabedatei festgelegt. Der folgende Code wird für die Konvertierung verwendet;Speichern des Ausgabe-Rasterdateinamens nicht wie in der Eingabedateiliste festgelegt

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

Antwort

0

Der Wert i im for-Schleife ist eine ganze Zahl, iteriert nach Ihrer 1:length(raster_data) Eingabe. Sie müssen den Namen von Ihrem raster_data Vektor mit dieser Ganzzahl referenzieren, anstatt die Ganzzahl selbst einzufügen. diese

Wechsel:

paste0(i, '.IMG', sep = '') 

Um dies:

paste0(raster_data[i], '.IMG', sep = '') 

Jetzt sind Sie die Textzeichenfolge an der Stelle immer i in Ihrer Eingabeliste. Wahrscheinlich möchten Sie die ursprüngliche Dateierweiterung entfernen, damit dies besser funktioniert.

sub("\\.[a-z|A-Z]+$", ".IMG", raster_data[i]) 

Dies wird alle vorhandenen Dateierweiterung mit neuen ersetzen.

Verwandte Themen