Saltar al contenido
Menú

Apariencia

Idioma

GitHub — @IchiSieben
Proyectos

Atlas Botánico del Perú

En vivo usable

Convertí datos crudos de GBIF en un árbol con las 21 585 especies de plantas aceptadas del Perú, que se abre en el navegador.

21 585 especies de plantas y 1 802 de hongos registradas en Perú, cruzadas contra los nombres aceptados de Kew y repartidas por departamento. Un árbol taxonómico navegable muestra dónde se concentra la diversidad.

Tecnología

  • Visualización
  • ETL & bases de datos
  • Scraping

Sector

  • Ciencia & bioinformática

Problema

La diversidad de plantas y hongos del Perú está repartida entre GBIF, WCVP y APG IV sin una vista única con sinónimos resueltos. Los conteos crudos de ocurrencias sobreestiman la diversidad porque nunca colapsan nombres distintos de la misma especie aceptada antes de contar.

Enfoque

ETL reproducible sobre GBIF, WCVP y APG IV → marts estáticos → sitio sin backend. Resuelve sinónimos antes de contar: por eso las cifras son más bajas —y más defendibles— que las de fuentes que cuentan nombres crudos.

El pipeline corre diez etapas reproducibles sobre cerca de 1,3 millones de registros crudos de ocurrencias GBIF (1,29 millones solo para Plantae): descarga, cruce taxonómico contra el backbone de nombres aceptados de WCVP para plantas y el de Index Fungorum para hongos, modelado, agregación, análisis, export y un perfil de calidad de datos. Cada descarga lleva DOI, así que cualquier cifra del sitio se puede rastrear hasta una instantánea exacta y citable, no hasta una consulta viva que podría cambiar en silencio.

Cruzar contra un backbone de nombres aceptados es el trabajo real: los registros crudos de GBIF incluyen sinónimos, errores de tipeo y nombres desactualizados, y ninguno de esos debería contarse como especie distinta. Tras el cruce, el 99,9% de las ocurrencias de plantas y el 98,75% de las de hongos resuelven a un nombre aceptado -el remanente sin resolver se reporta en vez de descartarse o sumarse en silencio al total.

Los ocho marts resultantes (riqueza por departamento, composición por familia, espectro de formas de vida, descritas por año, y más) son archivos planos JSON y Parquet leídos en build time con un readFileSync directo, así que el sitio publicado no hace ningún fetch en runtime y no necesita backend ni servidor de base de datos para servir un árbol taxonómico navegable y una coropleta por departamento.

Resultado

especies de plantas aceptadas
21.585

data/exports/mart_kpis.json

especies de hongos aceptadas
1802

data/exports/mart_kpis.json

ocurrencias GBIF de plantas procesadas
1.287.722registros

data/exports/mart_kpis.json

Estándares

Calidad de software (ISO/IEC 25010) No se corrió un checklist formal de ISO/IEC 25010. Las etapas del pipeline están ordenadas para que los exports sean estables byte a byte entre corridas (README), que es la propiedad de mantenibilidad que importaba acá.
Rendimiento web (Core Web Vitals) no medido
Accesibilidad (WCAG 2.2) no medido
Software de investigación (FAIR4RS) Encontrable: cada descarga de GBIF lleva DOI (Plantae 10.15468/dl.x4m2bc, Fungi 10.15468/dl.uh7bd4). Accesible: exports publicados en JSON/Parquet. Reusable: código con licencia MIT, .env.example documentado para credenciales.
Higiene de seguridad La credencial de GBIF vive solo en un .env local; .env.example se vació y .gitignore cubre .env antes del primer commit del repo.
Reproducibilidad Entorno manejado con uv; el pipeline de diez etapas (download → match → match_fungi → model → aggregate → analyze → export → profile) corre de punta a punta con `atlas data --full`, con un modo muestra para una corrida rápida sin credenciales.
Metodología de benchmark sin benchmark declarado
Documentación de datos / modelo n/a — no es un modelo entrenado
Versionado y registro de cambios Licencia MIT; sin CHANGELOG (previo al primer commit en este pase).

Qué haría después

  • Versionar el repo (0 commits en este pase), vaciando antes la credencial de GBIF en .env.example.
  • Aplicar el mismo pipeline de diez etapas a Mar/ (especies marinas), su par natural en el workspace local.
  • Sumar un desglose por familia al árbol taxonómico más allá de la agregación por departamento.