A.2 Extensión de ecosistemas naturales
Última actualización de este notebook: 03-04-2026 20:31
Objetivo del Indicador: medir la extensión (superficie) de los ecosistemas naturales y seminaturales y reportar como proporción del territorio nacional. Alcance Espacial: El reporte debe cubrir la totalidad de la jurisdicción nacional, compuesta por:
Territorio Continental e Insular: Basado en límites administrativos.
Territorio Marino: Basado en la Zona Económica Exclusiva (ZEE - 200 millas náuticas).
Metodología De Cálculo¶
El procesamiento se divide en dos flujos que luego se integran.
Flujo 1: Proccesamiento Terrestre (CONAF)¶
Paso 1.1: Filtrado de Áreas Naturales¶
Utilizar atributos USO y SUBUSO del Catastro CONAF.
CLASES A INCLUIR:
Bosque Nativo: (Todos los tipos).
Praderas y Matorrales: (Matorral, Estepa, Pradera natural).
Humedales: (Vegas, bofedales, pajonales).
Áreas desprovistas (Naturales): Desiertos, dunas, playas, nieves, glaciares, roqueríos.
Cuerpos de Agua: Lagos, lagunas, ríos.
CLASES A EXCLUIR (Descartar):
Terrenos Agrícolas, Plantaciones Forestales, Áreas Urbanas/Industriales, Embalses artificiales.
Paso 1.2: Intersección EFG Terrestre (esperar capa EFG)¶
Cruzar la capa filtrada de CONAF con la capa de Grupos Funcionales UICN para asignar etiquetas (ej. T2.2, T3.2).
Flujo 2: Procesamiento Marino¶
Paso 2.1: Generación de la Capa Marina¶
Utilizar el polígono de la ZEE (200 millas). Exclusión: Restar cualquier área que ya esté cubierta por el Catastro CONAF en la zona costera (ej. fiordos interiores o islas) para evitar doble contabilidad.
Paso 2.2: Intersección EFG Marino (esperar capa EFG)¶
Cruzar el polígono de la ZEE con la capa de Grupos Funcionales Marinos de la UICN. Esto clasificará el mar en grupos como M2 (Océano abierto pelágico), M3 (Mar profundo), etc.
Nota: Se asume que toda la extensión de la ZEE es “Ecosistema Natural” a menos que existan capas específicas de “infraestructura marina artificial” (granjas eólicas, plataformas) que deban restarse (Clase M4/MT3). Ante la falta de datos de infraestructura marina, se contabiliza la ZEE total.
Paso 3: Integración y Cálculo¶
Unificar los resultados del Flujo 1 y Flujo 2. Superficie Natural Total = (Sup. Natural CONAF) + (Sup. ZEE Natural). Superficie Total País = Sup. Terrestre Oficial + Sup. ZEE Oficial. Calcular proporción de áreas naturales en el territorio nacional
Capa 1: Observación y recolección¶
Fuentes de datos utilizados¶
A. Para Ecosistemas Terrestres y Costeros
Catastro de los Recursos Vegetacionales Nativos de Chile (CONAF) https://
B. Para Ecosistemas Marinos
Capa vectorial de la Zona Económica Exclusiva (ZEE) de Chile. Consultar con Daniel por capa usada para indicador de áreas protegidas
Capa Complementaria
Capa de Grupos Funcionales de Ecosistemas (EFG - UICN). (Nota: Esta capa se encuentra en desarrollo).
Procesamiento de datos desde los descargables se realiza a través de un script de python. Los datos estandarizados se registran en una base de datos intermedia.
Las capas descargadas desde CONAF se procesan usando el script de Python process_raw.py. Los ecosistemas marinos se descargan y agregan a la base de datos usando el script calculate_marine.py. La capa complementaria se procesa y registra usando el script process_efg.py.
Capa 2: Análisis y síntesis¶
La desagregación final se realiza usando el script disaggregate_efg_continental.py.
%%time
with engine.connect() as conn:
uso_subuso = pd.read_sql_table("uso_subuso", conn, schema="processed")
uso_subusoWARNING: database "7nr" has a collation version mismatch
DETAIL: The database was created using collation version 2.41, but the operating system provides version 2.31.
HINT: Rebuild all objects in this database that use the default collation and run ALTER DATABASE "7nr" REFRESH COLLATION VERSION, or build PostgreSQL with the right library version.
CPU times: user 117 ms, sys: 12.1 ms, total: 129 ms
Wall time: 2.5 s
Capa 3: Repporte Digital¶
El área total se calcula sumando la columna superf_ha de los datos de CONAF filtrando por la columna de incluir:
%%time
with engine.connect() as conn:
area_natural_terrestre = pd.read_sql_query("""
SELECT incluir, sum(ct.superf_ha) AS "area"
FROM processed.conaf_terrestre ct
JOIN processed.uso_subuso us
ON ct.id_uso = us.id_uso AND ct.id_subuso = us.id_subuso
GROUP BY incluir;
""", conn)
area_natural = area_natural_terrestre.loc[1, 'area']
area_total = area_natural_terrestre["area"].sum()
area_natural_terrestreCPU times: user 3.66 ms, sys: 3 ms, total: 6.66 ms
Wall time: 5.68 s
Área natural total: 67208431.29 ha
Porcentaje con el área total: 88.80%
Para cada grupo funcional se elimina los polígonos no incluidos como áreas naturales utilizando un nuevo script de Python. Los resultados se almacenan en la base de datos intermedia. Los resultados se muestran consultando a dicha base de datos.
%%time
with engine.connect() as conn:
efg_terrestre = pd.read_sql_query("""
SELECT ec."group", ec.superf_ha "area_total", eci.superf_ha "area_natural", eci.superf_ha / ec.superf_ha "porcentaje"
FROM processed.efg_continental ec
JOIN processed.efg_continental_included eci
ON ec."group" = eci."group";
""", conn)
efg_terrestreCPU times: user 1.63 ms, sys: 900 μs, total: 2.53 ms
Wall time: 165 ms
efg_terrestre = efg_terrestre.merge(efg_code_continental, left_on="group", right_on="EFG (Ecosystem Functional Group)", how="left")
efg_terrestreLimpieza final. Dado que no consideramos EFG antrópicos (los excluimos a través del catastro), de los EFG actuales hay 2 que debemos excluir, y restarlos de las áreas naturales. Estos son: F3.1 (Large reservoirs) y F3.2 (Constructed lacustrine wetlands). Asegurar que la superficie de estos dos EFG no se sume al total de “Áreas Naturales” que se reporte.
efg_terrestre.loc[
efg_terrestre[efg_terrestre["Código EFG"].isin(["F3.1", "F3.2"])].index,
["area_natural", "porcentaje"]
] = 0
efg_terrestreÁrea Natural total: 67531297.03 ha
Área total: 75802764.30 ha
Agrupar por Realm:
/var/folders/qk/s_6nzrrj3779504sfcscwfyr0000gn/T/ipykernel_11143/3660375567.py:12: FutureWarning: The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.
indicator = pd.concat([
Agregar indicadores desagregados por Ecosystem Functional Group:
Skipping F3.2 Constructed lacustrine wetlands
Skipping F3.1 Large reservoirs
Ambos procesos se realizan en un script de python que elimina las intersecciones.
CPU times: user 1.58 ms, sys: 787 μs, total: 2.37 ms
Wall time: 166 ms
efg_marino_total = efg_marino["area_natural"].sum()
print(f"Área natural marino: {efg_marino_total:.2f} ha")Área natural marino: 357214024.72 ha
Agrupar por Realm:
Agregar indicadores desagregados por Ecosystem Functional Group:
Área natural total (terrestre + marino): 424422456.01 ha