# Observatorio Forestal UTN — Plugin Institucional para QGIS

[![QGIS Version](https://img.shields.io/badge/QGIS-3.0%20--%204.99-success.svg)](https://qgis.org/)
[![Version](https://img.shields.io/badge/Version-1.0.3-blue.svg)](https://github.com/observatorioforestalutn-beep/Observatorio-Forestal-UTN/releases)
[![Security & Quality](https://img.shields.io/badge/Bandit%20%26%20Flake8-0%20Issues%20(Passed)-brightgreen.svg)](https://plugins.qgis.org/docs/security-scanning)
[![License](https://img.shields.io/badge/License-GPLv3-green.svg)](https://www.gnu.org/licenses/gpl-3.0.html)
[![Institution](https://img.shields.io/badge/Instituci%C3%B3n-UTN%20--%20Ecuador-1b5e20.svg)](https://observatorioforestal.utn.edu.ec/)
[![GitHub Repo](https://img.shields.io/badge/GitHub-Observatorio--Forestal--UTN-181717?logo=github)](https://github.com/observatorioforestalutn-beep/Observatorio-Forestal-UTN)

Plugin institucional desarrollado para el **Observatorio Forestal de la Universidad Técnica del Norte (UTN)** en Ibarra, Ecuador. Proporciona un ecosistema integral, modular y 100% nativo en PyQGIS para el monitoreo en tiempo real de incendios forestales, teledetección multiespectral (**Sentinel-2 L2A** y **Landsat 8/9 C2 L2**), modelos digitales de elevación global (**Copernicus DEM GLO-30**), climatología y bioclima (**WorldClim 2.1 Histórico y Proyecciones Futuras CMIP6**), cartografía base de alta resolución y asistencia inteligente mediante el protocolo **MCP (Model Context Protocol)** con **Google Antigravity**.

---

## 📌 Datos Institucionales y Autoría

* **Institución:** Universidad Técnica del Norte (UTN) — Ibarra, Ecuador
* **Autor Responsable:** PhD. Oscar Hernando Eraso Terán (Docente Investigador)
* **Correos Electrónicos:** [observatorioforestalutn@gmail.com](mailto:observatorioforestalutn@gmail.com) | [oheraso@utn.edu.ec](mailto:oheraso@utn.edu.ec)
* **Plataforma Web Oficial:** [https://observatorioforestal.utn.edu.ec/](https://observatorioforestal.utn.edu.ec/)
* **Repositorio en GitHub:** [observatorioforestalutn-beep/Observatorio-Forestal-UTN](https://github.com/observatorioforestalutn-beep/Observatorio-Forestal-UTN)
* **Seguimiento de Errores / Issues:** [GitHub Issues](https://github.com/observatorioforestalutn-beep/Observatorio-Forestal-UTN/issues)

---

## 🚀 Estructura del Menú y Barra de Herramientas

Todas las herramientas están organizadas de forma limpia y accesible tanto en el menú `Complementos` como en la **Barra de Herramientas Dedicada**:

```text
Complementos
└── 🌲 Observatorio Forestal UTN
    │
    ├── 🤖 1. Asistente IA (MCP)
    │   ├── • Activado                               (Auto-inicio de socket en puerto 9876)
    │   ├──   Desactivado                            (Detiene el servidor y libera recursos)
    │   ├── ───────────────────────────────────────────
    │   └── 💬 Prompt para Conectar (Antigravity)    (118 Herramientas SIG para IA)
    │
    ├── 🛰️ 2. Imágenes Satelitales
    │   ├── 🗺️ Imágenes Base                         (Google Hybrid/Road, Bing, OSM, OpenTopoMap)
    │   ├── 🛰️ Landsat Colección 2 Level-2            (Landsat 4/5, 7, 8 y 9 vía STAC)
    │   ├── 🛰️ Sentinel-2 L2A                         (Escenas 10m vía Microsoft Planetary Computer)
    │   ├── ⛰️ DEM Copernicus GLO-30 metros          (Modelo Digital de Elevación Global 30m)
    │   └── 🌦️ WorldClim 2.1                          (Bioclima Histórico 1970–2000 y Futuro CMIP6)
    │
    ├── 🔥 3. Incendios
    │   ├── ⚡ FIRMS Activos (24 Horas)              (Monitoreo en tiempo real con auto-refresco 5m)
    │   └── 📅 FIRMS Histórico (Consulta por Período) (Búsqueda multitemporal con cancelación activa)
    │
    ├── ───────────────────────────────────────────
    ├── ℹ️ Acerca del Observatorio Forestal UTN
    └── 🌐 Plataforma Web Oficial (UTN)
```

---

## 🛠️ Módulos Principales

### 🤖 1. Asistente IA (MCP — Model Context Protocol)
* **Conexión Nativa con Google Antigravity:** Servidor de sockets asíncrono en el puerto `9876` que expone **118 herramientas de análisis SIG** para inspección de capas, geoprocesamiento, análisis espacial y automatización de flujos cartográficos.
* **Cero Configuración:** Inicio automático y diálogo de copia rápida de prompts compatible con Modo Claro y Modo Oscuro.

### 🛰️ 2. Imágenes Satelitales y Modelos de Elevación
* **Sentinel-2 L2A y Landsat Colección 2 Level-2:** Streaming ultrarrápido de escenas satelitales mediante archivos virtuales GDAL VRT sin descarga de archivos pesados.
* **Composiciones de Bandas Académicas:** Color Natural, PseudoColor Infrarrojo, PseudoColor Agricultura, PseudoColor Vegetación, PseudoColor Infrarrojo SWIR, PseudoColor Área Quemada y PseudoColor Geología.
* **Índices Espectrales con Simbología Continua `[-1.0 a 1.0]`:** NDVI, NBR, NBR2, NDWI, NDMI y EVI con gradiente vertical continuo Spectral.
* **Copernicus DEM GLO-30 metros:** Descarga, ensamble y recorte de modelos digitales de elevación de 30 metros de resolución con sombreado y rampa hipsométrica calibrada.
* **WorldClim 2.1 (Climatología y Bioclima Global):**
  * **Línea Base Histórica (1970–2000):** 19 variables bioclimáticas (`BIO01` a `BIO19`) y variables mensuales de temperatura, precipitación, radiación, viento, vapor y elevación a 30 arco-segundos (~1 km²).
  * **Proyecciones Futuras CMIP6:** 26 Modelos Climáticos Globales (GCM), 4 escenarios socioeconómicos (SSP126, SSP245, SSP370, SSP585) y 4 horizontes temporales (2021–2100).
  * **Selección Múltiple y Recorte Automático:** Descarga en lote y recorte exacto con compresión LZW al área de interés.

### 🔥 3. Monitoreo de Incendios Forestales (NASA FIRMS)
* **⚡ FIRMS Activos (24h):** Descarga y unificación en tiempo real de focos de calor de MODIS (Terra/Aqua), VIIRS S-NPP, VIIRS NOAA-20 y VIIRS NOAA-21 con clasificación temporal de 7 clases y auto-refresco en segundo plano cada 5 minutos.
* **📅 FIRMS Histórico Multitemporal:** Consultas históricas por período y sensor con ejecución en hilo secundario (`QThread`), botón de **cancelación interactiva en tiempo real** y protección ante coberturas geográficas excesivas.

### 🗺️ 4. Selector Universal de Área de Interés (AOI)
* **4 Métodos Integrados en Todas las Herramientas:**
  1. 🖥️ **Extensión del Lienzo Actual** (Canvas de QGIS).
  2. 🇪🇨 **24 Provincias del Ecuador** (Límites oficiales WGS 84).
  3. 🌎 **Países de Sudamérica**.
  4. 📁 **Capa Vectorial Cargada en QGIS** (Detección automática de capas y cálculo de bounding box re-proyectado a EPSG:4326).

---

## 🎨 Jerarquía Estricta del Árbol de Capas

El plugin organiza automáticamente el panel de capas manteniendo una estructura cartográfica profesional:
1. 🔴 **Puntos Vectoriales:** Focos de calor FIRMS (activos e históricos) y muestreos de campo.
2. 🛣️ **Líneas Vectoriales:** Redes viales, ríos y drenajes.
3. 🗺️ **Polígonos Vectoriales:** Límites provinciales, áreas protegidas y polígonos de AOI.
4. 🛰️ **Rásteres Temáticos:** Sentinel-2, Landsat, Índices Espectrales, DEM Copernicus y WorldClim 2.1.
5. 🌍 **Mapas Base (Fondo Absoluto):** Google Hybrid, Google Road, Bing Satellite, OpenStreetMap y OpenTopoMap.

---

## 🔒 Seguridad, Rendimiento e Instalación

* **100% Nativo en PyQGIS:** Cero dependencias externas (`pip install` no requerido). No altera las librerías del sistema ni el inicio de QGIS.
* **Auditoría de Seguridad Oficial:** Validado con **0 alertas Bandit** y **0 errores Flake8**.
* **Compatibilidad Multiplataforma:** Compatible con Windows, Linux y macOS en QGIS 3.0 hasta QGIS 4.99 (arquitecturas Qt5 y Qt6).
* **Licencia:** GNU General Public License v3.0 (GPLv3).
