0

我正在尝试重新分类 aRasterLayer以将所有 0 变为 NA。我试过了:

  1. 重新分类:

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

    错误:无法分配大小为 160.1 Mb 的向量

  2. 潜艇:

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

    错误:在为函数“as.matrix”选择方法时评估参数“x”时出错

  3. 替换不适用:

    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(只是 a data.frame)调用任何矩阵,所以也不确定这意味着什么。

4

1 回答 1

1

这是不正确的:

matrix(c(0, 0, NA)) 

相反,尝试

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

如果还是出现内存不足的问题,先设置一些选项:

rasterOptions(chunksize=1e+06, maxmemory=1e+07)
于 2013-05-02T04:59:37.737 回答