根据R

时间:2018-08-08 21:55:25

标签: r attributes raster

我有一个较大的栅格文件,该文件具有关联的栅格属性表(RAT):

class       : RasterLayer 
dimensions  : 32550, 13900, 452445000  (nrow, ncol, ncell)
resolution  : 1, 1  (x, y)
extent      : 0, 13900, 0, 32550  (xmin, xmax, ymin, ymax)
coord. ref. : NA 
data source : H:\My Drive\raster.grd 
names       : mr200_2012 
values      : -318, 151078  (min, max)
attributes  :

ID COUNT  Value_of_interest 
1   4        45
2   7        1
3   94       5
4   5        7
...

栅格显示在从-318到151078的值上。我希望能够以属性值之一作为“值”导出栅格。 例如,将“值”更改为“ Value_of_interest”,以便栅格显示(最小,最大)1到45。

这与Lookup工具在ArcMap中的工作方式非常相似。我只是在寻找一种编程方式来做到这一点。

我与RAT的合作不多,并不熟悉RAT的某些功能。我尝试使用data.tabledata.frame方法,但是结果表确实很大,并且由于大小原因大多数时候不会生成。我的想法是我可以创建一个data.frame坐标的xy,然后将z的值更改为'Value_of_interest'。

我认为这将是足够的可重复数据:

xy <- matrix(rnorm(200),20,20)
xy<-raster(xy)
xy
rat<-data.frame("ID" = runif(10,0,10),
            "b" = runif(10,0,10),
            "variable of interest" = runif(10,10,20))


levels(xy)[[1]]<-rat

1 个答案:

答案 0 :(得分:3)

我找到了解决此问题的方法。使用deratify函数可以分离出某些属性并创建新的单波段栅格。

New.raster <- deratify(Raster.with.attributes, "Some_Column_in_raster")

新栅格将是单个波段,并具有指定列的值。