Descrição.

Esta página tem por objetivo disponibilizar as soluções dos exercícios do curso “Ecologia de Paisagens” ofertado pelo bacharelado em Ciências Biológicas do Centro de Biologia da UFPE, no segundo período de 2021.

Exercício 1.

O objetivo desse exercício é a criação de uma paisagem e o cálculo de áreas usando o pacote landscapemetrics.

A paisagem utilizada está classificada em três tipos de cobertura:

0 – Desmatamento. 1 – Floresta Madura. 2 – Floresta Secundária.

As medidas de distância e área estão em metros

Carregando a Imagem

# Caso necessário carregar os pacotes retire os comentários 

# install.packages(c("landscapemetrics","raster", "sf", "here","grdal"))  

library(landscapemetrics) 
## Warning: package 'landscapemetrics' was built under R version 4.0.5
library(raster) 
## Warning: package 'raster' was built under R version 4.0.5
## Loading required package: sp
## Warning: package 'sp' was built under R version 4.0.5
library(sf)     
## Warning: package 'sf' was built under R version 4.0.5
## Registered S3 methods overwritten by 'tibble':
##   method     from  
##   format.tbl pillar
##   print.tbl  pillar
## Linking to GEOS 3.9.1, GDAL 3.2.1, PROJ 7.2.1; sf_use_s2() is TRUE
library(here)   
## Warning: package 'here' was built under R version 4.0.5
## here() starts at C:/Users/casti/Documents/Trabalho/Biologia/Sexto Periodo/Ecologia de Paisagens/tarefas
rm()

raster(here("dimensao_paisagem.tif")) -> paisagem_geral      # Carrega o arquivo          
st_read(here("pontos_dimensao_paisagem.shp"), quiet = TRUE) -> ponto_focal # Define Ponto focal

check_landscape(paisagem_geral)           # Conferindo 
##   layer       crs units   class n_classes OK
## 1     1 projected     m integer         3  v
plot(paisagem_geral)                      # Plota a paisagem
plot(ponto_focal, col = "red", add = T)   # Plota o ponto focal

Landscape

O pacote lanscape calcula várias propriedades da imagem. Seus comandos são sempre procedidos pelo sufixo _lsm.

Abaixo usamos a função sample_lsm . Essa função amostra uma determinada área em torno de um ponto escolhido, no nosso caso o ponto focal.

sample_lsm(landscape = paisagem_geral,
           y = ponto_focal,
           size = 3000,                        
           level = 'class',                   
           metric = 'area') -> buff_quad_3km  

sample_lsm(landscape = paisagem_geral,
           y = ponto_focal,
           size = 3000,
           shape = "circle",
           level = 'class',                    
           metric = 'area',) -> buff_circ_100m

Oberve que os outputs foram armazenados em buff_quad_3km e buff_circ_100m respectivamente. Primeiro interpretamos buff_quad_3km .

buff_quad_3km
## # A tibble: 9 x 8
##   layer level class    id metric   value plot_id percentage_inside
##   <int> <chr> <int> <int> <chr>    <dbl>   <int>             <dbl>
## 1     1 class     0    NA area_cv 249.         1               100
## 2     1 class     1    NA area_cv 430.         1               100
## 3     1 class     2    NA area_cv 156.         1               100
## 4     1 class     0    NA area_mn  50.8        1               100
## 5     1 class     1    NA area_mn 109.         1               100
## 6     1 class     2    NA area_mn   3.05       1               100
## 7     1 class     0    NA area_sd 127.         1               100
## 8     1 class     1    NA area_sd 470.         1               100
## 9     1 class     2    NA area_sd   4.76       1               100

Assim, em um quadrado de lados 3000m, centrado no ponto focal temos:

Cv=100*(Std/Mediana) Média Std
Desmatamento 249 50.8 127
Floresta Madura 430 109.0 470
Floresta Secundária 156 3.05 4.76

Agora interpretamos .

buff_circ_100m
## # A tibble: 9 x 8
##   layer level class    id metric   value plot_id percentage_inside
##   <int> <chr> <int> <int> <chr>    <dbl>   <int>             <dbl>
## 1     1 class     0    NA area_cv 227.         1              100.
## 2     1 class     1    NA area_cv 352.         1              100.
## 3     1 class     2    NA area_cv 154.         1              100.
## 4     1 class     0    NA area_mn  38.0        1              100.
## 5     1 class     1    NA area_mn 160.         1              100.
## 6     1 class     2    NA area_mn   2.84       1              100.
## 7     1 class     0    NA area_sd  86.3        1              100.
## 8     1 class     1    NA area_sd 561.         1              100.
## 9     1 class     2    NA area_sd   4.39       1              100.

Assim, em um círculo de raio 100m, centrado no ponto focal temos:

Cv=100*(Std/Mediana) Mediana Std
Desmatamento 227 38.0 86.3
Floresta Madura 352 160.0 561.0
Floresta Secundária 154 2.8 4.39

OS resultados nos mostram que:

  1. A floresta secundária encontra-se extremamente fragmentada em muitos pedaçoes pequenos.

  2. Tanto as áreas desmatadas quanto a floresta madura possuem uma altíssima variação. De fato, o desvio padrão mostrou-se muito grande quando comparado as médias. Tal fato pode ser consequência do tamanho da área amostrada.

as.data.frame(buff_quad_3km)
##   layer level class id  metric      value plot_id percentage_inside
## 1     1 class     0 NA area_cv 249.315492       1               100
## 2     1 class     1 NA area_cv 429.570785       1               100
## 3     1 class     2 NA area_cv 156.048990       1               100
## 4     1 class     0 NA area_mn  50.840526       1               100
## 5     1 class     1 NA area_mn 109.321364       1               100
## 6     1 class     2 NA area_mn   3.052800       1               100
## 7     1 class     0 NA area_sd 126.753308       1               100
## 8     1 class     1 NA area_sd 469.612640       1               100
## 9     1 class     2 NA area_sd   4.763864       1               100

Análise de Dados

Nesta seção investigamos a dependência do ceficiente de variação dos dados em função do tamanho da área amostrada. Para tanto usamos o seguinte script

v0 <-c(-1);
v1 <- c(-1);
v2 <- c(-1);

aa=seq(500,20000,by=500)
for (tamanho in aa) {
  
  sample_lsm(landscape = paisagem_geral,
           y = ponto_focal,
           size = tamanho,                        
           level = 'class',                   
           metric = 'area') -> buff_quad_3km 
           
           aux <-buff_quad_3km$value[7]/buff_quad_3km$value[4]
           v0 <- c(v0,aux)
           aux1 <-buff_quad_3km$value[8]/buff_quad_3km$value[5]
           v1 <- c(v1,aux1)
           aux2 <-buff_quad_3km$value[9]/buff_quad_3km$value[6]
           v2 <- c(v2,aux2)
           
           
}
v0=v0[v0!=-1]
v1=v1[v1!=-1]
v2=v2[v2!=-1]


plot(aa, v0, main="Quadrado",type="o", col="blue", pch="o", lty=1, ylim=c(0,20) )

points(aa, v1, col="red", pch="*")
lines(aa, v1, col="red",lty=2)

points(aa, v2, col="dark red",pch="+")
 lines(aa, v2, col="dark red", lty=3)
legend(2500,20,legend=c("Desmatamento","Floresta Madura","Floresta Secundária"), col=c("blue","red","black"), pch=c("o","*","+"),lty=c(1,2,3), ncol=1)