Точность прогноза погоды зависит от многих факторов — в том числе от данных, на основе которых и проводятся вычисления. Поэтому мы постоянно добавляем новые источники информации, которые используем в Яндекс Погоде. Три года назад мы представили технологию Метеум 2.0, которая учитывала не только профессиональные метеостанции, но и подсказки пользователей наших приложений. С помощью «зонтиков» нам удалось повысить качество прогноза осадков в районах с низкой плотностью размещения метеостанций и радаров. 

Сегодня мы запускаем OmniCast — новую технологию в составе Метеума. Она повысит точность прогноза температуры с помощью пользовательских метеостанций, подключить которые может любой желающий по API. Благодаря новым источникам данных сервис стал в 36 раз чаще получать данные о температуре. В районах с плотным покрытием такими станциями Яндекс Погода сможет прогнозировать температуру с точностью до квартала. Если раньше мы прогнозировали температуру для ячеек с минимальным размером 2х2 километра, то теперь разрешение повысили в 16 раз — до 500х500 метров.  

Но одних данных недостаточно, чтобы построить более детализированный прогноз. Поэтому в этой статье мы расскажем о том, как при помощи фильтра Калмана и комбинации двунаправленной и однонаправленной LSTM-нейросетей нам удалось улучшить качество прогноза температуры. 

Какую проблему мы решаем

Для начала давайте напомним, как Яндекс Погода рассчитывает прогноз погоды. Прогнозирование температуры, влажности, давления, ветра и осадков на ближайшие 10 дней при помощи технологии Метеум производится так: на вход модели машинного обучения передаются численные прогнозы от мировых поставщиков и различные дополнительные фичи, например, высота солнца над горизонтом или тип подстилающей поверхности. В качестве таргета для обучения используются данные с профессиональных метеостанций. ML-модель обучается на архиве показаний с метеостанций и учится воспроизводить показания в точках метеостанций. Затем обученная модель применяется для каждой ячейки регулярной сетки, покрывающей весь мир. В итоге мы получаем прогноз на сетке 2×2 км над сушей и 10×10 км над океаном на 10 дней вперёд. 

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

Первоначально информацию о текущей погоде мы брали с ближайшей доступной метеостанции, и в результате могли сильно ошибаться. Например, в Екатеринбурге две метеостанции: одна — в центре города, измеряет раз в 3 часа, другая — в аэропорту Кольцово в 20 км от центра, измеряет раз в полчаса. В утренние/вечерние часы или в мороз температура в аэропорту может отличаться от температуры в центре города на целых 13 (!) градусов (это явление называется «городским островом тепла»). В итоге метеостанция в центре города слишком редко обновляется и не успевает оперативно отслеживать изменения, поэтому мы использовали данные с метеостанции в аэропорту и могли ошибаться с текущей температурой и другими погодными параметрами.

Раз уж вариант показа измерений напрямую с метеостанций нам не подошёл, мы решили изменить свой подход. Выделили отдельную ML-модель, которая будет сконцентрирована именно на прогнозе на «сейчас», и добавили в наш стандартный вектор фичей актуальные измерения с метеостанций. Эксперимент основывался на том, что модель сама сможет выучить, когда стоит выдать прогноз ближе к результату измерения на станции, а когда больше полагаться на расчёты численных моделей. Мы пробовали развивать такой подход, добавив фичи расстояния до станции по пространству и времени, ввели корректировку температуры, если высота метеостанции отличалась от высоты точки прогноза. Но последующие замеры метрик показали, что добавление данных со станций в таком виде не даёт никакого статистически значимого преимущества, и мы отказались от такого подхода.

Параллельно мы занимались улучшением качества нашей базовой CatBoost-модели, которая прогнозирует температуру и на текущий момент, и на первые 72 часа. В конце концов, за счёт использования комбинации нескольких CatBoost-ов, тщательного подбора фичей и гиперпараметров, нам удалось достаточно хорошо улучшить качество прогноза температуры. Такая модель долгое время использовалась для расчёта «погоды за окном».

К сожалению, численные модели прогноза погоды иногда ошибаются. Наша ML-модель использует ансамбль поставщиков и различную дополнительную информацию, но тоже не защищена от ошибок. А значит, нужно научиться использовать самые свежие показания с метеостанций чтобы скорректировать актуальный прогноз.

Технология OmniCast

Основная проблема использования измерений с метеостанций для «погоды за окном сейчас» была в том, что мы применяли интерполяцию методом ближайшего соседа. Проще говоря, измерения с метеостанции мы распространяли на все ячейки сетки 2×2 км, покрывающей интересующий нас город. Нам нужен другой алгоритм пространственной интерполяции, который бы учитывал: 

  • прогноз нашей ML-модели в каждой ячейке сетки; 

  • рельеф местности;

  • затухание влияния станции в зависимости от расстояния; 

  • умел учитывать одновременно несколько станций, которые стоят близко друг к другу.

Используемая нами технология интерполяции основывается на фильтре Калмана. Чтобы было проще объяснить саму идею алгоритма, давайте начнём с одномерного случая. Допустим, у нас есть динамическая модель системы u_t. Если мы знаем состояние системы x_t на момент времени t, то динамическая модель сможет сделать прогноз того, как система будет выглядеть в момент времени t+1

x_{t+1} = x_t + u_t

Так как модель может ошибаться, добавим в уравнение некоторую случайную величину xi_t, характеризующую ошибку модели. В итоге получим x_{t+1} = x_t + u_t + xi_t

С другой стороны, у нас есть возможность измерить состояние системы в момент времени t+1 с некоторой погрешностью \eta_t. В итоге уравнение измерения системы выглядит так: 

z_t = x_t + \eta_t

Задача фильтра Калмана состоит в том, чтобы используя одновременно и смоделированное состояние системы в момент времени t+1 и измерения этого состояния в момент t+1 определить хорошее приближение для истинного состояния, учитывая ошибки модели и измерений. 

Теперь зададим вес K, который определяет, чему мы больше доверяем — модели или измерениям. Тогда уравнение для нахождения оптимального значения состояния системы в момент t+1 будет выглядеть так: 

x_{t+1}^{opt} = K * z_{t+1} + (1 - K) * (x_t^{opt} + u_t)

Коэффициент К называется усилением Калмана, можно вывести итерационную формулу для его вычисления или подобрать подходящее константное значение. 

Теперь немного усложним задачу. Выше рассматривалась одномерная задача, но на самом деле мы имеем дело с многомерными данными. Возьмём регулярную сетку определённой размерности, покрывающую земной шар. Причём нужно ещё учитывать рельеф земной поверхности, потому что высота влияет на температуру. 

Наша ML-модель умеет в каждой ячейке сетки вычислять прогноз температуры. Сложим все ячейки сетки в один большой вектор размерности k = {количество широт * количество долгот}. Обозначим этот вектор как x_b, где b означает, что этот вектор представляет собой background (состояние системы). 

С другой стороны, у нас есть измерения температуры с метеостанций и метеодатчиков, сложим их в вектор размерности p (p << k) и обозначим как z. И раз у векторов разная размерность, нам нужно уметь делать отображение вектора состояния в вектор измерений. То есть нам нужно понять, к какой ячейке сетки относится та или иная метеостанция. 

Обозначим такое отображение как H. Оно вычисляется с использованием метода интерполяции ближайшим соседом с учётом разницы высоты точки метеостанции и центра ячейки.

Усиление Калмана в данном многомерном случае — это матрица (так называемая Kalman gain matrix) размерности k × p (k — количество ячеек сетки, p — количество измерений с метеостанций). При расчёте усиления Калмана учитывается не только сама разница между модельным и измеряемым значением, но и ошибки как модели, так и измерений. Причём вес источника измерений зависит от надёжности: профессиональной метеостанции мы доверяем больше, чем персональным метеодатчикам. Поправка из точки метеостанции распространяется по пространству по определённому закону.

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

Таким образом, наша задача сводится к следующему. Мы знаем состояние системы, хранящееся в векторе x_b и нам нужно скорректировать это состояния с учётом измерений, хранящихся в векторе z. Формула для нахождения оптимального значения состояния системы для многомерного случая выглядит так: 

x^{opt} = x_b + K(z - H[x_b])

где K — Kalman gain matrix, а H — отображение вектора состояния в вектор измерений. 

Стоит упомянуть, что оригинальный алгоритм Калмана состоит из двух повторяющихся фаз:

  1. Прогноза, который делается динамической моделью системы.

  2. Корректировки прогноза за счёт измерений. 

Следующая итерация алгоритма учитывает те значения, что были рассчитаны на предыдущем шаге. В нашей технологии Omnicast используется только часть алгоритма Калмана. Мы делаем только корректировку состояния системы за счёт измерений, причём не итеративно. То есть каждый момент времени рассчитывается независимо от предыдущих. В таком виде алгоритм часто используется в ассимиляции данных и носит название оптимальная интерполяция.

Метод оптимальной интерполяции основывается на гипотезе, что данные со станций репрезентативны для некоторого ограниченного пространства вокруг (так называемая локализация). В нашем случае это означает, что для каждой ячейки сетки мы используем данные только с нескольких ближайших метеостанций и метеодатчиков в заданном радиусе. Такое допущение позволяет значительно сократить время расчётов, потому что при вычислении усиления Калмана нужно в том числе делать обращение матриц, на что требуются большие вычислительные мощности.

Карты температуры для Москвы и Екатеринбурга: слева — старая версия, справа — OmniCast
Карты температуры для Москвы и Екатеринбурга: слева — старая версия, справа — OmniCast

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

Чтобы обеспечить оптимальную скорость, мы используем распределенные вычисления. Регулярную сетку, покрывающую земной шар, мы делим на части. Каждая часть обрабатывается отдельно Map-операцией, где усваиваются отфильтрованные и обработанные данные с метеостанций и метеодатчиков, а также корректируется значение температуры в каждой ячейке сетки. Затем все части обратно склеиваются в большую сетку Reduce операцией. В среднем каждые 5 минут MapReduce-операция обрабатывает более 100 000 новых измерений с датчиков температуры.

Если мы возьмём данные с метеостанций и метеодатчиков и скорректируем температуру, мы поправим только текущее состояние. В случаях, когда прогноз температуры, рассчитанный нашей ML-моделью на ближайшие несколько часов, заметно отличается от измерения на станции, в таймлайне прогноза появится резкий скачок.

Чтобы избежать таких проблем, нужно продлить влияние измерения со станции в будущее. Для этого мы разработали модель, которая принимает на вход историю измерений температуры с метеостанции и экстраполирует на ближайшие 3 часа.

Когда речь заходит об экстраполяции временного ряда, первыми на ум приходят методы семейства ARIMA (autoregressive integrated moving average). С неё мы и начали экспериментировать. В итоге удалось подобрать параметры модели, при которых ошибка экстраполированной температуры RMSE получалась в районе 1,5 градуса. 

Качество экстраполяции нас устраивало, но у такого подхода есть один большой недостаток. Параметры модели ARIMA стоит рассчитывать отдельно для каждой станции. Мы используем измерения примерно с 16 000 профессиональных метеостанций, а если сюда добавить ещё и остальные метеодатчики, получается очень много отдельных моделей. Таким образом решение с моделью ARIMA получается немасштабируемым.

Чтобы сделать одну модель под все станции, мы перешли от классических методов к нейронным сетям. В качестве бейзлайна мы взяли LSTM, как популярный вариант обработки временных рядов. В процессе экспериментов усложняли архитектуру и в итоге пока остановились на комбинации biLSTM и однонаправленной LSTM. 

Использование двунаправленной LSTM даёт преимущество за счёт того, что входная последовательность просматривается с начала до конца и с конца до начала. Тем самым нейронная сеть получает более репрезентативное представление входной последовательности. 

На данный момент наша модель экстраполирует температуры на 3 часа вперёд и выигрывает по качеству у модели ARIMA. Мы тем временем экспериментируем с другими подходами, чтобы расширить выходную последовательность на сутки вперёд.

Заключение

В этой статье мы рассказали о проблеме перепада температур между разными районами города, из-за чего любой сервис метеопрогнозирования может существенно ошибаться в своих прогнозах. Мы показали, как учимся преодолевать эту проблему с помощью новой технологии OmniCast и расширенного числа источников метеоданных, и планируем использовать такой подход для других погодных параметров. 

Тем не менее, прогнозировать погоду сложно, поэтому мы будем рады любой помощи. Если у вас есть любительская метеостанция, то подключить её к нашему сервису можно по API. Так вы сможете повысить качество прогноза Яндекс Погоды не только для себя, но и для тысяч ваших соседей по району. 

Комментарии (39)


  1. Kill_Voice
    22.08.2024 08:32
    +3

    Какой профит запускающему у себя такую станцию?


    1. lanium Автор
      22.08.2024 08:32
      +2

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


      1. Kill_Voice
        22.08.2024 08:32
        +9

        То есть просто бесплатно увеличить доход Яндекса от продажи доступа к API?) Звучит как план


        1. KorDen32
          22.08.2024 08:32
          +4

          И увеличить доход от рекламы в мобильном приложении, которой сейчас напихано просто прорва - чего стоит один бесконечный рекламный скролл на главной.

          Это уже давно приложение рекламы с мелкими вкраплениями погоды, а не наоборот


          1. Kill_Voice
            22.08.2024 08:32
            +4

            Там жадность уже давно не знает границ. Ранее можно было для своих pet проектов или умного дома, получить тестовый токен к API погоды до 10000 тысяч запросов в месяц, а теперь это стоит от 54 000 рублей


            1. lanium Автор
              22.08.2024 08:32
              +1

              Если вы хотите поделиться данными любительской метеостанции - ключ доступа к API нужен только для того, чтобы идентифицировать вас как пользователя. Можно бесплатно пользоваться API Пользовательских станций по Триальному ключу доступа, не привязывая платёжные реквизиты.

              Касаемо доступа к API в целом - спасибо за фидбэк, обсудим с коллегами как можно сделать API более доступным для физических лиц


              1. gudvinr
                22.08.2024 08:32
                +5

                Так может вы не только брать будете, но и сами что-то взамен дадите?

                Если вам пользователи данные отдают бесплатно, дайте и вы бесплатный доступ к API тем, кто ва данные предоставляет.


            1. lgorSL
              22.08.2024 08:32

              Для пет проекта использую open weather map и ещё какой-то сервис (не помню названия, если интересно могу потом написать), оба сервиса бесплатно дают погоду по всему миру и лимиты у них порядка тысяч запросов в день, чего мне за глаза хватает. Кроме температуры дают информацию о пыли pm2.5, ветре, влажности и прочем.

              Возможно данные у них не супер точные, но зато минимум головной боли с их получением.

              У Яндекс погоды был шанс, но я почитал условия и даже не стал пробовать.


              1. Kill_Voice
                22.08.2024 08:32

                Да это понятно дело что можно и тот же Гисметео использовать. У Яндекса действительно интересный алгоритм, особенно с параметром «по ощущениям», но условия использования сразу перечеркивают все плюсы


              1. gudvinr
                22.08.2024 08:32
                +1

                С версии 3.0 требуют подключить карту (и обещают не списывать деньги до лимитов, честно-честно).


          1. vagonovozhaty
            22.08.2024 08:32
            +4

            Пользуйтесь секретной версией для стран первого мира, где нет ни рекламы, ни даже русского языка


  1. zabanen2
    22.08.2024 08:32
    +2

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

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

    и личный вопрос: прыгнули ли вы выше российских академических сред? хоть у них и существуют школы, но вряд ли они имеют такие мощности и математиков (и зарплаты хехе)


    1. lanium Автор
      22.08.2024 08:32
      +2

      Конечно мы занимаемся и разрабатываем технологии и более долгосрочного прогноза, в которых заинтересован в первую очередь бизнес.
      Что касается академических сред, то у нас нет цели соперничать, а скорее налаживать взаимовыгодное сотрудничество 


    1. zuek
      22.08.2024 08:32

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

      Ну, справедливости ради, мои урожаи в этом году почти не пострадали - и в майские и в июньские заморозки я поверил прогнозу погоды (пользуюсь данными от rp5, они на отрезке в пару дней, по моим наблюдениям, практически не ошибаются - интересно - какой моделью пользуются?) и предпринял превентивные меры, так что пользу прогнозы приносят.


  1. san_russia
    22.08.2024 08:32
    +1

    Когда решите вопрос с неправильным местоположением в приложении? Приложение показывает местоположение места там, где я был 20-30 минут назад. Особенно в дороге это заметно. И эта проблема на разных телефонах, что на андроид, что на ios.


    1. lanium Автор
      22.08.2024 08:32
      +2

      А подскажите, пожалуйста, где территориально обычно у вас происходит эта проблема? В целом, в случае возникновения проблем с определением геолокации, вы можете отправить нам информацию через кнопку "Написать разработчикам" в настройках приложения


      1. JediPhilosopher
        22.08.2024 08:32

        У меня часто бывает такая фигня. Если выключить GPS то погода начинает улетать. Причем улетать очень капитально - в локацию где я вроде бы был, но давно (дни или недели назад). То в Москве начинает погоду показывать (я из СПб), то еще где-то. То есть там точно не срабатывает логика "показывать погоду последнего места где она была доступна".

        И кстати тот баг, что я вам уже когда-то репортил, у вас похоже опять появился. В Питере в дни зимнего солнцестояния, когда закат и рассвет умещаются на одном экране, приложение отображает только одно из них. В прошлом году точно был, в этом надо будет снова проверить.

        Я думал, баг связан с тем, что вы не подумали о кейсе когда они попадают вместе в один экран (между восходом и заходом всего часов 5-6), что случается где-то вот от широты Питера и севернее. Но для Карелии, где оно еще короче, внезапно все работало, а в Питере глючило вот.


        1. lanium Автор
          22.08.2024 08:32
          +1

          Спасибо за фидбэк, если сможете сообщить платформу и версию приложения - это очень поможет решению проблемы


          1. JediPhilosopher
            22.08.2024 08:32

            Проверю когда оно воспроизведется. 4 месяца осталось.


  1. JediPhilosopher
    22.08.2024 08:32
    +3

    Я так и не понял, личные метеодатчики кто угодно может ставить? Если да, то это какой-то очень сильный тык пальцем в небо. Кажется, никто это не использует в мире, потому что точность у этих датчиков просто ужасная.

    Во-первых, сами датчики часто говняные и с огромной погрешностью. Для бытового использования плюс-минус градус-другой не важно, для предсказания погоды - уже плохо.

    Во-вторы, даже идеальный датчик нужно правильно разместить. Повесив термометр за окно на солнце, в летний день вы за счет солнечного нагрева получите +5 и более градусов. А вам же надо измерить температуру воздуха, а не солнечный нагрев. Повесить в тени? Можно, но если неправильно выбрать место, то под вашим градусником может оказаться солнечное пятно асфальта, который будет нагревать и генерировать локальный восходящий теплый поток, что опять даст погрешность. В общем, даже правильно повесить градусник, чтобы измерить температуру воздуха (а не прилегающей поверхности или стены) это уже нетривиально. На метеостанциях для этого используют специальные будки, походие на ульи, которые защищают от прямого солнечного нагрева, обеспечивают хорошую вентиляцию и изолируют от нагрева со стороны земли.

    Что там с ветром я вообще молчу, как парапланерист я знаю, как сильно локальные особенности влияют на воздушные потоки. Эффекты Вентури, ротора за препятствиями и турбулентность вам вообще не дадут нормально ветер в городской застройке померять

    Поэтому к этой идее со скептицизмом отношусь.

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

    https://vk.com/@pogoda812-sravnenie-tochnosti-prognozov-v-2020-godu


    1. lanium Автор
      22.08.2024 08:32

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


      1. freeExec
        22.08.2024 08:32
        +1

        Не уж-то яндекс не может раздать эти датчики всем желающим для размещения в нужных местах?


        1. JediPhilosopher
          22.08.2024 08:32
          +1

          Я выше указал, что раздать датчики это еще полдела, правильно разместить датчик, чтобы он правильно измерял то что надо - это тоже непросто. Так что наверное смысла нет заморачиваться, данные все равно будут шумные и ненадежные


          1. freeExec
            22.08.2024 08:32
            +1

            Вся статья посвящена тому, что вау, мы подключили 100500 "шумных и не надёжных" датчиков и всё стало бодрее.


            1. dimastarkoff
              22.08.2024 08:32


  1. iShrimp
    22.08.2024 08:32
    +1

    Совершенно правильное и логичное направление развития!

    Для ещё более точных прогнозов, мне кажется, было бы полезно добавить ещё 2 источника информации:

    1. Народный мониторинг, narodmon.ru - удобный и доступный агрегатор данных с пользовательских метеостанций;

    2. Камеры наблюдения и домофоны, на которых видно небо. Эти данные гораздо труднее получить (технически и юридически), но зато они дадут самую точную информацию о погоде и облачности в реальном времени.


  1. iShrimp
    22.08.2024 08:32

    У многих людей есть контроллеры умного дома, теплицы и т.д. с уличным датчиком температуры, принимает ли ваша система показания с таких датчиков? Понятно, что они ещё менее информативны, чем любительские метеостанции. Но при достаточной заинтересованности пользователей они могут дать плотное покрытие, не только в городах, но и в дачных и коттеджных посёлках.

    P.s. у вас в API требуется передавать время измерения в Unix-формате. Можно адаптировать API для МК, не имеющих RTC? В идеале, хорошо бы, если бы была библиотека для Arduino IDE, реализующая все функции передачи данных (а взамен дающая доступ к прогнозу погоды от Яндекса).


    1. lanium Автор
      22.08.2024 08:32

      Спасибо, подумаем что тут можно сделать


  1. xaosxaos2
    22.08.2024 08:32
    +2

    Я.погода это так смешно - за этот год весна, лето. Совпадает прогноз только когда ничего не происходит стабильно в течении длительного времени. А если изменения ни разу ни попали, пишут в течении недели будут грозы чуть ли не потоп, ни капли дождя ну упало :) Показывают ближайшие два часа осадков не будет, смотришь а там поливает так что соседнего дома не видно :)
    P.S. О а сколько туда впихнули рекламы, что если раньше грузилось пару секунд, сейчас надо полминуты обождать.


  1. Keroro
    22.08.2024 08:32

    Часто нарывался на такую проблему этим летом: допустим, яндекс-погода говорит что все выходные день будет дождь. Я: решаю сидеть дома, раз такое дело. В итоге, покапало 1 раз, остальное время погода была вполне приятная. Или наоборот: рисует, что будет дождь. Я, помня предыдущий кейс, иду гулять, не взяв даже зонтик. В итоге ливень с градом, буря столетия, все плавает. При том что я живу не так далеко от аэропорта, и там по любому есть какие-нибудь метео-радары. Неужели для современных айти технологий такая проблема предсказать, что если грозовая туча идет на город со скоростью 10 километров в час, и ветер дует в такую-то сторону, то в такое-то время она окажется прямо у меня над головой? Неужели такая проблема на ближайшие 12 часов хотя бы это предсказать?


    1. TimurRyabinin
      22.08.2024 08:32

      Здравствуйте! Я из Яндекса. Понимаю, хочется заранее знать погоду наверняка, ведь неожиданные её перемены могут вмешаться в планы на день.
      Увы, предсказать погоду на 100% невозможно — физика атмосферных процессов не поддаётся точным просчётам. Мы стремимся к максимально верным показателям и для этого комбинируем разные источники информации и прогнозы в технологии Метеум 2.0: https://yandex.ru/pogoda/meteum

      Однако в любой модели есть небольшие погрешности. Вы также можете помочь нам улучшить технологию:
      — отмечайте ответы в опросах на карте осадков: https://ya.cc/t/sZHIAkc75Cb3Gm
      — нажимайте кнопку «За окном другая погода? Сообщить» в приложении
      — сообщайте об ошибках в прогнозе через специальную форму: https://ya.cc/t/7DucfVAo5Cb3QP.
      Так наша команда сразу получит все нужные данные и сможет скорректировать показатели, чтобы прогнозы становились точнее.


  1. Aeternamens
    22.08.2024 08:32
    +1

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


  1. tedvlee
    22.08.2024 08:32

    Самый неактуальный прогноз по моему району - от Яндекса. У них - дождь у меня идет, у меня - + 30 и прячешься от солнца.


  1. FBykov
    22.08.2024 08:32

    В одной статье про фильтр Калмана и LSTM. Если вспомнить формулы LSTM, то можно прийти к интересному наблюдению: LSTM - обобщение фильтра Калмана

    Интересно, уточняли ли и если да, то как координаты метеостанций ? Большинство этих координат в словарях ВМО не уточнялись лет так 50 и все еще округлены до угловых минут - чуть меньше 2 км. Если вы даёте на выходе 500 м, то эти погрешности весьма существенны


  1. Javian
    22.08.2024 08:32
    +1

    Точные прогнозы только со спутника. Запускаю ventusky и вижу где циклон, антициклон. Как и куда дует ветер. И получаю достоверный прогноз на две недели.


  1. vikarti
    22.08.2024 08:32
    +1

    А не планируется фиксить баг:

    • яндекспогода с рустора 24.7.21

    • Pixel 6a с GrapheneOS (потому что секурность и прочее, установка по штатной процедуре - с блокировкой загрузчика и прочего), Play Store/Play Services и все что ему надо - тоже установлено и все запрошенные доступы(включая постоянную геолокацию для Погоды и для Play Services) - выданы

    • по мнению погоды - я в Москве. Руками локацию выбрать можно но зачем просить доступ к геолокации если он реально не работает

    • допустим 2GIS видит реальную локацию(~3k километров на восток). Яндекс.Go тоже находит реальную локацию


  1. den-electric
    22.08.2024 08:32
    +2

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


    1. gudvinr
      22.08.2024 08:32
      +1

      Hexagons are the bestagons


      1. den-electric
        22.08.2024 08:32

        Классный ролик