Maksym Matsala
Maksym Matsala

Reputation: 57

How to get raster file from a nested raster list produced by landscapemetrics package in R?

Package landscapemetrics can calculate area of each patch for a given raster file, shape of that patch and so on. I want to have not only tibble-frame with patch metrics calculated, but a new raster where each pixel within specific patch will have a value of the area of that patch, shape indicator and so on. We can do it with function spatialize_lsm() (it produces a Large list nested object with probably RasterObject objects within):

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...

How to get a desirable raster file with patch metrics from that list? I guess it is a question of raster package or something else, since landscapemetrics documentation tells nothing about this step.

I not that this data and new raster do not have resolution of the pixel like in meters (30, 30 for Landsat satellite image, for example). So we cannot plot the new raster produced:

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

So I guess landscapemetrics cannot deal with such rasters, we can even use its function to check a suitability of the prior raster for patch discovering:

check_landscape(podlasie_ccilc)

Upd. I did it for the Landsat dataset with resolution 30, 30 and it produced patch area raster, but again I cannot open/show/save as raster it, because of the same error.

Upvotes: 0

Views: 267

Answers (1)

Maksym Matsala
Maksym Matsala

Reputation: 57

Package maintainer helps to solve a problem (yes, it is just related to the structure of list):

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

Upvotes: 1

Related Questions