Растровый пакет, заменитель

Я пытаюсь переклассифицировать RasterLayer, чтобы превратить все 0 в NA. Я пытался:

  1. Реклассифицировать:

    con1RC<-reclassify(con2, matrix(c(0, 0, NA))
    

    ОШИБКА: невозможно выделить вектор размером 160,1 Мб

  2. Подписки:

     con1Sub<-subs(con2, df, by=1, which=2)
    

    ОШИБКА: ошибка оценки аргумента "x" при выборе метода для функции "as.matrix"

  3. Заменить НП:

    con1Sub<-con2[is.na(con2)]<-0'
    

    ОШИБКА: невозможно выделить вектор размером 160,1 Мб

    con2
class       : RasterLayer 
dimensions  : 5533, 3792, 20981136  (nrow, ncol, ncell)
resolution  : 30, 30  (x, y)
extent      : 242505, 356265, 4234635, 4400625  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=18 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs 
data source : G:\Projects\DC\Imagery\Landsat\Classification\Working\confused2_rc_8class.img 
names       : confused2_rc_8class 
values      : 0, 8  (min, max)

I'm using R3.0.0. Windows 7 enterprise, 32 bit. I know memory can be an issue but haven't seen any direction on how to change in windows. I've also used in this code:

memory.size(max=FALSE)
memory.limit(size=NA)

Я тоже попробую это на 64-битном компьютере.

Кто-нибудь знает, что происходит с этой машиной, или может порекомендовать способ заставить одну из этих функций работать?
Я не вызываю никакую матрицу методом 2 (только data.frame), так что тоже не уверен, что это значит.


person RichT    schedule 26.04.2013    source источник


Ответы (1)


Это неправильно:

matrix(c(0, 0, NA)) 

вместо этого попробуйте

con1RC<-reclassify(con2, cbind(0, NA) )

Если у вас все еще возникают проблемы с памятью, сначала установите некоторые параметры:

rasterOptions(chunksize=1e+06, maxmemory=1e+07)
person Robert Hijmans    schedule 02.05.2013
comment
Спасибо, Роберт. Я узнал гораздо больше о распределении памяти и теперь использую команду rasterTmpFile() с каждой функцией для записи на наш рабочий диск. - person RichT; 14.06.2013