ESPNWho's on the CFP bubble? Did Week 8 burst the Big 12's two-bid dreams?Bollywood HungamaAli Abbas Zafar wraps up shooting for Ahaan Panday-Sharvari starrer Beparwah; says returning to YRF feels like “coming back home”Daily MaverickWINNING: Anna Trapido is Food Writer of the YearThe Jerusalem PostIsraeli Hollywood star Gal Gadot votes in 26th Israeli Knesset electionsPunchFRSC sends 19,560 number plates to FCT after delay complaintsUN NewsKenya: 20 Ebola contacts released from quarantineInquirerEstrada’s camp refutes Bonoan’s P7-B insertion claim anewThe Straits TimesDinner will never be Over at competitive eater Zermatt Neo’s new restaurantCapital FMFormer Kiambu governor Waititu, co-accused plead for leniency in sentencingZDF heuteAktuelle Pressemitteilungen des ZDFGhaflaRuto Breaks Ground on KSh70 Billion Cement Plant in KituiBBC NewsUK and EU officials to discuss freedom of movement
The Daily Newsstand · Free, Always
Tuesday, October 27, 2026

Табло вылетов наоборот: как я превратил телеграм-канал Росавиации в статистику закрытиям аэропортов

Translate

С лета 2025 года у многих появилась привычка перед вылетом проверять сведения об ограничениях в аэропортах. Один из таких источников — телеграм-канал "Говорит Росавиация". Там коротко пишут, где ввели ограничения на приём и выпуск самолётов, а где сняли. Несколько дней назад один телеграм-канал сделал по этим постам инфографику "Когда спокойнее всего улетать из Москвы": проценты по часам и дням недели для четырёх московских аэропортов. Инфографика отличная, но я живу в Петербурге. Так что первым делом я пошёл искать, откуда взяты данные, чтобы сделать такую же для Пулково.

А потом, как это обычно у меня бывает, задача выросла. Раз парсер всё равно пишется, почему бы не посчитать все аэропорты? А раз все — зачем снимок на одну дату? Хотелось живую статистику: зайти в любой момент и увидеть, что происходит сейчас и как было за любой период.

Так появился сайт-проект Небо под ковром. Это карта аэропортов, где для каждого видно, сколько времени он был под ограничениями, в какие часы и дни это бывает чаще всего и закрыт ли он прямо сейчас. В статье — как разобрать посты Росавиации и что делать с ограничением, которое ввели и забыли снять.

Откуда данные

Единственный открытый источник — сам канал "Говорит Росавиация". API у него нет, но у любого публичного канала есть веб-версия t.me/s/<канал>: обычная HTML-страница примерно с 20 постами и параметром ?before=<id>, чтобы листать назад. Для истории я выгрузил канал целиком через Telegram Desktop: 8 818 постов с ноября 2023 года.

Ограничения в канале до конца 2024 года редкие и единичные, поэтому считаю с июля 2025-го: с этого момента посты идут по единому (почти) шаблону.

С июля 2025 года всё выглядит предсказуемо:

⛔ ВВЕДЕНЫ временные ограничения на прием и выпуск воздушных судов Аэропорт ПЕРМЬ (Большое Савино)

Есть ещё сообщения в стиле 🟡 "принимает и отправляет рейсы по согласованию" — это я классифицировал как частичный режим, а также⬜️ "СНЯТЫ ограничения" и редкие массовые посты вроде "Все аэропорты столичного региона принимают и отправляют рейсы".

Справочник: два аэропорта на четыре названия

Одно из самых неожиданных мест — названия. «Н. НОВГОРОД» и «Н.НОВГОРОД» — один город. «РАМЕНСКОЕ» — это Жуковский. «ТУНОШНА» — Ярославль. «Стригино» и «Чкалов» — один аэропорт Нижнего Новгорода, переименованный в 2019 году. В итоге у каждой строки справочника есть колонка со всеми написаниями из постов, а ИКАО я сверил с кодами из самих постов. Координаты и IATA подтягиваются скриптом из OurAirports по ИКАО.

Всего в справочнике 70 аэропортов, которые закрывались хотя бы раз за весь период исследования (с июля 2025 года). Восемь из них — Анапа, Белгород, Брянск, Воронеж, Курск, Липецк, Ростов-на-Дону и Симферополь — закрыты с 24 февраля 2022 года. На карте они отмечены отдельно и в статистику не входят, иначе каждый из них давал бы 100 % и съедал любой рейтинг.

Интервалы, у которых нет конца

Пост — это событие, а считать нужно время: "закрыт с 03:12 до 07:40". Казалось бы, задача простая: ищем когда ограничение введено, потом ждём снятия — и готово. Однако так при сборе данных работает далеко не всегда. По факту 58 раз сообщения о "снятии" пришли без введения, а ещё бывают повторные сообщения об ограничениях для того же аэропорта и ограничения, снятие которых не объявили вовсе.

В итоге пришлось придумывать свои правила:

  • ограничение было снято, но никогда не вводилось — игнорируем;

  • повторное ограничение не сдвигает начало, но подтверждает, что ограничение ещё действует;

  • если сутки нет ни снятия, ни повторного сообщения — снятие считаем необъявленным, и интервал длится типичное время (медиану) после последнего сообщения.

Первая версия вместо медианы обрезала такой интервал ровно через сутки. Это казалось осторожным решением, но в итоге ограничения в статистике были дольше, чем по факту. Поэтому потом всё же решил выбрать медиану вместо суток.

Сбор каждые 15 минут

На сервере раз в 15 минут запускается команда, которая читает t.me/s/favt_info и листает назад, пока не встретит уже сохранённый пост. Последние две страницы она перечитывает каждый раз: посты иногда правят. После любой загрузки интервалы пересчитываются из всех постов целиком — 4,6 тысячи интервалов собираются меньше чем за секунду, так что инкрементальная логика тут не нужна.

Если сбор падает три раза подряд или больше часа не было удачного запуска, приходит сообщение в мой бот-помощник. А если канал сменит формат, это тоже будет видно: появятся посты с ограничением без аэропорта.

Табло, а не дашборд

Дизайн я выбирал из пяти направлений и остановился на табло вылетов: тёмный фон, моноширинный шрифт для цифр, разрезные цифры на плитках. Карта России нарисована точечной матрицей, как на старых светодиодных табло, а каждый аэропорт — круглое пятно из колец точек, размер которого зависит от доли времени под ограничениями.

Что получилось в цифрах

За последние 90 дней (с 28 июля по 25 октября) под ограничениями были 62 аэропорта из 70. В сумме — 6 774 аэропорто-часа. Больше всего одновременно было закрыто 20 аэропортов: 16 октября около половины шестого утра.

Время суток решает очень много. С 5 до 6 утра по Москве в среднем по стране ограничения действуют почти 11% времени, а с 16 до 21 часа — до 2%, то есть почти в шесть раз реже. Худший день — пятница (7%), лучший — вторник (3%).

В Москве разница между аэропортами огромная. Внуково за 90 дней — 15,4% ограничений, Домодедово — 13,4%, Жуковский — 7,2%, а Шереметьево — 2,9%. Но у Внуково это в основном режим "по согласованию", когда часть рейсов всё же летает: полностью закрыт он был только 3,4% времени.

Пулково — меньше 1 % времени, и все ограничения там ночные и утренние.

А самый "закрытый" аэропорт — Калуга: 34 % за 90 дней и больше 40 % за последний месяц.

Чего сайт не знает

Он считает только то, что объявлено в канале. Постоянные ночные ограничения южных аэропортов по NOTAM туда не попадают. И это время, а не рейсы: два часа ночью в Калуге и два часа днём в Шереметьево — очень разные события. Следующий шаг, который я обдумываю, — взвесить часы по расписанию и посчитать долю рейсов, попавших в ограничения.

Интерактивная версию проекта Небо под ковром. Там можно выбрать любой период, открыть страницу своего аэропорта и проверить, когда из него спокойнее всего вылетать.

Буду рад вопросам и замечаниям по методике, особенно если вы знаете, как сделать лучше.

Кстати, о таких проектах я ещё пишу в телеграме online ergo sum.

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.