R: 使用RGDAL和RASTER包时抛出错误

3
尊敬的用户:
以下是源代码:
```html

尊敬的用户:

以下是源代码:

```
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.

我想知道这是否与 RGADL 或 RASTER 包中使用函数不当有关。

请问有人可以帮助我吗?

感谢您的慷慨。

祝好, AD

2个回答

4
超级简单的解决方法。无法相信解决方案如此简单,而且我用了这么长时间,但答案就在这里: “rgdal”和/或“GTiff”文件不喜欢在数据集名称中使用下划线。
当使用“GRAD1.tif”(而非“GRA_D1.tif”)运行代码时,一切正常。

你并不孤单。我也花了很多时间找出错误的原因。去掉下划线之后,R给出了更详细的错误信息。所以这是由于下划线('_')和'在EOF处解析错误,未关闭所有元素,从VRTDataset开始'造成的。 - EpiGen
这对我没用。 - canderson156

1

我认为您不应该做任何这样的事情,因为您可以:

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

(而且那个文件名很好用)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接