meshai/work/tests/fixtures/nws/0012.json
malice bdc42aa341
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>
2026-07-04 18:16:34 -06:00

155 lines
No EOL
5.7 KiB
JSON

{
"envelope": {
"id": "https://api.weather.gov/alerts/urn:oid:2.49.0.1.840.0.38832779abf7df2df3c943a8ebd4af2692acd570.001.1",
"source": "central.echo6.co",
"type": "central.wx.alert.special_weather_statement.v1",
"time": "2026-07-01T23:57: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.38832779abf7df2df3c943a8ebd4af2692acd570.001.1",
"adapter": "nws",
"category": "wx.alert.special_weather_statement",
"time": "2026-07-01T23:57:00Z",
"expires": "2026-07-02T00:30:00Z",
"severity": 2,
"geo": {
"centroid": [
-112.864,
43.308
],
"bbox": [
-113.26,
42.72,
-112.38,
43.75
],
"regions": [
"US-ID-FIPS16005",
"US-ID-FIPS16011",
"US-ID-FIPS16013",
"US-ID-FIPS16019",
"US-ID-FIPS16023",
"US-ID-FIPS16029",
"US-ID-FIPS16031",
"US-ID-FIPS16037",
"US-ID-FIPS16051",
"US-ID-FIPS16063",
"US-ID-FIPS16067",
"US-ID-FIPS16077",
"US-ID-Z051",
"US-ID-Z052",
"US-ID-Z054",
"US-ID-Z055",
"US-ID-Z058",
"US-ID-Z068"
],
"primary_region": "US-ID-FIPS16005",
"geometry": null
},
"data": {
"@id": "https://api.weather.gov/alerts/urn:oid:2.49.0.1.840.0.38832779abf7df2df3c943a8ebd4af2692acd570.001.1",
"@type": "wx:Alert",
"id": "urn:oid:2.49.0.1.840.0.38832779abf7df2df3c943a8ebd4af2692acd570.001.1",
"areaDesc": "Shoshone/Lava Beds; Arco/Mud Lake Desert; Lower Snake River Plain; Eastern Magic Valley; Marsh and Arbon Highlands; Lost River Valleys",
"geocode": {
"SAME": [
"016013",
"016063",
"016067",
"016011",
"016019",
"016023",
"016051",
"016005",
"016077",
"016031",
"016029",
"016037"
],
"UGC": [
"IDZ051",
"IDZ052",
"IDZ054",
"IDZ055",
"IDZ058",
"IDZ068"
]
},
"affectedZones": [
"https://api.weather.gov/zones/forecast/IDZ051",
"https://api.weather.gov/zones/forecast/IDZ052",
"https://api.weather.gov/zones/forecast/IDZ054",
"https://api.weather.gov/zones/forecast/IDZ055",
"https://api.weather.gov/zones/forecast/IDZ058",
"https://api.weather.gov/zones/forecast/IDZ068"
],
"references": [],
"sent": "2026-07-01T17:57:00-06:00",
"effective": "2026-07-01T17:57:00-06:00",
"onset": "2026-07-01T17:57:00-06:00",
"expires": "2026-07-01T18:30: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 1 at 5:57PM MDT by NWS Pocatello ID",
"description": "At 556 PM MDT, Doppler radar was tracking gusty showers along a line\nextending from 13 miles southwest of Southwest Inl to American Falls.\nMovement was northeast at 30 mph.\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...\nWestern Pocatello, American Falls, American Falls Reservoir,\nChubbuck, Aberdeen, Atomic City, Fort Hall Buffalo Lodge, Central\nInl, Southwest Inl, Springfield, Pingree, Pocatello Airport, Fort\nHall Townsite, Sterling, and Big Southern Butte.",
"instruction": "If outdoors, consider seeking shelter inside a building.\n\nIf on or near American Falls Reservoir, get out of the water and\nmove indoors or inside a vehicle. Strong winds will create rough\nchop.\nRemember, lightning can strike out to 10 miles from the parent\nthunderstorm. If you can hear thunder, you are close enough to be\nstruck by lightning. Move to safe shelter now! Do not be caught on\nthe water in a thunderstorm.",
"response": "Execute",
"note": null,
"parameters": {
"AWIPSidentifier": [
"SPSPIH"
],
"WMOidentifier": [
"WWUS85 KPIH 012357"
],
"NWSheadline": [
"GUSTY SHOWERS WILL IMPACT SOUTHEASTERN BLAINE...NORTHWESTERN BANNOCK...SOUTHEASTERN BUTTE...NORTHEASTERN POWER AND WESTERN BINGHAM COUNTIES THROUGH 630 PM MDT"
],
"eventMotionDescription": [
"2026-07-01T23:56:00-00:00...storm...216DEG...28KT...43.32,-113.16 42.79,-112.82"
],
"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
}