Tutorial

python-datons: Consulta los datos de liquidación I90 con SQL

Instala la librería, escribe una consulta SQL, obtén un DataFrame. Sin descargas de archivos, sin parsear Excel — datos I90 limpios desde un backend ClickHouse actualizado diariamente.

python-datons: Consulta los datos de liquidación I90 con SQL

DATONS_API_KEY=your_key_here


El cliente lee desde cualquiera de las dos fuentes automáticamente:

```python
from datons import Client

client = Client()

Explora el modelo de datos antes de escribir consultas. metadata() devuelve el esquema, los programas disponibles y el rango de fechas:

meta = client.esios.metadata()

Encuentra unidades, empresas o tecnologías con búsqueda aproximada:

client.esios.search("trillo")    # → encuentra TRL1, C.N. TRILLO
client.esios.search("iberdrola") # → encuentra nombres de empresa y unidades
client.esios.search("solar")     # → encuentra Solar fotovoltaica, Solar PV...

Hay tres tablas disponibles con distintas granularidades: operational_data_15min (intervalos brutos de 15 min), agg_hourly y agg_daily (preagreg­adas). Utiliza la tabla más gruesa que se ajuste a tu consulta — agg_daily es órdenes de magnitud más rápida para análisis mensuales o anuales.

Analysis by unit: following one power plant

La vista por unidad es donde los datos I90 adquieren todo su potencial. Una sola consulta SQL sigue a una central a lo largo de toda la cascada de mercado:

df = client.esios.query("""
    SELECT program, round(sum(energy), 1) AS energy
    FROM operational_data_15min
    WHERE unit = 'BAHIAB'
      AND toStartOfHour(datetime) = toDateTime('2024-12-04 16:00:00')
    GROUP BY program
    ORDER BY program
""")
Waterfall chart showing BAHIAB gas turbine doubling its position through intraday corrections

BAHIAB es una turbina de gas de ciclo combinado. En esta hora, programó 730 MWh en el mercado diario — y luego PHF1 (la primera sesión intradiaria) añadió 810 MWh adicionales. La central más que duplicó su posición antes de la entrega. Pequeñas correcciones de RR y BT, y un resultado neto de 1.526 MWh.

Este es el movimiento característico del gas: programar de forma conservadora y después añadir volumen en intradiario. Prueba la misma consulta con una unidad nuclear como TRL1 — verás una línea plana. Cada tecnología tiene una forma de cascada completamente distinta.

Analysis by company: Endesa’s generation portfolio

Amplía el enfoque desde una sola unidad hasta toda una empresa. ¿Cómo es la cartera de generación del mayor productor de España desde una perspectiva tecnológica?

df = client.esios.query("""
    SELECT technology,
           round(sum(total_energy) / 1e3, 0) AS gwh
    FROM agg_daily
    WHERE program = 'PDBF'
      AND day BETWEEN '2024-03-01' AND '2025-02-28'
      AND company_name LIKE '%ENDESA%'
      AND technology IS NOT NULL
    GROUP BY technology
    ORDER BY gwh DESC
""")
Horizontal bar chart showing Endesa's generation portfolio by technology

Los dos paneles revelan ambas caras del negocio de Endesa. A la derecha, la generación: la nuclear domina, seguida de la hidráulica de gran potencia y el ciclo combinado. A la izquierda, la comercialización: sus comercializadoras en mercado libre compran bastante más energía de la que producen sus centrales. Endesa es un comprador neto en el mercado diario — un hecho que resulta invisible si solo se observa la generación.

La función search() ayuda a encontrar el nombre exacto de la empresa. Los nombres de las compañías en los datos I90 no siempre coinciden con sus nombres comerciales — search("endesa") revela que “ENDESA GENERACIÓN, S.A.” es el filtro correcto.

Analysis by technology: the generation mix

La vista a nivel de sistema muestra cómo cambia el mix eléctrico español a lo largo de las estaciones:

df = client.esios.query("""
    SELECT technology,
           toStartOfMonth(day) AS month,
           round(sum(total_energy) / 1e3, 0) AS energy_gwh
    FROM agg_daily
    WHERE program = 'PDBF'
      AND day BETWEEN '2024-03-01' AND '2025-02-28'
      AND technology IN ('Eólica terrestre', 'Nuclear',
          'Solar fotovoltaica', 'Hidráulica UGH',
          'Ciclo Combinado', 'Gas Natural Cogeneración')
    GROUP BY technology, month
    ORDER BY technology, month
""")
Stacked bar chart showing monthly electricity generation by technology in Spain

El ritmo estacional es inmediato. La solar alcanza su pico en verano y casi desaparece en invierno. El viento es más fuerte en primavera y otoño. La nuclear funciona de forma constante durante todo el año — la columna vertebral del baseload. La hidráulica fluctúa con las precipitaciones. El ciclo combinado cubre los huecos.

Esta consulta se ejecuta contra agg_daily — la tabla preagreg­ada. Procesa un año completo de datos de todas las tecnologías de generación en menos de un segundo. El mismo análisis sobre datos brutos de 15 minutos escanearía miles de millones de filas.

Deep dive: who gets curtailed in PDVP?

El verdadero potencial analítico surge al cruzar dimensiones. PDVP (restricciones técnicas) es donde REE interviene para mantener la seguridad de la red. Una consulta revela quién se beneficia y quién paga:

df = client.esios.query("""
    SELECT technology,
           round(sum(total_energy) / 1e3, 1) AS gwh
    FROM agg_daily
    WHERE program = 'PDVP'
      AND day BETWEEN '2024-03-01' AND '2025-02-28'
      AND technology IS NOT NULL
    GROUP BY technology
    ORDER BY gwh ASC
""")
Horizontal bar chart showing PDVP curtailment by technology, with gas receiving upward redispatch and renewables being curtailed

La asimetría es llamativa. El ciclo combinado de gas recibe un redespacho al alza masivo — REE recurre al gas cuando las zonas congestionadas necesitan más potencia. Todas las demás tecnologías son recortadas. La eólica sufre los mayores recortes, seguida de la solar y la hidráulica.

Este es el tipo de análisis cruzado entre programas y tecnologías que era prácticamente imposible con los ficheros I90 en bruto. Cada programa era una descarga independiente, y cada tecnología debía filtrarse manualmente. Con una tabla SQL unificada, basta una sola consulta.

What’s next

Cuatro consultas SQL. Cuatro perspectivas sobre el mercado eléctrico español que, por separado, requerirían horas de procesamiento manual de datos. La tabla I90 unificada en python-datons convierte este tipo de análisis en algo rutinario.

La librería cubre hoy los datos de liquidación I90 — cada unidad de generación, cada programa de mercado, cada intervalo de 15 minutos desde 2023. A medida que la plataforma datons crezca, nuevos conjuntos de datos serán accesibles a través de la misma interfaz Client().

pip install datons

Documentación completa y solicitud de clave API en datons.com/apps/esios-data/docs.

Sigue leyendo

Artículos relacionados que te pueden interesar

Índice
Buscar sección

Suscríbete a nuestro newsletter

Recibe insights semanales sobre datos, automatización e IA.

© 2026 Datons. All rights reserved.