mirror of
https://github.com/zvx-echo6/meshai.git
synced 2026-08-26 17:31:34 +00:00
refactor(phase2): migrate nws + incident/roads to formatter+decider (tier-a) (#30)
Behavior-preserving relocation (byte-identical goldens), behind the staged-
cutover gate.
- formatters/nws.py + gating/nws.py: move _render + all CAP parsing (HTML-strip,
_parse_nws_description, motion/hail/wind, county scoping, short-expiry) and the
gating (3h re-alert window, Update/Cancel/Expire tombstone, first-sighting,
warning->immediate severity). Native env/nws.py stops truncating description +
carries parameters/eventCode/certainty/msgType/references/geocoder. Registers
weather_warning + weather_statement.
- formatters/incident.py + gating/incident.py: absorb the incident _render AND
the work_zone renderer, reconciling the two sub_type vocabularies; traffic_events
change-detection gating. Native env/{traffic,roads511}.py emit canonical data.
Registers work_zone/road_incident/road_closure/traffic_congestion.
- formatters/_anchor.py: shared town/distance/bearing resolver (consolidates WFIGS
_location_anchor + incident nearest_town; WFIGS fire reuses in Phase 3).
- Fixtures captured: nws x37, traffic x46.
Tier-a byte-identical goldens for all fixtures. Tests: +~150; 0 new failures
(34 baseline, 1539 passed).
Co-authored-by: Matt Johnson <mj@k7zvx.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
4e23fc737d
commit
bdc42aa341
99 changed files with 15848 additions and 28 deletions
136
work/tests/fixtures/nws/0021.json
vendored
Normal file
136
work/tests/fixtures/nws/0021.json
vendored
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
{
|
||||
"envelope": {
|
||||
"id": "https://api.weather.gov/alerts/urn:oid:2.49.0.1.840.0.fdef77b40b0d4bf6ffedeb3825c87ef0e1426f5f.001.1",
|
||||
"source": "central.echo6.co",
|
||||
"type": "central.wx.alert.special_weather_statement.v1",
|
||||
"time": "2026-07-03T19:55:00+00:00",
|
||||
"datacontenttype": "application/json",
|
||||
"centralschemaversion": "1.0",
|
||||
"centralcategory": "wx.alert.special_weather_statement",
|
||||
"centralseverity": 2,
|
||||
"specversion": "1.0",
|
||||
"data": {
|
||||
"id": "https://api.weather.gov/alerts/urn:oid:2.49.0.1.840.0.fdef77b40b0d4bf6ffedeb3825c87ef0e1426f5f.001.1",
|
||||
"adapter": "nws",
|
||||
"category": "wx.alert.special_weather_statement",
|
||||
"time": "2026-07-03T19:55:00Z",
|
||||
"expires": "2026-07-03T20:45:00Z",
|
||||
"severity": 2,
|
||||
"geo": {
|
||||
"centroid": [
|
||||
-112.876,
|
||||
42.166
|
||||
],
|
||||
"bbox": [
|
||||
-113.11,
|
||||
42.03,
|
||||
-112.55,
|
||||
42.41
|
||||
],
|
||||
"regions": [
|
||||
"US-ID-FIPS16005",
|
||||
"US-ID-FIPS16011",
|
||||
"US-ID-FIPS16029",
|
||||
"US-ID-FIPS16031",
|
||||
"US-ID-FIPS16041",
|
||||
"US-ID-FIPS16071",
|
||||
"US-ID-FIPS16077",
|
||||
"US-ID-Z057",
|
||||
"US-ID-Z058",
|
||||
"US-ID-Z059"
|
||||
],
|
||||
"primary_region": "US-ID-FIPS16005",
|
||||
"geometry": null
|
||||
},
|
||||
"data": {
|
||||
"@id": "https://api.weather.gov/alerts/urn:oid:2.49.0.1.840.0.fdef77b40b0d4bf6ffedeb3825c87ef0e1426f5f.001.1",
|
||||
"@type": "wx:Alert",
|
||||
"id": "urn:oid:2.49.0.1.840.0.fdef77b40b0d4bf6ffedeb3825c87ef0e1426f5f.001.1",
|
||||
"areaDesc": "Raft River Region; Marsh and Arbon Highlands; Franklin/Eastern Oneida Region",
|
||||
"geocode": {
|
||||
"SAME": [
|
||||
"016031",
|
||||
"016071",
|
||||
"016077",
|
||||
"016005",
|
||||
"016011",
|
||||
"016029",
|
||||
"016041"
|
||||
],
|
||||
"UGC": [
|
||||
"IDZ057",
|
||||
"IDZ058",
|
||||
"IDZ059"
|
||||
]
|
||||
},
|
||||
"affectedZones": [
|
||||
"https://api.weather.gov/zones/forecast/IDZ057",
|
||||
"https://api.weather.gov/zones/forecast/IDZ058",
|
||||
"https://api.weather.gov/zones/forecast/IDZ059"
|
||||
],
|
||||
"references": [],
|
||||
"sent": "2026-07-03T13:55:00-06:00",
|
||||
"effective": "2026-07-03T13:55:00-06:00",
|
||||
"onset": "2026-07-03T13:55:00-06:00",
|
||||
"expires": "2026-07-03T14:45:00-06:00",
|
||||
"ends": null,
|
||||
"status": "Actual",
|
||||
"messageType": "Alert",
|
||||
"category": "Met",
|
||||
"severity": "Moderate",
|
||||
"certainty": "Observed",
|
||||
"urgency": "Expected",
|
||||
"event": "Special Weather Statement",
|
||||
"sender": "w-nws.webmaster@noaa.gov",
|
||||
"senderName": "NWS Pocatello ID",
|
||||
"headline": "Special Weather Statement issued July 3 at 1:55PM MDT by NWS Pocatello ID",
|
||||
"description": "At 155 PM MDT, Doppler radar was tracking a strong thunderstorm over\nJuniper, or 18 miles northwest of Snowville, moving northeast at 15\nmph.\n\nHAZARD...Wind gusts in excess of 45 mph.\n\nSOURCE...Radar indicated.\n\nIMPACT...Gusty winds could knock down tree limbs and blow around\nunsecured objects.\n\nLocations impacted include...\nJuniper, Holbrook, Roy, and Sweetzer Summit.",
|
||||
"instruction": "If outdoors, consider seeking shelter inside a building.",
|
||||
"response": "Execute",
|
||||
"note": null,
|
||||
"parameters": {
|
||||
"AWIPSidentifier": [
|
||||
"SPSPIH"
|
||||
],
|
||||
"WMOidentifier": [
|
||||
"WWUS85 KPIH 031955"
|
||||
],
|
||||
"NWSheadline": [
|
||||
"A STRONG THUNDERSTORM WILL IMPACT SOUTHWESTERN ONEIDA...SOUTH CENTRAL POWER AND EAST CENTRAL CASSIA COUNTIES THROUGH 245 PM MDT"
|
||||
],
|
||||
"eventMotionDescription": [
|
||||
"2026-07-03T19:55:00-00:00...storm...239DEG...15KT...42.19,-112.94"
|
||||
],
|
||||
"maxWindGust": [
|
||||
"45 MPH"
|
||||
],
|
||||
"maxHailSize": [
|
||||
"0.00"
|
||||
],
|
||||
"BLOCKCHANNEL": [
|
||||
"EAS",
|
||||
"NWEM",
|
||||
"CMAS"
|
||||
],
|
||||
"EAS-ORG": [
|
||||
"WXR"
|
||||
]
|
||||
},
|
||||
"scope": "Public",
|
||||
"code": "IPAWSv1.0",
|
||||
"language": "en-US",
|
||||
"web": "http://www.weather.gov",
|
||||
"eventCode": {
|
||||
"SAME": [
|
||||
"SPS"
|
||||
],
|
||||
"NationalWeatherService": [
|
||||
"SPS"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"subject": "central.wx.alert.us.id.county.fips16005",
|
||||
"captured_epoch": 1783206513
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue