Proyecto final - Grupo 002
Fecha y hora límite de entrega
Martes 9 de julio de 2024, 12:00 p.m. (mediodía)
Descripción general
Este proyecto consiste en desarrollar un tablero de control interactivo con el lenguaje de programación R, el paquete shiny y el sistema de publicación técnica y científica Quarto. El tablero incluirá un conjunto de controles (widgets) de entrada que le permitirán al usuario especificar filtros en registros de presencia de anfibios de la familia Bufonidae de Costa Rica, para así generar visualizaciones como tablas, gráficos estadísticos y mapas, de acuerdo con los criterios especificados en los filtros. La aplicación se publicará en https://www.shinyapps.io/.
Objetivos
Cada estudiante debe mostrar que es capaz de:
- Escribir código fuente en el lenguaje de programación R y utilizar funciones de los paquetes DT, tidyverse, plotly, sf, leaflet y otros para leer datos (espaciales y no espaciales), procesarlos y generar visualizaciones en forma de tablas, gráficos estadísticos y mapas.
- Desarrollar tableros de control con Quarto Dashboards que presenten las visualizaciones de datos en una forma organizada y atractiva para el usuario final.
- Desarrollar aplicaciones web interactivas con el paquete shiny de R.
- Publicar aplicaciones shiny en la plataforma shinyapps.io.
- Analizar y corregir errores de programación.
Conjuntos de datos
Para realizar esta tarea, debe utilizar datos de tres archivos (puede descargarlos en los enlaces):
Áreas de conservación de Costa Rica
Este archivo GPKG proviene de un geoservicio de tipo Web Feature Service (WFS) publicado por el Sistema Nacional de Áreas de Conservación (Sinac) (https://geos1pne.sirefor.go.cr/wfs?
). Las geometrías se simplificaron para reducir el tamaño del archivo.Registros de presencia de Bufonidae de Costa Rica.
Este archivo CSV proviene de una consulta al portal de datos de la Infraestructura Mundial de Información en Biodiversidad (GBIF) (https://doi.org/10.15468/dl.4tqr9u
). Contiene una fila por cada registro de presencia y atributos como el nombre de la especie (species
) y las coordenadas geográficas del registro (decimalLongitude
,decimalLatitude
), entre otros. Se suprimieron las filas con identificaciones en niveles superiores a especie.Especies de anfibios de Costa Rica.
Este archivo CSV también proviene de una consulta al portal de datos de la Infraestructura Mundial de Información en Biodiversidad (GBIF) (https://doi.org/10.15468/dl.xwmakq
). Contiene una fila por cada especie de anfibios (incluyendo las de la familia Bufonidae). Se suprimieron las filas con taxones en niveles superiores a especie y se conservaron solo dos columnas de datos:species
: nombre de la especie.iucnRedListCategory
: categoría de la especie en la Lista Roja de la UICN.
La Lista Roja de Especies Amenazadas de la Unión Internacional para la Conservación de la Naturaleza (UICN) es un inventario del estado de conservación de especies de animales y plantas a nivel mundial. La Lista Roja asigna a las especies una de las siguientes categorías:
- EX (Extinta)
- EW (Extinta en estado silvestre)
- CR (En peligro crítico de extinción)
- EN (En peligro de extinción)
- VU (Vulnerable)
- NT (Casi amenazada)
- LC (Preocupación menor)
- DD (Datos insuficientes)
- NE (No evaluada)
Entregables
Debe entregar dos direcciones web:
- Dirección de un repositorio en GitHub (ej. https://github.com/mfvargas/tablero-bufonidae-costarica) con el código fuente y los datos. Específicamente, el repositorio debe contener:
- Un documento Quarto llamado
index.qmd
con el código en R y la sintaxis Markdown necesarios para generar un tablero de control con los controles de entrada y las salidas especificadas en la sección Desarrollo. - Un documento llamado
index.html
generado a partir deindex.qmd
. - Los tres archivos de datos.
- El directorio
index_files
.
- Un documento Quarto llamado
- Dirección de la aplicación publicada en shinyapps.io (ej. https://mfvargas.shinyapps.io/tablero-bufonidae-costarica/).
La entrega debe realizarse a través de la plataforma Mediación Virtual.
Desarrollo
El tablero de control debe contener:
- Un conjunto de controles de entrada para especificar filtros de datos.
- Un conjunto de salidas en formato de tablas, gráficos estadísticos y mapas.
Controles de entrada
Deben incluirse los siguientes controles de entrada y colocarse en una barra lateral.
Lista de selección (selectInput()) de especies
Permite especificar un filtro por una especie: las tablas, gráficos y mapas de salida mostrarán la información correspondiente a los registros de presencia de la especie seleccionada. Incluya en la lista una opción con valor “Todas” para considerar todas las especies y especifíquela como selección inicial.
Lista de selección (selectInput()) de categorías de la Lista Roja de la UICN
Permite especificar un filtro por una categoría de la Lista Roja: las tablas, gráficos y mapas de salida mostrarán la información correspondiente a los registros de presencia de especies de la categoría seleccionada. Incluya en la lista una opción con valor “Todas” para considerar todas las categorías y especifíquela como selección inicial.
Lista de selección (selectInput()) de áreas de conservación
Permite especificar un filtro por un área de conservación: las tablas, gráficos y mapas de salida mostrarán la información correspondiente a los registros de presencia ubicados en esa área de conservación. Incluya en la lista una opción con valor “Todas” para considerar todas las áreas de conservación y especifíquela como selección inicial.
Deslizador de rango (slider range, sliderInput()) para selección de meses
Permite especificar un filtro por un rango de meses (ej. 1 - 12, 3 - 6): las tablas, gráficos y mapas de salida mostrarán la información correspondiente a los registros de presencia observados entre esos meses.
Puede ver ejemplos de programación con widgets en https://shiny.posit.co/r/gallery/widgets/widget-gallery/.
Salidas
Tabla de registros de presencia
Tabla DT con las siguientes columnas:
- Especie
- Categoría en la Lista Roja
- Área de conservación
- Fecha (columna
eventDate
)
Los encabezados de la tabla deben estar en español y ser significativos. Sugerencia: use el argumento colnames
de la función datatable()
para especificar los encabezados de las columnas.
Mapa de registros de presencia y áreas de conservación
Mapa leaflet interactivo con las siguientes capas y controles:
- Dos capas base de tipo tiles (teselas) (ej. OSM, Stamen, ESRI).
- Una capa de polígonos de áreas de conservación. Al hacer clic sobre un polígono, la ventana emergente debe mostrar el nombre del área de conservación.
- Una capa de puntos de registros de presencia. Al hacer clic sobre un punto, la ventana emergente debe mostrar la especie, la categoría en Lista Roja de la especie, el área de conservación en la que se ubica el registro y la fecha del registro.
- Un control de capas.
Gráfico de barras de cantidad de registros de presencia en áreas de conservación
Este gráfico debe contener una barra por cada área de conservación y su longitud debe mostrar la cantidad de registros de presencia en esa área. Las barras deben estar ordenadas por longitud (de mayor a menor o de menor a mayor.
El gráfico deben programarse con ggplot2 y convertirse a plotly con la función ggplotly()
. Debe tener:
- Título (puede asignarlo directamente en el gráfico o en la opción #| title del bloque de código).
- Etiquetas en los ejes x e y.
Calificación
- Presentación general del tablero de control (organización, distribución de los componentes): 20%
- Lista de selección de especies: 5%
- Lista de selección de categorías de la Lista Roja: 10%
- Lista de selección de áreas de conservación: 10%
- Deslizador de rango para selección de meses: 10%
- Mapa: 15%
- Tabla: 15%
- Gráfico: 15%
Consideraciones adicionales
- La tarea debe presentarse como un tablero de control desarrollado en Quarto Dashboards y en shiny (https://shiny.posit.co/). No como otro tipo de documento.
- Esta tarea puede presentarse individualmente o en parejas. En este último caso, solo un estudiante debe presentar la tarea en Mediación Virtual y debe indicar ahí el nombre del otro estudiante.
- Si solo se entrega la dirección del repositorio en GitHub, y no la aplicación publicada en shinyapps.io, o esta no es consistente con el código fuente del repositorio, se rebajará el 25% del valor de la tarea. RECOMENDACIÓN: genere la aplicación desde el inicio y actualícela continuamente. No la deje para última hora.
- No se aceptarán tareas que se entreguen después de la fecha y hora límite.
Puede encontrar un ejemplo orientador de un tablero de control similar al que tiene que desarrollar en https://github.com/gf0604-procesamientodatosgeograficos/2024-i-tablero-interactivo-ejemplo.