VetFlu — окна риска ВПГП

Три канала риска заноса высокопатогенного гриппа птиц — транзит × колонии × зимовки — с погодным форсажем, фоном вспышек, входящим давлением с границ и ветровым переносом по 4 флайвеям России.

загрузка…
—
толщина коридора = индекс пролёта M; точки — узлы концентраций водоплавающих

Прогноз сезона — ведущий канал на 4 недели вперёд

Для каждого флайвея — значение доминирующего канала недели (argmax транзит/колонии/зимовки) на недели w+1…w+4 от текущей. Стрелки — рост или спад относительно текущей недели; заворот через Новый год учитывается (календарь циклический, 52 недели).

История R — день за днём v2.0+ · наполняется ежедневно

Каждая дневная сборка добавляет точку (06:00 МСК). Пунктир — пороги «активный пролёт» (45) и «окно высокого риска» (75). График оживает с двумя и более днями наблюдений.

Узлы сейчас — 16 узловых точек v2.3 · свой MW и свой MB на узел

Каждый узел — репрезентативная точка флайвея с экспертной долей транзитного потока (share, Σ по флайвею = 1). Погодный множитель считается по метеоточке узла (не усреднение по флайвею): Rузла = значение ведущего канала флайвея × MWузла × MB × BP × WD. Флажки — колониальный канал (гнездовые колонии) и зимовочный (массовые зимовки). Сортировка по убыванию риска.

Фон заносов — свежие вспышки ВПГП фаза 3 · WAHIS live

Источник — WOAH WAHIS, публичный API официальных уведомлений (его же скрейпит ВетКарта). Окно 60 дней; вес события по свежести последнего рапорта: ≤14 дней — 1.0, ≤30 — 0.6, ≤60 — 0.3; страны коридора — полный вес, смежные — 0.4; сатурация на 10 условных единицах. Множитель MB = 0.85 + 0.30·B сдвигает итоговый индекс на ±15%. Публикация уведомлений отстаёт от реальных событий — фон не заменяет официальные каналы Россельхознадзора (ФСВПС).

Входящее давление BP (страны-граничники) и ветровой перенос WD (сегменты границы, 72 ч) — в строках выше; ветер считается только там, где у соседа активная вспышка.

Симулятор «что если» v2.2 · крутите параметры — R пересчитается

Формула v2.2 вживую, без бэкенда: R = max(M, C, Z) × MW × MB × BP × WD. Слайдеры стартуют с текущих значений выбранного флайвея — двигайте любой и смотрите, что решает уровень риска.

Календарь пролёта по неделям года

Каждая строка — флайвей, каждая ячейка — неделя года (1–52). Цвет = миграционный индекс M: чем теплее, тем плотнее транзит водоплавающих. Погодный множитель применяется только к текущей неделе — на карточках ниже. Клик по ячейке — показать эту неделю.

Виды-резервуары и их окна

Группы, из которых складывается индекс: вес осеннего/весеннего окна, пики и сдвиг по выбранному флайвею. Веса отражают роль группы в экологии H5N1.

Как это считается фаза 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: структура модели это позволяет без её пересборки.

< 15 — фонмежсезонный минимум, локальные резидентные птицы
15–44 — умеренное движениеначало/затухание сезона, первые косяки
45–74 — активный пролётмассовый транзит, остановки на водоёмах
≥ 75 — окно высокого рискапик: молодняк, плотные скопления, контакт с домашней птицей вероятен

Каналы колонии и зимовки (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.50.88н44 → н50 → н5 → н10Каспий/дельта Волги: бакланы, пеликаны, чайковые, лысухи; зимовки Каспий–Азов–Черноморье (ноябрь 2022 — Дагестан)
В-Атл0.62 · 5.00.50н45 → н51 → н4 → н9морские колонии Баренцева/Белого моря, Ладога; зимовки Балтики, полыньи Северо-Запада
В-Азия0.55 · 5.00.38н46 → н51 → н3 → н9Ханка, Селенга, Охотское море; зимовки юга Дальнего Востока
Центр-Аз0.42 · 5.00.25н46 → н50 → н3 → н8озёрные колонии юга ЗапСибири; зимовки юга Западной Сибири
Честная оговорка о пост-хоке: колониальный канал добавлен в v2.0 после разбора промаха v1 по летней каспийской волне 2021. Его попадание в бэктесте по этой волне — не независимое подтверждение модели, а встроенное объяснение уже известного события. Независимую проверку канал пройдёт только на будущих колониальных волнах.

Погодный слой (фаза 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 в холодной воде живёт недели, в тёплой — дни:

P = 1.0 (−5°C — недели в воде) P = 0.25 (минимум) −5°C +25°C +35°C

Погода — 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 отстаёт от реальных событий, редкие механизмы (например, ближний перенос с птицефабрик) не покрыты. Промахи фиксируются честно — см. бэктест ниже.
Можно ли использовать для принятия решений?
Нет. Это ознакомительный индекс «как есть», не ветеринарный совет и не система раннего предупреждения в нормативном смысле. Решения — только по официальным каналам Россельхознадзора (ФСВПС) и государственной ветслужбе.

Фенологическая сверка eBird S&T / Movebank — что даёт что

Окна каналов — экспертная параметризация, и её нужно сверять с крупными орнитодатасетами. Честный статус того, что уже работает, а что требует доступа:

источникчто даётстатус в модели
Экспертные фенокалендариокна/пики 8 групп видов × 4 флайвея (флайвеи BirdLife/Wetlands International, региональные фенокалендари России)активна — основа каналов M/C/Z
eBird Status & Trendsнедельная абундантность видов-маркеров (кряква, лебеди, нырковые) по неделям года — могла бы уточнять пики ±1–2 неделиручная сверка; живая интеграция требует ключа eBird API — в дорожной карте
MovebankGPS-треки миграции отдельных особей — проверка геометрии коридоров и таймингакачественная проверка; автоматизации нет (лицензии отдельных наборов данных)

Появление живой абундантности уточнит форму кривых, но не изменит структуру формулы — модель заложена под это (каналы независимы, множители коммутативны). Пока структура остаётся экспертной, все допущения перечислены в методологии, а промахи фиксируются в бэктесте.

Дорожная карта v2.3 · riskgeo готово

Версии модели changelog

Проверка глазами: волны 2020–2023 бэктест v2 · три канала

Ретроспективный прогон всех трёх каналов по неделям известных волн (только статика каналов — погоду и фон задним числом не восстановить). hit = max(M, C, Z) ≥ 45, канал — argmax:

Календарь транзита попадает в осенние окна всех четырёх осенних волн. Летняя каспийская волна 2021 в v1 была честным промахом (M=4): она держалась на гнездовых колониях чаек и лысух, а не на транзите. В v2.0 её ловит колониальный канал (C≈80 на неделе 27) — но это пост-хок: канал добавлен после разбора именно этого промаха, попадание не считать независимым подтверждением.

API — забирайте данные JSON + RSS · CORS: *

Весь результат расчёта публикуется статикой и отдаётся GitHub Pages с заголовком Access-Control-Allow-Origin: * — можно фетчить из любого браузера/скрипта без ключей и бэкенда.

# текущая неделя и разложение R по Восточно-Атлантическому флайвею curl -s https://shray77.github.io/vetflu-site/data/model.json | jq '.series.ea.weeks[] | select(.r != null)' # узлы сейчас (16 городов с R узла) curl -s https://shray77.github.io/vetflu-site/data/model.json | jq '.nodes' # история R и RSS-лента curl -s https://shray77.github.io/vetflu-site/data/model.json | jq '.history[-3:]' curl -s https://shray77.github.io/vetflu-site/feed.xml | head