题
我想打开光栅文件(ASCII或TIFF格式),其聚集的细胞和在这个新的光栅文件和另一个值之间的这种操作次数相关之后。不幸的是,我不知道什么是错在我的命令 - 我得到一个错误信息:
x <- GDAL.open('~/Pulpit/dods/karol/TVDI 113_121/TVDI_kamp_evi_TRANSF.asc')
CPL ERROR 4:`〜/讲坛/ DODS /卡罗尔/ TVDI 113_121 / TVDI_kamp_evi_TRANSF.asc”不存在于文件系统中存在,并没有被识别为一个支持数据集名称
错误。本地(.Object,...):`〜/讲坛/ DODS /卡罗尔/ TVDI 113_121 / TVDI_kamp_evi_TRANSF.asc”确实在文件系统中不存在的,并作为支持的数据集名称不被认可。
解决方案
如果您有麻烦的文件名,你可以这样做:
my_asc_files = dir("../somepath", pattern="*.asc", recursive=T, full.names=T)
files_I_want = my_asc_files[c(1,12,32,33)]
然后就可以加载文件这样
library(raster)
my_rasters = lapply(files_I_want, raster)
然后,你可以这样做:
pairs(my_rasters)
和这样的:
for(i in 1:length(my_rasters))
for(j in i:length(my_rasters))
if(i != j) {
df = na.omit(data.frame(values(my_rasters[[i]]), values(my_rasters[[j]])))
cor(df[,1], df[,2])
}
虽然你会遇到的问题,如果栅格是如此之大,你不能在同一时间在内存中举行两次。如果没有一个更好的问题将是很难给你更好的建议。
其他提示
要读取(开放)的光栅,一种方法是使用readGDAL
:
library(rgdal)
r <- readGDAL("~/myhome/thisdir/IhaveaFile.asc")
这是我个人的偏好,唯一的理由,否则使用GDAL.open
或raster
是,如果我的机器不具备RAM(+升技)来处理有关的数据集。
不隶属于 StackOverflow