• v0.62.0 2e3ecd1c25

    0.62.0 Stable

    joeyr released this 2026-09-22 22:50:09 -05:00 | 32 commits to main since this release

    Step 5 of the weather enhancement plan: get_observation_history, the tenant's eleventh
    tool.
    What a station actually reported over a past window, from the Iowa Environmental
    Mesonet's METAR archive, which reaches back decades and works anywhere. Every rule below
    was measured against the live archive first, and the live pass matched three KJFK routine
    reports against the NWS feed for the same minutes field for field.

    Added

    • get_observation_history(latitude, longitude, start, end, station, count). Routine
      and special reports, newest first, each with its raw METAR, sky layers, present
      weather, hourly precipitation and peak wind, in the units get_observations uses. A
      field null on every report is named in not_reported_in_window and left off the rows.
      At most seven days per call; past count the window is thinned to one report per hour
      and the response says what that hides.
    • An empty window says which of four things it is: a gap in the record, a date
      outside the span the archive holds for the station, a station the archive does not
      carry (with the next nearest named), or an identifier that does not exist.
    • A seventh upstream, mesonet.agron.iastate.edu, keyless.

    Changed

    • The client paces the archive's data endpoint to one request every 7 seconds. Its
      changelog says a one-second throttle; measured, requests 3 and 5 seconds apart answered
      429 and 6 and up answered 200. Two calls back to back now wait instead of failing.
    • get_observations points at the archive for windows it cannot read and for the raw
      METAR text. Its description changed, so the connector needs a reconnect.
    • in_window and latest_per_hour take any report with a time, so both tools thin
      the same way.

    Notes

    • Outside the US the archive's precipitation is a fill, and it is refused. Heathrow's
      1008 reports from 1 to 21 September carried 0.00 on every one, 89 of them in rain. An
      amount is read only where the report's own remarks state one.
    • A special report carries the running amount since the last routine one, so adding
      every row double-counts. The response says to add the routine reports only.
    • The plan's "strip the K or get nothing" no longer holds for the data endpoint, which
      answers KJFK as JFK. The metadata endpoint still needs JFK, so the K comes off.
    Downloads