R中打开栅格!和一些统计操作

Mat*_*usz 2 gis aggregate r raster

我想打开光栅文件(ASCII或TIFF格式),聚合它们的单元格,并在此操作之后计算这个新光栅文件和另一个光栅文件中值之间的相关性.不幸的是我不知道我的命令有什么问题 - 我收到一条错误消息:

x <- GDAL.open('~/Pulpit/dods/karol/TVDI 113_121/TVDI_kamp_evi_TRANSF.asc') 
Run Code Online (Sandbox Code Playgroud)

CPL错误4:`〜/ Pulpit/dods/karol/TVDI 113_121/TVDI_kamp_evi_TRANSF.asc'在文件系统中不存在,并且不被识别为支持的数据集名称.

.local(.Object,...)出错:文件系统中不存在`〜/ Pulpit/dods/karol/TVDI 113_121/TVDI_kamp_evi_TRANSF.asc',并且不会将其识别为受支持的数据集名称.

J. *_*in. 6

如果您在获取文件名时遇到问题,可以这样做:

my_asc_files = dir("../somepath", pattern="*.asc", recursive=T, full.names=T)
files_I_want = my_asc_files[c(1,12,32,33)]
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样加载你的文件

library(raster)
my_rasters = lapply(files_I_want, raster)
Run Code Online (Sandbox Code Playgroud)

然后你可以这样做:

pairs(my_rasters) 
Run Code Online (Sandbox Code Playgroud)

还有这个:

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])
    }
Run Code Online (Sandbox Code Playgroud)

虽然如果栅格太大而你不能同时在内存中保存两个,你会遇到问题.没有更好的问题,很难给你更好的建议.

  • 或者简单地说:s < - stack(files_I_want); 对(S) (3认同)

mds*_*ner 5

要阅读(打开)栅格,一种方法是使用readGDAL:

library(rgdal)
r <- readGDAL("~/myhome/thisdir/IhaveaFile.asc")
Run Code Online (Sandbox Code Playgroud)

这是我个人的偏好,也是否则使用的唯一原因,GDAL.open或者raster是我的机器没有RAM(+ abit)来处理有问题的数据集.