Skip to content

v0.131.0

Choose a tag to compare

@gutzbenj gutzbenj released this 02 Aug 21:05
0cb070f

What's changed in 0.131.0

Added

  • Add a DWD SWSMOS network (dwd/swsmos) exposing the road weather forecast (Straßenwetter-MOS)
    for DWD's ~1800 road weather stations. Each model run provides an hourly forecast out to +167 hours
    (selectable via issue, default: the latest run): air, dew-point and road surface temperature,
    liquid precipitation, precipitation probabilities and the road surface condition. This is the
    forecast counterpart to the DWD road observation network
  • Add the DWD 10_minutes urban climate (Stadtklima) datasets to the dwd/observation network,
    served from DWD's climate_urban/ path (recent period only): urban_precipitation,
    urban_pressure, urban_solar, urban_temperature_air (incl. the new
    temperature_radiant_mean_2m parameter), urban_temperature_extreme, urban_temperature_soil,
    urban_wind and urban_wind_extreme. These complement the existing hourly urban datasets. The
    urban station-description lists are parsed by content because they frequently leave the optional
    date and Bundesland fields blank
  • Add an IPMA (Portugal) observation provider (ipma/observation) backed by the key-less
    api.ipma.pt open-data JSON feeds. Provides near-real-time hourly observations (temperature,
    humidity, sea-level pressure, wind speed/direction, precipitation, global radiation) from ~222
    stations. Recent-only (a rolling ~1-day window), so a date range within the last day is required.
    The -99.0 missing sentinel becomes null and the 8-point wind-direction code is converted to
    degrees
  • Add an LHMT (Lithuania) observation provider (lhmt/observation) backed by the key-less
    api.meteo.lt JSON REST API. Provides hourly observations (temperature, humidity, wind
    speed/gust/direction, cloud cover, sea-level pressure, precipitation, snow depth) from ~52
    stations, with historical data back to roughly 2016 fetched per station and day. Settled past days
    are cached indefinitely while the current day uses a short cache
  • Add a Met Office (UK) observation provider (metoffice/observation) backed by the MIDAS Open
    archive on CEDA (UK Open Government Licence). Covers eight datasets across daily and hourly
    resolution (rain, temperature, weather, wind, radiation, soil temperature). Requires a free CEDA
    account (WD_AUTH__CEDA=<username>:<password>); the bearer token is minted from those credentials
    and cached in-process until shortly before it expires. Multiple report types per day are collapsed
    to one value per calendar day, multi-day rain accumulations are dropped, and native units are
    normalised (e.g. visibility from decametres to metres)

Changed

  • Sharpen the interpolate/summarize endpoint descriptions (which become the MCP tool
    descriptions) and the MCP instructions so agents stop routing plain weather questions to them.
    stations -> values is now stated as the default for weather at a named place even when a
    specific past date is given, and interpolate/summarize are called out as opt-in estimates -- used
    only on explicit request or when no station with data is near the point -- because they add
    inaccuracy

Fixed

  • Type the interpolate/summarize response-model items to match what the endpoints serialise, so
    their MCP output schemas stop rejecting valid results. _InterpolatedValuesItemDict and
    _SummarizedValuesItemDict now include the resolution/dataset keys (always present in the
    rows) and type value/distance_mean/distance/taken_station_id as nullable: interpolating or
    summarizing a point with no station in reach serialises null for those fields, which the previous
    non-null schema rejected (the same schema drift fixed for values in 0.130.0)