Index
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::select(especies, provincia, localidad, fecha) |>
dplyrdatatable (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
<- rast("C:/Users/oscar/Desktop/Tarea3/altitud.tif")
altitud 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