В преддверии нового лётного сезона подумал а не создать ли мне автоматическое напоминание о приближающемся хорошем лётном дне. Решение было на поверхности — это api популярного сайта с прогнозом погоды на основе ИИ — paraglidable. Осталось завернуть всё в удобную обертку. Так за пару вечеров родился @CanFlyBot.
Зона охвата прогнозной модели
На текущий момент бот работает на следующей территории.
Если наберется достаточно пользователей, то можно будет развернуть прогноз на более обширную территорию. Учтите, что это прогноз, основанный на самой общей модели GFS. Он очень, очень приблизительный, но дает повод посмотреть более подробный прогноз. Данные обновляются ежедневно в 8 UTC, хотя прогноз делается каждые 6 часов в 3, 11, 17, 23.
Установка
После обновления @CanFlyBot может самостоятельно настроить список точек, в которых будет отслеживать прогноз погоды. Для тех кто хочет просто попробовать вот ссылка, по которой бот скопирует вам мой список точек. Настроить свой список можно командой /managespots
Крестиками удаляем точки, Add
— добавляем. Есть четыре варианта добавления точки.
Close to me
По запросу вашего местоположения бот найдет ближайшие к вам 15 стартов/посадок.By coordinate
По запросу координат в формате долгота;широта в градусах и долях градуса найдет ближайшие старты и выведет список.By name
По запросу части названия старта найдет совпадения и предложит списокOn maps
По ссылке переходим на карты maps.flybeeper.com, находим нужную точку, долгим левым кликом на точке открываем подробную информацию, кликаем по колокольчику переходим по ссылке обратно в телеграмм и жмемStart
.
Cписок стартов/посадок это более 10 тыс. точек. Рекомендую добавлять посадки, а не старты. Для GFS прогноза это не имеет значения. Однако, посадки расположены с той части горки, откуда обычно поднимается дежурный поток, а значит подробный прогноз по этой точке будет содержать больше данных по высотам и адекватные данные приземного слоя. Можно добавить и старт и посадку и посмотреть какой будет лучше.
Использование
Основная команда /canfly
запрашивает прогноз на 10 дней вперед и отфильтровывает её по вероятности fly
. В скобках указаны вероятности по порядку: fly
— обобщенная вероятность полета, xс
— вероятность пролететь хороший маршрут, wind
— хороший ветер, humidity
— хорошая облачность. Чем выше вероятности тем лучше.
Значения фильтров можно поменять в настройках /settings
. Там же устанавливается час когда бот пришлет уведомление если вероятности превысят установленные вами значения. По умолчанию 8:00 UTC /setremindathour
8
. Можно ограничить и максимальное количество дней прогноза вперед, которые будут анализироваться чтобы сконцентрироваться только на ближайших днях. По умолчанию /setreminddaysbefore 2
. При необходимости можно временно отключить уведомления /setriminderoff
.
Команда /share
сгенерирует ссылку, по которой ваши друзья смогут стартануть с вашим набором точек отслеживания. Список копируется, поэтому его можно будет изменить в любой момент.
Если вам понравилась моя работа, не стесняйтесь поблагодарить командой /donate
Термальный прогноз
По каждому месту можно получить диаграмму подробного термального прогноза на ближайшие 3 дня. Список выдается по команде /getthermal
.
Так как ИИ анализирует простую модель GFS, то уведомление — это лишь повод посмотреть подробный анализ. Для этого идеально, с моей точки зрения, подходит сервис Thermal forecast от meteoblue. Этот прогноз основан уже на очень подробной модели с корректировкой по данным с ближайших метеостанций, утренних метеозондов и адаптацией к рельефу местности. Настоящий горный прогноз. Но он платный. Моего ключа хватает только на 20 запросов в день. Он используется на сайте flybeeper.com/wh для анализа условий моего домашнего спота Kobala с ежедневным обновлением. Минимальная стоимость ключа 73 евро. Поэтому @CanFlyBot предлагает каждому пользователю лишь 10 запросов этой диаграммы за мой счет. Диаграмма обновляется раз в сутки в 8:00 UTC. Не имеет смысла запрашивать её чаще одного раза в сутки.
Подробное описание диаграммы можно найти тут (eng) или прямо в боте по команде /getthermaldescription
или предпоследняя кнопка списка >Read the description
. Если коротко и упрощенно: имеется 4 секции. Самая главная — самая большая посередине. Синие области — зоны хорошего градиента, зеленые и желтые — инверсия. Для хорошего полета нужны обширные синие области. Черные жирные линии со звездочками выше — это база облаков. Белая жирная — теоретический потолок подъема планера, учитывающий разрушение ветром термальных потоков. Нижняя секция — ветер. Синие области — хорошо, зеленые-желтые — плохо. Жирные цветные линии — зоны турбулентности. Вторая сверху секция индексов. Там всё просто — все индексы ранжированы по фону. Индекс на зеленом фоне — отлично. Чем выше любой из индексов тем сильнее погода вплоть до грозы. Первая секция показывает общие условия у земли. Если разница между синей и красной линией большая, значит влажность маленькая — облака будут выше, если меньше — облаков будет больше. Если накануне были осадки (синие бары) — земля влажная и дольше будет прогреваться. Большая разница между скоростью ветра на 2 и 80 м указывает на сложные условия при посадке и на дробление термальных потоков (пузыри).
Если вам понравится использовать эту замечательную диаграмму, то нужно будет компенсировать мои затраты. После исчерпания кредитных запросов @CanFlyBot предложит оплатить 50 запросов за 5 евро. Если вы решите поблагодарить меня командой /donate
, то тоже получите +50 запросов.
Планы
Разворачивание своего сервера прогноза давно было у меня в планах, т.к. позволит получить свои плитки на карте maps.flybeeper.com. Можно было бы объединить учетную запись на сайте с ботом. Также предполагаю, что можно будет расширить зону прогноза. Однако исходный проект с github не обновлялся 4 года и на данный момент он просто не работает. Честно пробовал его реанимировать. После многочисленных правок мне даже удалось запустить тренировку, но видимо изменилась модель данных GFS, и дальше попытки скачать новые прогнозы не пошло. Там нужно уже серьезно копаться в исходниках на питоне. Не большой фанат питона. Может позже.
Последнее обновление 05.10.2024 в 14:00
Hi
I love your bot
Is it possible to integrate it on a Discord channel ? Thanks!
Thomas
I made this bot for myself. It doesn’t have that functionality. During the entire existence of the bot, they donated only $10 to me 🙂 But nothing is impossible.