我有一个较大的栅格文件,该文件具有关联的栅格属性表(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.table
和data.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
答案 0 :(得分:3)
我找到了解决此问题的方法。使用deratify
函数可以分离出某些属性并创建新的单波段栅格。
New.raster <- deratify(Raster.with.attributes, "Some_Column_in_raster")
新栅格将是单个波段,并具有指定列的值。