R: ошибка при использовании пакетов RGDAL и RASTER

По месту требования:

Вот исходный код:

GRA_D1<- raster(files[[1]])
//Sets up an empty output raster: 
GRA_D1<- writeStart(GRA_D1,filename='GRA_D1.tif', format='GTiff', overwrite=TRUE)

//Write to the raster, for loop:
for(i in 1:dim(GRA_D1)[1]){

//Extract raster values at rows
d.Frame<- matrix(NA,ncol=2,nrow=dim(GRA_D1)[2])
d.Frame[,1]<- getValues(r1[[1]],i) 
d.Frame[,2]<- getValues(r1[[2]],i)

w.Frame<- as.data.frame(d.Frame)
names(w.Frame)<- c("D1_pred_disAg","D1_pred_RK")
//Apply the predictive model:
m.pred<-predict(mod.1, w.Frame) 

//Write the predictions to the empty TIFF raster
GRA_D1<-writeValues(GRA_D1,m.pred,i) 
print(i)}

//Finish writing to the raster
GRA_D1<- writeStop(GRA_D1) 

Я пытаюсь записать выходные данные в пустой растр TIFF, но продолжаю получать следующее сообщение об ошибке:

#Error in .local(.Object, ...) : 
`general_file_path\GRA_D1.tif' does not exist in the file system,
and is not recognised as a supported dataset name.

Интересно, связано ли это с неправильным использованием функций в пакете RGDAL или RASTER.

Может кто-нибудь мне помочь?

Заранее благодарим за вашу щедрость.

Ура, AD


person user3791184    schedule 30.06.2014    source источник


Ответы (2)


Супер простое исправление. Не могу поверить, что это так просто и что мне потребовалось столько времени, но вот ответ:

Файлы "rgdal" и / или "GTiff" не любят использование подчеркивания в именах их наборов данных.

При запуске кода с «GRAD1.tif» (вместо «GRA_D1.tif») все работает хорошо.

person user3791184    schedule 01.07.2014
comment
Ты не одинок. Я также потратил много времени на выяснение причины ошибки. Удаление подчеркивания заставило R выдавать более подробное сообщение об ошибке. Это произошло из-за подчеркивания ('_') и 'Ошибка синтаксического анализа в EOF, не все элементы были закрыты, начиная с VRTDataset' - person EpiGen; 21.01.2016

Я думаю, вам действительно не следует делать ничего из этого, как вы могли бы:

 p <- predict(r1, mod.1, filename='GRA_D1.tif')

(и это имя файла работает нормально)

person Robert Hijmans    schedule 23.01.2016