@@ -19,7 +19,7 @@ Open-source tools & docs: https://celine-eu.github.io/
1919| Document | Description |
2020| ---| ---|
2121| [ Pipeline Overview] ( https://celine-eu.github.io/projects/celine-pipelines/docs/pipeline-overview ) | Standard pipeline anatomy, data layers, governance.yaml |
22- | [ Pipelines Reference] ( https://celine-eu.github.io/projects/celine-pipelines/docs/pipelines-reference ) | Per-pipeline reference: om, dwd, owm, copernicus, osm |
22+ | [ Pipelines Reference] ( https://celine-eu.github.io/projects/celine-pipelines/docs/pipelines-reference ) | Per-pipeline reference: om, mt, dwd, owm, copernicus, osm, rec_registry, rec_flexibility_commitments |
2323| [ Development] ( https://celine-eu.github.io/projects/celine-pipelines/docs/development ) | Prerequisites, task setup, running pipelines, releasing |
2424
2525---
@@ -29,11 +29,16 @@ Open-source tools & docs: https://celine-eu.github.io/
2929This repository hosts ** end-to-end data pipelines** based on ** open and public data sources** , including:
3030
3131- ** Meteorological data**
32+ - Open-Meteo (OM) — weather forecasts, historical archive, wind/heat risks, observations
33+ - MeteoTrentino (MT) — regional weather: stations, observations, forecasts, alerts
3234 - OpenWeatherMap (OWM)
33- - Deutscher Wetterdienst (DWD – ICON-D2)
35+ - Deutscher Wetterdienst (DWD — ICON-D2)
3436 - Copernicus Climate & Atmosphere Services (ERA5, CAMS)
3537- ** Geospatial open data**
3638 - OpenStreetMap (OSM)
39+ - ** REC data mirrors**
40+ - REC Registry — community/member/asset data mirror
41+ - Flexibility commitments — commitment data mirror from flexibility-api
3742
3843Each pipeline follows the same ** canonical CELINE structure** :
3944- ingestion (Meltano / Singer taps)
@@ -49,11 +54,14 @@ Each pipeline follows the same **canonical CELINE structure**:
4954``` text
5055celine-pipelines/
5156├── apps/
52- │ ├── copernicus/ # Copernicus Climate & Atmosphere pipelines
53- │ ├── dwd/ # DWD ICON-D2 weather model
54- │ ├── om/ # Open-Meteo weather pipeline (forecast + historical + ML features)
55- │ ├── osm/ # OpenStreetMap ingestion & curation
56- │ └── owm/ # OpenWeatherMap pipelines
57+ │ ├── copernicus/ # Copernicus Climate & Atmosphere pipelines
58+ │ ├── dwd/ # DWD ICON-D2 weather model
59+ │ ├── mt/ # MeteoTrentino regional weather
60+ │ ├── om/ # Open-Meteo (weather, wind, heat, observations)
61+ │ ├── osm/ # OpenStreetMap ingestion & curation
62+ │ ├── owm/ # OpenWeatherMap pipelines
63+ │ ├── rec_flexibility_commitments/ # Flexibility commitments mirror
64+ │ └── rec_registry/ # REC Registry data mirror
5765│
5866├── scripts/ # Release & utility scripts
5967├── skaffold.yaml # Container build configuration
@@ -108,7 +116,7 @@ All pipelines in this repository are built following that guide.
108116
109117### Prerequisites
110118
111- - Python ≥ 3.11
119+ - Python >= 3.12
112120- Docker & Docker Compose
113121- ` uv `
114122- Prefect
@@ -184,56 +192,26 @@ limitations under the License.
184192This work is part of the ** CELINE project** , funded under the European Union framework, and builds upon multiple open data initiatives including:
185193- Copernicus Programme
186194- Deutscher Wetterdienst (DWD)
195+ - Open-Meteo
196+ - MeteoTrentino / Provincia Autonoma di Trento
187197- OpenStreetMap contributors
188198- OpenWeather Ltd.
189199
190200
191201---
192202
193- ## OM pipeline (Open-Meteo)
194-
195- The Open-Meteo pipeline fetches hourly weather data (forecast + historical archive),
196- transforms it through staging and silver layers (4 natural weather variables),
197- then computes 29 ML features in a gold layer for energy consumption forecasting.
198-
199- ### Pipeline layers
200-
201- | Layer | Description |
202- | -------| -------------|
203- | ** RAW** | Verbatim API data (` raw.om_weather ` ) |
204- | ** STAGING** | Type-cast and deduplicated records (` ds_dev_staging.stg_om_weather ` ) |
205- | ** SILVER** | 4 natural weather variables: ` shortwave_radiation ` , ` cloud_cover ` , ` temperature_2m ` , ` precipitation ` (` ds_dev_silver.om_weather_hourly ` ) |
206- | ** GOLD** | 29 ML features: temporal/Fourier encodings, rolling stats, thermal dynamics, interaction features (` ds_dev_gold.om_weather_features ` ) |
207-
208- ### Run in Docker
209-
210- ``` bash
211- # Forecast mode (daily use)
212- docker compose up datasets-db -d
213- docker compose build pipeline-om
214- docker compose run --rm pipeline-om python3 -c "
215- from flows.pipeline import om_flow
216- om_flow(config={'mode': 'forecast'})
217- "
218- ```
219-
220- ``` bash
221- # Historical backfill
222- docker compose run --rm pipeline-om python3 -c "
223- from flows.pipeline import om_flow
224- om_flow(config={'mode': 'historical', 'start_date': '2024-12-01'})
225- "
226- ```
227-
228- ``` bash
229- # Both historical + forecast
230- docker compose run --rm pipeline-om python3 -c "
231- from flows.pipeline import om_flow
232- om_flow(config={'mode': 'both', 'start_date': '2024-12-01'})
233- "
234- ```
235-
236- Or start as a scheduled service (daily at 06:00):
237- ``` bash
238- docker compose up pipeline-om -d
239- ```
203+ ## Pipeline Summary
204+
205+ | Pipeline | Source | Schedule | Key Outputs |
206+ | ---| ---| ---| ---|
207+ | ** om** (weather) | Open-Meteo | 2x daily | Weather features for energy forecasting |
208+ | ** om** (wind) | Open-Meteo | Daily | Wind risk assessments per grid node |
209+ | ** om** (heat) | Open-Meteo | Daily | Heat risk assessments (P90 altitude-band) |
210+ | ** om** (obs) | Open-Meteo | Every 2h | 15-min weather observations |
211+ | ** mt** | MeteoTrentino | Hourly | Regional weather stations, forecasts, alerts |
212+ | ** owm** | OpenWeatherMap | Scheduled | Weather data for specific locations |
213+ | ** dwd** | DWD | Scheduled | ICON-D2 weather model data |
214+ | ** copernicus** | Copernicus | Scheduled | ERA5/CAMS climate data |
215+ | ** osm** | OpenStreetMap | On-demand | Geospatial layers for REC areas |
216+ | ** rec_registry** | REC Registry API | Every 5 min | Community/member/asset mirror |
217+ | ** rec_flexibility_commitments** | Flexibility API | Every 15 min | Commitment data mirror (90-day window) |
0 commit comments