открыть растр в R!и некоторые статистические операции - PullRequest
2 голосов
/ 29 апреля 2011

Я хотел бы открыть растровые файлы (в формате 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 'не существует в файловой системе и не распознается как имя поддерживаемого набора данных.

Ответы [ 2 ]

6 голосов
/ 30 апреля 2011

Если у вас возникли проблемы с получением имен файлов, вы можете сделать это:

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

Хотя вы столкнетесь с проблемами, если растры настолько велики, что вы не сможете хранить два в памяти одновременно. Без лучшего вопроса будет трудно дать вам лучший совет.

5 голосов
/ 29 апреля 2011

Чтобы прочитать (открыть) растр, можно использовать readGDAL:

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

Это мое личное предпочтение, и единственная причина, по которой иначе можно использовать GDAL.open или raster, этоесли моя машина не имеет оперативной памяти (+ abit) для работы с данным набором данных.

...