
Metodología
Este portal es un proyecto de ingeniería de datos aplicada al medio ambiente: un pipeline ETL con metodología pública, validación automática de datos y costo cero de operación.
Feeds RSS (24 fuentes) GitHub Actions (3 pasadas/día)
│ │
▼ ▼
etl/ (Python) ──► clasificación ──► dedup ──► data/noticias.json (histórico en Git)
│
▼
web/src/data/portal.json ──► Next.js (SSG) ──► Vercel1 · Extracción
Un pipeline en Python corre tres veces al día — 11:00, 15:00, 21:00 UTC, es decir 07:00, 11:00 y 17:00 en el invierno de Chile continental (una hora más tarde con el horario de verano). La pasada de la mañana es completa; las otras dos refrescan noticias y calidad del aire. Lee los feeds RSS públicos de 24 fuentes: organismos oficiales (MMA, SEA, CONAF), ONG (Greenpeace, Terram), medios especializados (Ladera Sur, País Circular, Codexverde, Diario Sustentable, Mongabay Latam) y prensa general, económica y sectorial (BioBío, Cooperativa, El Ciudadano, Diario Financiero, Minería Chilena, Revista Electricidad) filtrada por relevancia ambiental.
2 · Transformación
Cada noticia se normaliza (texto plano, fechas ISO-8601 UTC, URLs canónicas sin parámetros de tracking) y se clasifica con reglas transparentes de palabras clave: relevancia ambiental (1–5), hasta 3 temas y regiones de Chile mencionadas.
3 · Deduplicación e histórico
Las noticias nuevas se comparan contra el histórico maestro por URL canónica y título normalizado. El histórico (hasta 3.000 noticias) se versiona en Git: cada ejecución queda registrada con control de versiones y respaldo íntegro.
4 · Publicación
El pipeline genera un JSON con KPIs, agregaciones y las últimas noticias. GitHub Actions lo ejecuta en cada una de las tres pasadas y hace commit de los datos; Vercel detecta el cambio y regenera el sitio estático. Sin servidores ni bases de datos que mantener.
De dónde sale cada dato
Ningún dato de este portal es una estimación propia. Cada cifra viene de una fuente oficial y se puede rastrear hasta ella.
| Dato | Fuente oficial | Frecuencia |
|---|---|---|
| Proyectos en evaluación e inversión (SEIA) | Servicio de Evaluación Ambiental — buscador públicoInversión declarada por el titular, convertida a MMUSD; verificada contra la ficha del expediente. | Diaria (pasada de la mañana) |
| Calidad del aire e ICAP | SINCA — red oficial del MMAConcentración horaria e índice oficial; normas de referencia DS 12/2022 MMA (MP10) y DS 12/2011 MMA (MP2,5). Solo el material particulado tiene ICAP. | 3 veces al día |
| Estado de conservación de especies | Nómina del Reglamento de Clasificación de Especies (RCE), MMA20.º proceso RCE, junio de 2026. Las especies sin categoría oficial se declaran como tales. | Manual, con cada proceso RCE |
| Humedales urbanos y áreas protegidas | Servicios de mapas (ArcGIS) del MMALa capa incluye humedales con declaratoria vigente y candidatos: el portal los distingue y solo cuenta como declarados a los primeros. | Diaria (pasada de la mañana) |
| Zonas saturadas y latentes | Capa oficial de la Superintendencia del Medio AmbientePolígono real, decreto de declaración y contaminantes (saturada y latente pueden coexistir en una misma zona). Tres declaraciones recientes que la capa aún no incorpora se dibujan como círculo referencial, y así se declara. | Diaria (pasada de la mañana) |
| Alertas de emergencia | SENAPRED — visor público de alertas vigentesAlertas Rojas y Amarillas por comuna (meteorológicas, forestales y volcánicas), agrupadas por región y causa. El nivel Verde no se publica. | 3 veces al día |
| Niveles de alerta de ríos y esteros | Red hidrométrica de la DGA (MOP) — servicio público de alertasSe publica el nivel oficial de cada estación (Azul, Amarilla o Roja). La magnitud medida no se publica: la DGA no documenta su unidad, y este portal no rotula un número que no puede explicar. | 3 veces al día |
| Zonas de escasez hídrica | DGA (MOP) — decretos de escasezSolo decretos con número, fecha y territorio citables, filtrados por vigencia. | Diaria (pasada de la mañana) |
| Lluvia y temperaturas | Dirección Meteorológica de Chile — red de estaciones EMAAgua caída en 24 horas, temperaturas extremas y viento máximo por estación, con atribución exigida por la DMC. Activo cuando existen credenciales de su API. | 3 veces al día |
| Hitos y plazos de las leyes | Diario Oficial, LeyChile (BCN), MMA y SMACurado a mano y citado por norma; cada ficha enlaza su fuente. | Manual |
| Publicaciones científicas | Crossref, CR2 y CEAZAPapers con Chile en el título y filtro temático ambiental. | Diaria (pasada de la mañana) |
| Noticias | Feeds RSS públicos de 24 medios y organismosLos titulares y resúmenes pertenecen a sus medios; siempre se enlaza el original. | 3 veces al día |
Controles que corren antes de publicar
Los datos no se publican si no pasan una batería de validaciones automáticas. Si alguna falla, el portal conserva los datos del día anterior en vez de mostrar un número incorrecto, y tampoco sale ningún post.
- La categoría de calidad del aire debe corresponder al ICAP medido: nunca se publica una etiqueta que contradiga su índice.
- Las horas sin dato del SINCA se descartan; jamás se registran como un cero.
- El ICAP solo se asigna a material particulado: a un gas no se le inventa una categoría.
- Los KPI (proyectos, inversión, DIA/EIA) deben cuadrar exactamente con el detalle que los sustenta.
- Se rechazan inversiones implausibles, fechas futuras, expedientes duplicados y coordenadas fuera de Chile.
- Un solo cálculo compartido decide qué estación está peor: el portal no puede contradecirse entre secciones.
- Una zona saturada sin su decreto citado no se publica, y los humedales candidatos no se cuentan como declarados.
- Toda medición publicada lleva su unidad, y ningún texto queda con entidades HTML sin decodificar.
Las reglas viven en el módulo de validación del pipeline (etl/validacion.py) y cada una tiene su caso de prueba automatizado: la suite se ejecuta antes de publicar y, si una regla falla, los datos de esa ejecución no se publican.
Decisiones de diseño
- Clasificación por reglas, no por IA: las palabras clave son datos versionados y auditables; cualquiera puede revisar por qué una noticia tiene un tema.
- Datos versionados en Git ("baked data"): el histórico completo viaja con el código, lo que da reproducibilidad y auditoría gratis.
- Scraping responsable: solo feeds RSS públicos, con identificación de user-agent, pausa entre requests y respeto a los medios de origen (siempre se enlaza la fuente original).
- API abierta: los mismos datos del portal están disponibles en /api/noticias para reutilización.