3.4 KiB
3.4 KiB
Data available to store for comparisons (weekdays, weekends, day/night, holidays)
What we already store (daily, per location)
| Data | Source | Use for comparison |
|---|---|---|
| Date | — | Weekday vs weekend, holiday (join with calendar) |
| Temperature min/max | Open-Meteo Forecast | Season, weather type |
| Solar (shortwave sum), sunshine duration | Open-Meteo | Production, clear vs cloudy |
| Sunrise, sunset, daylight | Open-Meteo | Day length, season |
| Wind speed/gusts/direction | Open-Meteo | ML/RL, weather type |
| Precipitation, rain, rain probability | Open-Meteo | Rainy vs dry days |
| UV index max | Open-Meteo | Clear-sky proxy |
Also stored (AQ + weather code; hourly in hourly_metrics)
| Data | Source | Use for comparison |
|---|---|---|
| Air quality (PM2.5, PM10, European AQI) | Open-Meteo Air Quality API | Weekday vs weekend, traffic/industry, health |
| Weather code (WMO) | Open-Meteo Forecast | Day type: clear (0) vs cloudy (1–3) vs rain (61–82) vs thunder (95–99) |
Other data available from Open-Meteo (not yet stored)
From Forecast API (daily)
- Cloud cover (total, low/mid/high) – daily max/mean; good for “clear vs overcast”.
- Relative humidity – daily min/max; comfort and fog.
- Surface pressure – daily min/max; weather systems.
- Apparent temperature – daily min/max; “feels like”.
- Precipitation hours – number of hours with rain; intensity of rainy days.
- Snowfall sum – for winter comparisons.
From Forecast API (hourly – for day vs night)
- Same variables at hourly resolution. To compare day vs night you need time-of-day:
- Option A: We already store hourly_metrics; aggregate by hour-of-day (e.g. 6–18 = day, 18–6 = night) when analysing.
- Option B: Derive “day” vs “night” from sunrise/sunset and store e.g.
solar_day_sumandsolar_night_sum(night is 0 for solar) or average temp day vs night from hourly in the ETL.
From Air Quality API (hourly)
- Ozone (O₃), Nitrogen dioxide (NO₂), Sulphur dioxide (SO₂), Carbon monoxide (CO) – for traffic/industry vs background.
- Dust (e.g. Saharan) – episodes.
- Pollen (grass, tree, weed) – seasonal and health.
From other sources (not Open-Meteo)
- Holidays – Belgian (or regional) holiday calendar: add a small table or CSV (date, region, name) and join by
date(and optionally location) so you can compare holiday vs non-holiday (e.g. traffic, air quality, demand). - Day of week – derived from
datein SQL or in the app (no extra storage).
Suggested next steps for comparisons
- Weekday vs weekend – use stored
date; deriveday_of_week(e.g. in SQL:EXTRACT(DOW FROM date)) or store a smallcalendartable withdate,is_weekend,is_holiday. - Day vs night – add hourly storage for key series (solar, temp, PM2.5) and aggregate by hour-of-day; or add pre-aggregated “day” and “night” columns in a later iteration.
- Holidays – add a holidays table (e.g. Belgian official holidays) and join on
date(and optionallylocation_idif you have regional holidays). - Weather type – use weather_code (and optionally cloud cover) to group days into clear / cloudy / rainy / stormy for solar and demand comparisons.