Radar frames are captured every 10 minutes, not the configured 5 #208
Labels
No labels
area:ai
area:ci-cd
area:notifications
area:observability
area:public-pages
backlog
bug
duplicate
enhancement
help wanted
invalid
question
security
type:decision
type:feature
type:infra
type:maintenance
type:security
v1.0.1
v1.1.0
v1.2.0
v1.3.0
v2.0.0
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
rbrooks/WeatherBot#208
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found 2026-10-13 on dev (
2.0.0-rc6) while watching frame capture during the Kansas/Oklahoma soak. Not a regression: the logic dates from #130.Symptom
ALERT_RADAR_FRAME_INTERVAL_MINUTESis 5. On dev, the Wichita and Enid Flood Watches collected 23 frames between 17:29Z and 21:05Z, which is one every 9.8 minutes.Cause
The capture job is scheduled at the same period as the interval it enforces (
IntervalTrigger(minutes=settings.alert_radar_frame_interval_minutes)), andpoll_alert_radar_framesskips an alert whose newest frame is younger than that interval:captured_atis stamped when the frame is stored, a second or two after the run started. Five minutes later the next run finds that frame 4m58s old, which is younger than five minutes, and skips it. Every alert is therefore captured on alternate runs.Effect
ALERT_RADAR_FRAME_MAX_PER_EVENT) currently spans about four hours rather than the two it was sized against.Fix
Consequence to decide
Once the cadence is really 5 minutes, 24 frames cover two hours instead of four. Warnings are short, so they gain resolution and lose nothing. A long-lived watch (tonight's runs seven hours) loses coverage of its later hours. Raising the cap restores that at the cost of disk, and #158 is the place where that cost is being measured; dev's disk is at 90%.
Merged via #209 (
00e3c8e). CI run 259 green in 6m23s, both test tiers. Not yet released:mainis ahead ofv2.0.0-rc6by this fix only.Leaving this open until it is confirmed on a deployed build (frames arriving every 5 minutes).
The cap question has grown into a redesign, pending a decision
@rbrooks asked (2026-10-13) to capture once per location and share frames across alerts, to make sure nothing is dropped under a Severe Thunderstorm or Tornado Warning, and to guarantee the lead-in. A proposal is out for @rbrooks's decision; nothing is built.
The finding that shapes it: Iowa State's archive serves the national NEXRAD reflectivity mosaic at 5-minute steps for arbitrary past times, with the same bbox request shape used for NOAA today:
Tested for the Wichita bbox: 2026-10-13 21:00Z and 21:05Z (today's central Kansas storms visible), 2026-09-21 01:30Z, and 2025-10-13 21:00Z all returned 600×600 transparent PNGs in under half a second, 55–190 KB each.
Proposed shape:
(location_id, valid_at)on a 5-minute grid rather than by alert, so overlapping alerts share one image.[start − lead-in, end + tail], fetching whatever slots are missing. No per-alert cap.Open decisions: the tier lists, the lead-in and tail lengths (proposed 60 and 30 minutes), acceptance of IEM as the source (different colour table from NOAA's image), and whether this lands in 2.0.0 or 2.1. Not measured: how far behind real time IEM's newest frame runs.
This will get its own issue once the decisions are made.