¿Se ha fragmentado la cuenca del río Pilpilco entre 2000 y 2022?
Author
M. Ortiz
1 Introducción
1.1 Contexto
La fragmentación del paisaje puede modificar el tamaño de los hábitats, la conectividad, los efectos de borde y la diversidad biológica. En esta actividad utilizaremos datos de MapBiomas para evaluar cambios en la cuenca del río Pilpilco entre 2000 y 2022.
NoteObjetivos
Preparar datos espaciales para análisis de paisaje.
Comprender la importancia de los sistemas de referencia (CRS).
Calcular métricas a nivel de parche, clase y paisaje.
Interpretar evidencia de fragmentación.
Comunicar resultados ecológicos.
2 La pregunta ecológica
¿Se ha fragmentado la cuenca del río Pilpilco entre 2000 y 2022?
3 Preparación
gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 593771 31.8 1353265 72.3 686445 36.7
Vcells 1082757 8.3 8388608 64.0 1875920 14.4
rm(list =ls())library(landscapemetrics)
Warning: package 'landscapemetrics' was built under R version 4.4.3
library(tidyverse)
Warning: package 'tidyverse' was built under R version 4.4.3
Warning: package 'ggplot2' was built under R version 4.4.3
Warning: package 'dplyr' was built under R version 4.4.3
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.2.1 ✔ readr 2.1.5
✔ forcats 1.0.0 ✔ stringr 1.5.1
✔ ggplot2 4.0.3 ✔ tibble 3.2.1
✔ lubridate 1.9.3 ✔ tidyr 1.3.1
✔ purrr 1.0.2
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(terra)
Warning: package 'terra' was built under R version 4.4.3
terra 1.9.11
Attaching package: 'terra'
The following object is masked from 'package:tidyr':
extract
library(tidyterra)
Warning: package 'tidyterra' was built under R version 4.4.3
Attaching package: 'tidyterra'
The following object is masked from 'package:stats':
filter
library(cowplot)
Attaching package: 'cowplot'
The following object is masked from 'package:lubridate':
stamp
[1] "Costeras entre R. Itata y R. Pingueral (Incl.)"
[2] "Costeras entre Rio Pingueral Y Rio Andalien"
[3] "Isla Quiriquina"
[4] "Costeras entre Rio Andalien Y Rio Bio-Bio"
[5] "Rio Andalien"
[6] "Rio Bio-Bio Bajo"
[7] "Rio Itata Alto (Hasta Rio Diguillin)"
[8] "Laja Bajo"
[9] "Costeras entre Rio Bio-Bio y Rio Manco"
[10] "Rio Laja Alto (hasta bajo junta Rio Rucue)"
[11] "Isla Santa Maria"
[12] "Costeras entre R. Manco (incl.) y R. Laraquete"
[13] "Rio Lia"
[14] "Costeras entre R. Laraquete (incl.) y R. Carampangue"
[15] "Costeras entre Rio Carampangue y Punta Lavapie"
[16] "Costeras entre Punta Lavapie y Rio Quiapo"
[17] "Rio Bio-Bio entre Rio Vergara y Rio Laja"
[18] "R. Carampangue entre arriba R. Colorado y desembocadura"
[19] "Rio Duqueco"
[20] "Rio Quiapo"
[21] "Rio Carampangue entre Estero Animas y Rio Colorado"
[22] "Rio Curanilahue"
[23] "Rio Carampangue hasta bajo junta Estero Animas"
[24] "Rio Bio-Bio entre Rio Duqueco y Rio Vergara"
[25] "Costeras entre Rio Quiapo y Rio Lebu"
[26] "Rio Bio-Bio entre Rio Ranquil y Rio Duqueco"
[27] "R. Lebu entre junta rios Curanilahue y Pilpilco y desembocadura"
[28] "Rio Pilpilco"
[29] "Costeras entre R. Pangue (incl.) y R. Paicavi"
[30] "Costeras entre Rio Lebu y Estero Pangue"
[31] "Rio Paicavi"
[32] "Costeras entre R. Paicavi y R. Lleullen"
[33] "R. Lleullen"
[34] "Costeras entre R. Lleullen y R. Tirua"
[35] "Rio Tirua"
[36] "Isla Mocha"
# Gráfico 1: distribución del tamaño de parches para todas las clasesg_parches_todo <- analisis_parches %>%filter(metric =="area") %>%# Quitamos el filtro de clases para incluir todasggplot(aes(x = year, y = value, fill = year)) +geom_boxplot(outlier.shape =16, outlier.alpha =0.5, width =0.6) +scale_y_log10() +# escala logarítmica porque los tamaños varían de <1 ha a miles de hascale_fill_manual(values =c("2000"="#457764", "2022"="#cccccc")) +facet_wrap(~descripcion, scales ="free_y") +#permite que cada panel adapte su propio eje Ytheme_bw() +labs(title ="Análisis Área (ha) por tipo de cobertura Parches, Cuenca Pilpilco, 2000-2022",x ="Año",y ="Área del Parche (hectáreas)" ) +theme_bw()g_parches_todo
9.1.1 Interpretación
¿Qué observaciones tienes sobre cambios en las métricas?
9.2 Formación forestal (Área)
Vamos a observar una cobertura (clase) en particular, al nivel de parche:
# Gráfico 1a: distribución del tamaño de parches para sola una claseg_parches_forestal <- analisis_parches %>%filter(metric =="area", class ==3) %>%#aqui el codigo de la leyenda, formación forestalggplot(aes(x = year, y = value, fill = year)) +geom_boxplot(outlier.shape =16, outlier.alpha =0.5, width =0.6) +scale_fill_manual(values =c("2000"="#457764", "2022"="#cccccc")) +scale_y_log10() +theme_bw() +labs(title ="Análisis Tamaño Parches Formación Forestal, Cuenca Pilpilco, 2000-2022",x ="Año",y ="Área del Parche (hectáreas)" ) +theme_bw()g_parches_forestal
9.3 Formación forestal, Área núcleo (CAI)
# Gráfico 1b: otra métricag_parches_forestal_cai <- analisis_parches %>%filter(metric =="cai", class ==3) %>%ggplot(aes(x = year, y = value, fill = year)) +geom_boxplot(outlier.shape =16, outlier.alpha =0.5, width =0.6) +scale_fill_manual(values =c("2000"="#457764", "2022"="#cccccc")) +# scale_y_log10() + theme_bw() +labs(title ="Análisis CAI Parches Formación Forestal, Cuenca Pilpilco, 2000-2022",x ="Año",y ="Área del Parche (hectáreas)" ) +theme_bw()g_parches_forestal_cai
Note
CAI mide la proporción del parche que permanece alejada de los bordes.
g_clase_pland <- analisis_clases %>%filter(metric =="pland") %>%ggplot(aes(x =reorder(descripcion, value), y = value, fill = year)) +geom_bar(stat ="identity", position ="dodge") +coord_flip() +scale_fill_manual(values =c("2000"="#457764", "2022"="#cccccc")) +theme_bw() +labs(title ="Cambios en la Dominancia del Paisaje (2000 vs 2022)",subtitle ="Nivel de Clase: Porcentaje de la cuenca ocupado por cobertura",x ="Tipo de Cobertura (MapBiomas)",y ="Porcentaje del Paisaje (%)",fill ="Año" )g_clase_pland
10.1.1 Pregunta
¿Qué coberturas ganaron o perdieron importancia relativa?
10.2 Evidencia de fragmentación
Un patrón clásico es:
CA ↓
NP ↑
g_clase_frag <- analisis_clases %>%filter(metric %in%c("ca", "np")) %>%mutate(year =as.factor(year),value =as.numeric(value),metric =recode(metric, ca ="Área Total (ha)", np ="N° Parches") ) %>%ggplot(aes(x = year, y = value, group = metric, color = metric, linetype = metric)) +geom_line(linewidth =1) +geom_point(size =3) +facet_wrap(~descripcion, scales ="free_y") +scale_color_manual(values =c("Área Total (ha)"="#555555", "N° Parches"="#4a7aab")) +scale_linetype_manual(values =c("Área Total (ha)"="solid", "N° Parches"="dashed")) +theme_bw() +labs(title ="Cambio en Fragmentación 2000–2022",x =NULL, y =NULL, color =NULL, linetype =NULL ) +theme(legend.position ="bottom")g_clase_frag
`geom_line()`: Each group consists of only one observation.
ℹ Do you need to adjust the group aesthetic?