solar/docs/AVAILABLE_DATA.md

3.4 KiB
Raw Permalink Blame History

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 (13) vs rain (6182) vs thunder (9599)

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. 618 = day, 186 = night) when analysing.
    • Option B: Derive “day” vs “night” from sunrise/sunset and store e.g. solar_day_sum and solar_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 date in SQL or in the app (no extra storage).

Suggested next steps for comparisons

  1. Weekday vs weekend use stored date; derive day_of_week (e.g. in SQL: EXTRACT(DOW FROM date)) or store a small calendar table with date, is_weekend, is_holiday.
  2. 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.
  3. Holidays add a holidays table (e.g. Belgian official holidays) and join on date (and optionally location_id if you have regional holidays).
  4. Weather type use weather_code (and optionally cloud cover) to group days into clear / cloudy / rainy / stormy for solar and demand comparisons.