Как получить растровый файл из вложенного списка растров, созданного пакетом landscapemetrics в R?

Пакет landscapemetrics может вычислять площадь каждого участка для данного растрового файла, форму этого участка и так далее. Я хочу иметь не только тибл-фрейм с вычисленными метриками патча, но и новый растр, в котором каждый пиксель в определенном патче будет иметь значение площади этого патча, индикатор формы и т. Д. Мы можем сделать это с помощью функции spatialize_lsm() (она создает Large list вложенный объект с вероятностью RasterObject внутри):

library(landscapemetrics)

plot(podlasie_ccilc) # this raster data is provided with package

podlasie.metrics.area <- spatialize_lsm(podlasie_ccilc, what = 'lsm_p_area') # creates a list

plot(podlasie.metrics.area) # produces an error...

Как получить желаемый растровый файл с метриками патча из этого списка? Я предполагаю, что это вопрос raster пакета или чего-то еще, поскольку landscapemetrics документация ничего не говорит об этом шаге.

Я не то, чтобы эти данные и новый растр не имеют разрешения пикселя вроде в метрах (30, 30 для спутникового снимка Landsat, например). Таким образом, мы не можем построить новый созданный растр:

podlasie.metrics.area[[1]]
plot(podlasie.metrics.area[[1]])

Поэтому я полагаю, что ландшафтные метрики не могут работать с такими растрами, мы даже можем использовать ее функцию, чтобы проверить пригодность предыдущего растра для обнаружения патчей:

check_landscape(podlasie_ccilc)

Upd. Я сделал это для набора данных Landsat с разрешением 30, 30, и он создал растр области патча, но я снова не могу открыть / показать / сохранить его как растр из-за той же ошибки.


person Maksym Matsala    schedule 12.02.2020    source источник
comment
что показывает str(podlasie.metrics.area)?   -  person Val    schedule 13.02.2020
comment
Val, Список из 1 $: Список из 1 .. $ lsm_p_area: Формальный класс 'RasterLayer' [растр пакета] с 12 слотами .. .. .. @ file: Формальный класс '.RasterFile' [растр пакета] с 13 слотами   -  person Maksym Matsala    schedule 13.02.2020
comment
пожалуйста, обновите свой вопрос, чтобы его было легче читать   -  person Val    schedule 13.02.2020
comment
Я предполагаю, потому что podlasie_ccilc имеет разрешение не в метрах, а также мой собственный набор данных, созданный алгоритмом LandTrendR из временных рядов Landsat. В то время как мой набор данных Landsat имеет разрешение 30, 30 м. Я должен понять, что делать.   -  person Maksym Matsala    schedule 13.02.2020


Ответы (1)


Сопровождающий пакета помогает решить проблему (да, это просто связано со структурой списка):

plot(podlasie.metrics.area[[1]]$lsm_p_area)
person Maksym Matsala    schedule 13.02.2020