光栅包,替代品

时间:2013-04-26 06:04:28

标签: r raster na substitution r-raster

我正在尝试重新分类RasterLayer以将所有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'

  3. 选择方法时评估参数'x'时出错
  4. 替换NA:

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

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

  5.     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),所以不确定这是什么意思。

1 个答案:

答案 0 :(得分:1)

这是不正确的:

matrix(c(0, 0, NA)) 

相反,请尝试

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

如果仍然出现内存问题,请先设置一些选项:

rasterOptions(chunksize=1e+06, maxmemory=1e+07)