У меня есть большой растровый файл со связанной таблицей атрибутов растра (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.
Это очень похоже на то, как инструмент Искать работает в ArcMap. Я просто ищу программный способ сделать это.
Я не так много работал с 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
Я нашел решение этой проблемы. Используя функцию deratify
, вы можете выделить определенные атрибуты и создать новые одноканальные растры.
New.raster <- deratify(Raster.with.attributes, "Some_Column_in_raster")
Новый растр будет одноканальным со значениями указанного столбца.