Index

Author

Oscar Vásquez-Bolaños and Rosario Ureña

Felinos de Costa Rica

La siguiente compilación muestra una visualización de los avistamientos de las diferentes especies de felinos para Costa Rica a través de reportes de ciencia ciudadana.

Para este primer paso se ajusto “tidy” el archivo de de los avistamientos de felinos para Costa Rica.

Code
```{r}
#| label: importacion de datos
#| warning: false
#| message: false
#| code-fold: true
felinos <-
  read_delim(
    file = "C:/Users/oscar/Desktop/Tarea3/FELINOS.csv",
    col_select = c(
      "species",
      "stateProvince",
      "locality",
      "eventDate",
      "decimalLongitude",
      "decimalLatitude",
      "month"
    ) 
  )
```
# A tibble: 190 × 7
   especies           provincia  localidad fecha       long   lat   mes
   <chr>              <chr>      <chr>     <date>     <dbl> <dbl> <dbl>
 1 Puma concolor      Puntarenas <NA>      2022-04-22 -83.6  8.46     4
 2 Panthera onca      Limón      <NA>      2022-10-09 -83.5 10.5     10
 3 Panthera onca      Guanacaste <NA>      2022-09-28 -85.7 10.8      9
 4 Leopardus tigrinus Guanacaste <NA>      2018-02-19 -84.8 10.3      2
 5 Puma yagouaroundi  Puntarenas <NA>      2022-01-23 -83.4  8.43     1
 6 Leopardus pardalis Puntarenas <NA>      2022-08-28 -85.1  9.86     8
 7 Puma yagouaroundi  Puntarenas <NA>      2019-03-22 -83.9  9.27     3
 8 Puma concolor      Puntarenas <NA>      2022-06-13 -83.5  8.55     6
 9 Puma concolor      Heredia    <NA>      2022-07-07 -84.1 10.3      7
10 Leopardus pardalis Puntarenas <NA>      2022-08-02 -83.2  8.81     8
# … with 180 more rows

Una vez seleccionados los datos de interés se generó una tabla dinámica con las especies de felinos por localidad y fecha del reporte de este avistamiento (Tab. 1).

Code
felinos|> 
  dplyr::select(especies, provincia, localidad, fecha) |>
  datatable (options = list (
    pageLength = 5,
    language = list(url = '//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json')
  ))

Tabla 1. Registros de las especies de felinos por fecha y localidad.

Seguidamente se generó un gráfico de barras (Fig. 1) con la ocurrencia de las especies de felinos por mes a lo largo del año.

Code
grafico_especies_mes <-
felinos |>
  ggplot(aes(x = mes, fill = especies))+
  scale_x_continuous(breaks = seq(1,12,1))+
  scale_x_continuous(breaks = seq(1,12,1),
                     labels = c("1" =
                    "Ene", "2" = "Feb",                     "3" = "Mar", "4" =
                    "Abr", "5" = "May", 
                    "6" = "Jun", "7" =
                    "Jul", "8" = "Ago",
                    "9" ="Sep", "10" =                     "Oct", "11" = 
                    "Nov", "12" = 
                    "Dic"))+
  geom_bar() +
  ggtitle("Registros mensuales por especie de felino") +
  xlab("Meses") +
  ylab("Observaciones") +
  labs(fill = "Especies") +
  theme_economist()

library(plotly)
# Gráfico de barras plotly
ggplotly(grafico_especies_mes) |> 
  config(locale = 'es')

Figura 1. Ocurrencia mensual de especies de felinos en Costa Rica.

Posteriormente se cargo la capa shape de las áreas silestres protegidas y se visualizó junto con la capa shape de la línea continental de Costa Rica, obtenida del Atlas de Costa Rica del TEC 2011.

Code
library(sf)
#Carga de shape de áreas protegidas
ASP <-
  st_read(
    "C:/Users/oscar/Desktop/Tarea3/ASP.shp",
    quiet = TRUE # quiet previene el despliegue de mensajes
  )
st_crs(ASP)

#Transformación de CRS del objeto ASP de crtm05 a WGS84 (EPSG = 4326)
ASP <-
  ASP |>
  st_transform(4326)
Code
plot(ASP$geometry, 
    extent = st_bbox(c(xmin = -86.0, xmax = -82.3, ymin = 8.0, ymax = 11.3)),
  main = "Áreas Silvestres Protegidas",
  axes = TRUE,
  graticule = TRUE,
  reset = FALSE
)
#Segunda capa
CR <-
  st_read(
    "C:/Users/oscar/Documents/SIGparaBiol/Cuencas/AtlasCostaRica2014v.1.2/BaseDatosZip/LineaContinental/LineaContinental/bordecr2008polycrtm05.shp",
    quiet = TRUE # quiet previene el despliegue de mensajes
  )
CR <-
  CR |>
  st_transform(4326)

plot(CR$geometry,
     add = TRUE)

Posteriormente cargamos la capa ráster de altitud para Costa Rica.

Code
altitud <- rast("C:/Users/oscar/Desktop/Tarea3/altitud.tif")
st_crs(altitud)
Code
shp_felinos <-
  st_as_sf(felinos, coords = c("long", "lat"))

st_crs(shp_felinos) <- 4326 #Asignación de coordenadas

st_crs(shp_felinos)

Finalmente se creó una visualización de los puntos reportamos de avistamientos de felinos, desplegados en en el mapa de Costa Rica, a través de capas de libre acceso Google street map y CartoDB.Positron tomado de Leaftlet for R.

Code
leaflet() |>
  setView(# centro y nivel inicial de acercamiento
    lng = -84.19452,
    lat = 9.572735,
    zoom = 6) |>
  addTiles(group = "OpenStreetMap") |>
  addProviderTiles(providers$CartoDB.Positron)|>
  addRasterImage(raster(altitud))|>
  addPolygons(
    # capa de áreas silvestres protegidas (polígonos)
    data = ASP,
    color = "black",
    fillColor = "transparent",
    stroke = TRUE,
    weight = 1.0
  ) |>
  addCircleMarkers(
    # capa de registros de presencia (puntos)
    data = shp_felinos,
    stroke = F,
    radius = 4,
    fillColor = 'blue',
    fillOpacity = 1,
    group = "Felinos",
    popup = paste(
      paste0("<strong>Especie: </strong>", felinos$especies),
      paste0("<strong>Localidad: </strong>", felinos$localidad),
      paste0("<strong>Fecha: </strong>", felinos$fecha)
    )
  ) |>
  addLayersControl(
    baseGroups = c("OpenStreetMap", "CartoDB.Positron"),
    overlayGroups = c("Felinos", "altitud", "ASP")) |> # control de capas
  addResetMapButton() |> # botón de reinicio
  addSearchOSM() |> # búsqueda en OSM
  addMouseCoordinates() |> # coordenadas del puntero del ratón
  addScaleBar(position = "bottomleft", options = scaleBarOptions(imperial = FALSE)) |> # barra de escala
  addMiniMap(position = "bottomleft")  # mapa de ubicación