library(tidyverse)
library(sf)
library(tmap)
Riqueza de especies de félidos de Costa Rica
Carga de bibliotecas
Carga de datos
Cantones
# Cargar datos de cantones de Costa Rica
<- st_read(
cantones "cantones-simplificados.gpkg",
quiet = TRUE
)
Félidos
# Lectura de un archivo CSV con registros de presencia de félidos en Costa Rica
<- st_read(
felidos "felidos.csv",
options = c(
"X_POSSIBLE_NAMES=decimalLongitude", # columna de longitud decimal
"Y_POSSIBLE_NAMES=decimalLatitude" # columna de latitud decimal
),quiet = TRUE
)
# Asignar CRS WGS84
st_crs(felidos) <- 4326
Procesamiento
Unión espacial de félidos y cantones
# Unión espacial de félidos y cantones (solo la columna CÓDIGO_CANTÓN),
# mediante el predicado st_within().
# Como resultado, CÓDIGO_CANTÓN se une al conjunto de datos de félidos.
<- st_join(
felidos_union_cantones x = felidos,
y = dplyr::select(cantones, CÓDIGO_CANTÓN), # selección de columna CÓDIGO_CANTÓN
join = st_within
)
Conteo de la cantidad de especies de félidos en cada cantón
# Conteo de la cantidad de especies de félidos en cantones
<-
riqueza_especies_felidos_cantones |>
felidos_union_cantones st_drop_geometry() |>
group_by(CÓDIGO_CANTÓN) |>
summarize(riqueza_especies_felidos = n_distinct(species, na.rm = TRUE))
Unión no espacial de cantones con el dataframe de riqueza de especies en cantones
# Unión (no espacial) de cantones y riqueza de especies
<-
cantones_union_riqueza left_join(
x = cantones,
y = dplyr::select(riqueza_especies_felidos_cantones, CÓDIGO_CANTÓN, riqueza_especies_felidos),
by = "CÓDIGO_CANTÓN"
|>
) replace_na(list(riqueza_especies_felidos = 0))
Mapa de riqueza de especies de félidos
# Activar el modo interactivo
tmap_mode("view")
# Definir el mapa
<-
mapa_riqueza_felidos_cantones tm_view(
set_view = c(lon = -84.2, lat = 9.6, zoom = 7)
+
) tm_basemap("OpenStreetMap", "Esri.WorldImagery") +
tm_shape(cantones_union_riqueza, name = "Riqueza de especies de félidos") +
tm_fill(
fill = "riqueza_especies_felidos",
fill.scale = tm_scale_intervals(
style = "quantile",
values = "Reds"
),fill.legend = tm_legend(title = "Riqueza"),
id = "CANTÓN",
popup.vars = c(
"Cantón" = "CANTÓN",
"Riqueza" = "riqueza_especies_felidos"
)+
) tm_borders(col = "black", lwd = 0.5) +
tm_scale_bar(position = c("left", "bottom"))
# Mostrar el mapa
mapa_riqueza_felidos_cantones