我正在尝试重新分类RasterLayer
以将所有0改为NA。我试过了:
重新分类:
con1RC<-reclassify(con2, matrix(c(0, 0, NA))
错误:无法分配大小为160.1 Mb的矢量
替补:
con1Sub<-subs(con2, df, by=1, which=2)
错误: 在为函数'as.matrix'
替换NA:
con1Sub<-con2[is.na(con2)]<-0'
错误:无法分配大小为160.1 Mb的矢量
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)
我正在使用R3.0.0。 Windows 7企业版,32位。我知道记忆可能是一个问题,但没有看到任何关于如何改变Windows的方向。我也在这段代码中使用过:
memory.size(max=FALSE)
memory.limit(size=NA)
我也会在64位电脑上试试这些。
任何人都知道这台机器发生了什么,或者可以推荐一种方法让这些功能之一起作用?
我没有用方法2调用任何矩阵(只是data.frame
),所以不确定这是什么意思。
答案 0 :(得分:1)
这是不正确的:
matrix(c(0, 0, NA))
相反,请尝试
con1RC<-reclassify(con2, cbind(0, NA) )
如果仍然出现内存问题,请先设置一些选项:
rasterOptions(chunksize=1e+06, maxmemory=1e+07)