在 R 中打开光栅!以及一些统计操作

发布于 2024-11-04 10:42:05 字数 475 浏览 4 评论 0原文

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

x <- GDAL.open('~/Pulpit/dods/karol/TVDI 113_121/TVDI_kamp_evi_TRANSF.asc') 

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”在文件系统中不存在,并且未被识别为受支持的数据集名称。

I would like to open raster files (in ASCII or TIFF format), aggregate their cells and after this operation count correlation between values in this new raster file and another one. Unfortunately I do not know what is wrong in my commands - I get an error message:

x <- GDAL.open('~/Pulpit/dods/karol/TVDI 113_121/TVDI_kamp_evi_TRANSF.asc') 

CPL ERROR 4: `~/Pulpit/dods/karol/TVDI 113_121/TVDI_kamp_evi_TRANSF.asc' does not exist in the file system, and is not recognised as a supported dataset name.

Error in .local(.Object, ...) : `~/Pulpit/dods/karol/TVDI 113_121/TVDI_kamp_evi_TRANSF.asc' does not exist in the file system, and is not recognised as a supported dataset name.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

千秋岁 2024-11-11 10:42:05

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

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

尽管如果光栅太大以至于无法在内存中容纳两个,您会遇到问题同时。如果没有更好的问题,就很难给你更好的建议。

If you are having trouble getting the filenames, you might do this:

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

Then you can load your files like this

library(raster)
my_rasters = lapply(files_I_want, raster)

Then you may do this:

pairs(my_rasters) 

and this:

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

Although you will run into problems if the rasters are so large that you cannot hold two in memory at the same time. Without a better question it will be hard to give you better advice.

徒留西风 2024-11-11 10:42:05

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

library(rgdal)
r <- readGDAL("~/myhome/thisdir/IhaveaFile.asc")

这是我个人的偏好,也是使用 GDAL.openraster 的唯一原因 是如果我的机器没有 RAM (+abit) 来处理有问题的数据集。

To read (open) a raster, one way is to use readGDAL:

library(rgdal)
r <- readGDAL("~/myhome/thisdir/IhaveaFile.asc")

This is my personal preference, and the only reason to otherwise use GDAL.open or raster is if my machine doesn't have the RAM (+abit) to deal with the data set in question.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文