Как это считается фаза 1–5 · v2.3 · riskgeo
С v2.0 модель считает три канала риска по каждому флайвею и берёт максимум: R = max(M, C, Z) × MW × MB × BP × WD. Канал M — транзит (0–100): агрегированная миграционная фаза пролёта — взвешенный вклад групп видов-резервуаров, у каждой из которых заданы осеннее и весеннее окна пролёта, пик и размах (σ = размах/6). Осенний транзит учитывается полным весом, весенний — ослабленным (0.62), плюс постоянный фоновый уровень резидентных птиц. Пики сдвинуты по флайвеям: на юге осенний транзит проходит позже — птица добирается с севера, весенний — раньше.
Честно о данных: окна и пики — экспертная параметризация по орнитологическим сводкам (флайвеи BirdLife/Wetlands International, региональные фенокалендари России), с v2.3 уточнённая недельными кривыми относительной абундантности eBird Status & Trends (воспроизводимая оцифровка публичных барчартов, вес в бленде α = 0.3: летнее плато чайковых, резидентный фон речных уток, ранние кулики, острые пики гусей, зимовочные плато нырковых/лебедей) — data/ebird_phenology.json. Следующий шаг — сырые выгрузки ebirdst и GPS-треки Movebank: структура модели это позволяет без её пересборки.
Каналы колонии и зимовки (v2.0): транзитный календарь не видит два реальных механизма заноса. C — колониальный канал: гнездовые скопления чайковых, бакланов, пеликанов и лысух в июне–августе — форма задаётся гауссианой с пиком на неделе 28: C(w) = 100·c·gauss(w, 28, σ). Z — зимовочный канал: миллионы водоплавающих концентрируются на зимовках с ноября по март — трапеция с заворотом через Новый год (подъём start→full1, плато 1, спад full2→end на дугах окружности недель 1–52): Z(w) = 100·z·trap(w). Параметры — экспертные:
| флайвей | C: c · σ (пик н28) | Z: z | окно зимовки (start→full1→full2→end) | ориентиры |
|---|---|---|---|---|
| Черном. | 0.82 · 4.5 | 0.88 | н44 → н50 → н5 → н10 | Каспий/дельта Волги: бакланы, пеликаны, чайковые, лысухи; зимовки Каспий–Азов–Черноморье (ноябрь 2022 — Дагестан) |
| В-Атл | 0.62 · 5.0 | 0.50 | н45 → н51 → н4 → н9 | морские колонии Баренцева/Белого моря, Ладога; зимовки Балтики, полыньи Северо-Запада |
| В-Азия | 0.55 · 5.0 | 0.38 | н46 → н51 → н3 → н9 | Ханка, Селенга, Охотское море; зимовки юга Дальнего Востока |
| Центр-Аз | 0.42 · 5.0 | 0.25 | н46 → н50 → н3 → н8 | озёрные колонии юга ЗапСибири; зимовки юга Западной Сибири |
Погодный слой (фаза 2): итоговый индекс R = max(M, C, Z) × MW × MB × BP × WD — максимальный из трёх каналов умножается на погоду, фон, граничное давление и ветер. MW = 0.70 + 0.45·W + 0.25·P — погода может усилить риск до +40% или ослабить до −30%. W — форсаж движений = 0.6·A + 0.4·F: A — аномалия холода (средняя за 7 дней против нормы той же даты 2015–2024; −8°C и холоднее — максимум), F — доля суток с минусом за 14 дней (прошедшие + прогнозные; прокси ледостава и концентрации птицы на полыньях). P — персистентность = clamp(1 − (T+5)/40): H5N1 в холодной воде живёт недели, в тёплой — дни:
Погода — Open-Meteo (архив + прогноз), 4 точки на флайвей, пересчёт — GitHub Actions ежедневно; W и P — прозрачные эвристики, а не калиброванная эпидемиология. Детальный погодный мониторинг тех же точек — в vet-meteo.
Фон заносов (фаза 3, с v2.3 — дистанционный): B — свежие события ВПГП вверх по флайвею из WOAH WAHIS (публичный API официальных уведомлений — тот же источник, что скрейпит ВетКарта; FAO EMPRES-i API недоступен — проверено 12.10.2026, HTTP 404). Каждое событие весит по свежести последнего рапорта (≤14 дней — 1.0, ≤30 — 0.6, ≤60 — 0.3) и по гаверсинус-дистанции от опорных точек страны (центроиды, крупные страны — набором точек) до узлов флайвея с экспоненциальным затуханием exp(−d/1000 км): вспышка в 300 км от узла даёт ~0.74 веса, в 2000 км — ~0.14; без координат страны — плоский вес (старое поведение). Сумма нормируется сатурацией на 10 условных единицах, MB = 0.85 + 0.30·B; у каждого из 16 узлов — свой MB по своей дистанционной сумме (data/country_coords.json). Публикация уведомлений отстаёт от реальных событий — фон не заменяет официальные каналы Россельхознадзора (ФСВПС).
Входящее давление (фаза 4, v2.1): BP — вспышки ВПГП в странах, граничащих с РФ внутри коридора флайвея. WAHIS не отдаёт координат событий, поэтому «радиус 200 км» заменён странами-граничниками — сознательное упрощение: активная вспышка в граничной стране — самостоятельный механизм заноса через сухопутную/морскую границу и общий водоём. Окно резче, чем у фона B — 21 день, вес по свежести (≤7 дней — 1.0, ≤14 — 0.8, ≤21 — 0.5), вес границы по значимости сегмента для водоплавающих (1.0 — протяжённая: Казахстан, Китай, Финляндия, Украина…; 0.5 — короткая: Польша, Грузия, Норвегия…). Формула BP = 1.00 + 0.20·(1 − exp(−raw/4)) — только усиливает (тихая граница не ослабляет базовый риск), максимум +20%. BP не валидирован бэктестом (исторический срез WAHIS недоступен задним числом) и в бэктесте не участвует; частичное пересечение с MB по смежным странам сознательно — близость к границе РФ считается отдельным фактором.
Ветровой занос (фаза 5, v2.2): WD — атмосферный перенос в сторону России у границ со странами-граничниками. WAHIS координат не отдаёт, поэтому геометрия строится на 45 опорных точках границы (data/points_border.json: страна, координата, inward-азимут «внутрь РФ»): Open-Meteo отдаёт погодовой ветер за прошедшие 72 ч одним batch-запросом. Для каждой точки считается wind_score — доля часов, когда скорость ≥ 4 м/с и направление переноса (метеоветер + 180°) попадает в сектор ±60° от inward. Ключевая физика: вклад дают только страны с активной вспышкой (≤21 день, из BP-событий WAHIS): вклад = свежесть вспышки × вес границы × wind_score её сегментов — без вспышки ветер бесполезен. Формула WD = 1.00 + 0.15·(1 − exp(−wd_raw/2)) — только усиливает, максимум +15%. WD — самый срочный фактор модели (окно 72 ч против 21 дня у BP), не валидирован бэктестом; если Open-Meteo недоступен — нейтрален (1.00).
С v2.3 активны все компоненты: три канала (транзит M с eBird-блендом, колонии C, зимовки Z), W (погодный форсаж), P (персистентность), B (дистанционный фон заносов с гаверсинусом), BP (входящее давление с границ) и WD (ветровой перенос, 72 ч); живые множители применяются к текущей неделе, узловая детализация — 16 точек со своим MW и своим MB. Плюс компактная риск-страница /risk/ для встраивания. Дальше — сырые выгрузки ebirdst, Movebank и калибровка коэффициентов по ретроспективе; структура модели не меняется. Поиграть с формулой можно в симуляторе.
Мини-FAQ
- Чем это отличается от ВетКарты (vet-heatmap)?
- ВетКарта — детальная ретроспектива и текущие вспышки по РФ (тот же источник WAHIS): что уже случилось. VetFlu — проактивный индекс: в какие недели и на каких миграционных путях окно заноса открывается или закрывается. Инструменты дополняют друг друга.
- Откуда данные?
- Календарь каналов — экспертная параметризация по орнитологическим сводкам; погода — Open-Meteo (архив 2015–2024 + прогноз, без ключей; детальный погодный мониторинг — vet-meteo); вспышки — публичный API WOAH WAHIS. Всё пересобирается ежедневно в GitHub Actions.
- Что такое «ветровой занос» (WD)?
- Это срочный фактор (окно 72 ч): если в стране-граничнике есть активная вспышка ВПГП, модель смотрит ветер на опорных точках границы — дул ли перенос в сторону России (≥ 4 м/с, в секторе ±60° «внутрь РФ»). Доля «постановочных» часов × свежесть вспышки × вес границы даёт вклад в WD = 1.00–1.15. Без вспышки у соседа ветер не считается вовсе — перенос бесполезен, если вирус не там. Данные — Open-Meteo, тот же безключевой источник, что и погодный слой.
- Что такое «входящее давление» (BP)?
- Это свежие вспышки ВПГП в странах, граничащих с Россией внутри коридора флайвея (Казахстан, Китай, Финляндия, Украина и др.). WAHIS не публикует координаты в списке событий, поэтому вместо «радиуса 200 км» считаются страны-граничники — окно 21 день, сатурация, максимум +20% к индексу. BP только усиливает: тихая граница не снижает базовый риск. Частичное пересечение с фоном B — сознательное: близость к границе РФ — отдельный механизм заноса.
- Почему возможны промахи?
- Модель — эвристика, а не эпидемиологический расчёт: календарь усреднённый, WAHIS отстаёт от реальных событий, редкие механизмы (например, ближний перенос с птицефабрик) не покрыты. Промахи фиксируются честно — см. бэктест ниже.
- Можно ли использовать для принятия решений?
- Нет. Это ознакомительный индекс «как есть», не ветеринарный совет и не система раннего предупреждения в нормативном смысле. Решения — только по официальным каналам Россельхознадзора (ФСВПС) и государственной ветслужбе.