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

Время математических приключений!


Последние несколько лет Яндекс активно развивает свой погодный сервис. Пару лет назад была представлена технология Метиум и прогноз осадков с точностью до минут.

В обсуждении к этим публикациям выделялись комментарии fantast8. «Метеоролог-любитель» в довольно агрессивной форме набросился критиковать технологии Яндекса и если не обращать внимания на стиль общения, то суть претензий сводилась к отсутствию фактуры и закрытости статистики.

И тут я задумался: а кто-нибудь вообще считает точность прогнозов?

Огненное королевство


Быстрое гугление выдало проект ForecastAdvisor, однако там оценивались прогнозы исключительно по городам США, и, естественно, отсутствовали русскоязычные провайдеры (Яндекс, Гидромет и т.д.).

В рунете некоторое время существовал проект MyCli.me, ныне закрытый. Однако у него были постоянные проблемы со сбором данных и рейтинговая система (выбор наилучшего прогноза) не была основана на научном методе.

Кроме того, я нашел много начинаний, например, от OLS и lucius, но все они были ограничены или по времени, или по городу, или по провайдеру. Например, один из самых удивительных проектов от slimyhorror анализирует сбываемость прогнозов уже больше 5000 дней подряд! Но оцениваются только прогнозы от BBC и только для городов Великобритании.

Таким образом, было принято решение делать свой проект. Дело за малым — собирать прогнозы, собирать фактическую погоду и оценивать сбываемость на основе научно обоснованной формулы. С нее и начнем.

Банановая стража


В 2009 году Гидрометцентр России выпустил «Наставления по краткосрочным прогнозам». Согласно этому руководству, прогноз считается сбывшимся, если он отличается от фактический наблюдаемой температуры не больше, чем на 3 °С в любую сторону. Если прогноз отличается от фактической погоды больше, чем на 3°, то такой прогноз считается несбывшимся (пункт 7.3.1.4 наставления).

Подробнее про градацию.
Теоретически провайдер мог бы каждый день прогнозировать погоду от -60 до +60 и таким образом получить стопроцентную сбываемость. Однако корректной градацией прогноза считается отклонение не больше 1 градуса, например, «Температура днем от 2° до 4°». Таким образом, допускается отклонение на 2 градуса от интервала или 3 градуса от значения.

Прогнозы погоды должны оцениваться раздельно для дня и ночи (7.2.3). Оправдываемость суточного прогноза определяется как среднее из значений оправдываемости прогнозов на ночь и на день. Оценка успешности прогнозов погоды за календарный период (месяц, сезон, год и т.д.) заключается в вычислении их средней оправдываемости за соответствующий период (9.1.1).

Окей, вроде не сложно — берем прогноз на завтра (на послезавтра и т.д.), собираем данные о фактической погоде, сравниваем отдельно для дня и ночи. Если

Math.abs(predict - actual) > 3

то прогноз не сбылся (Pt=0%), если <= 3 то Pt=100%. Считаем среднюю оправдываемость за соответствующий период и получаем нужные данные.

Темное облако


От парсинга сайтов с погодой сразу отказался, т.к. парсинг HTML не отличается стабильностью и это неизбежно увеличило бы количество ошибок в итоговой статистике. К счастью, многие провайдеры предоставляют API для доступа к своим прогнозам. На первом этапе я добавил прогнозы от accuweather.com, darksky.net, openweathermap.org и wunderground.com. Все они предоставляют JSON-API. На втором этапе были добавлены норвежский yr.no с XML-API, российский Гидрометцентр (пришлось парсить RSS) и Яндекс.Погода.

На сегодняшний день есть договоренность с foreca.com и ведутся переговоры с gismeteo.ru, intellicast.com и английским metoffice. Если у вас есть знакомые в этих проектах, готовые помочь с API, — пишите!

Повышенная странность


В теории со сбором фактической погоды не должно было возникнуть никаких проблем. В каждом крупном городе есть станция наблюдения за погодой, обычно в центре города, например в Москве это ВДНХ. Национальные гидрометеорологические службы передают данные с этих станций во Всемирную службу погоды, где она обрабатывается и хранится. Наблюдения передаются в виде SYNOP-кода каждые 3 или 6 часов.

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

Сырые SYNOP и METAR данные можно найти на сайте NOAA; обработанные данные на сайте ogimet.com. Сами станции удобно искать на weatherobs.com.

Однако тут есть несколько проблем. Во-первых, качество передаваемых данных — в сводках нередко бывают опечатки (например, буква O вместо цифры 0). Во-вторых, стабильность данных. В 2017 году Авиаметтелеком на целый месяц прекратил передачу в международный обмен метеосводок с более чем пятидесяти аэродромов России. В-третьих, есть города, в которых мне просто не удалось найти работающую станцию. Например, в Ростове-на-Дону нет данных ни по станции 34730 (URRR), ни по станции 34731.

В подобных ситуациях для сбора фактической погоды я использую информацию от частной сети станций The Weather Company (ныне принадлежит IBM).

Наука рулит


В итоге получился сайт Meteotrust.com
На данный момент данные собираются для 10 городов России от 7 провайдеров. В ближайшее время планирую добавить больше городов, больше провайдеров и больше периодов (долгосрочные прогнозы от hydrometcenter и accuweather, прогнозы на 10 дней). Кроме того, готовится сбор статистики по осадкам. Оценивать точность прогнозов по осадкам немного сложнее, чем по температуре. Об этом будет отдельный пост.

Какие выводы?


Openweathermap — дно.
Accuweather, yr.no, darksky — крепкие середнячки.
У Яндекса и Wunderground — превосходные прогнозы.
Гидрометцентр часто борется с Яндексом за первое место по качеству краткосрочных прогнозов. Однако есть предположение, что с увеличением количества городов, особенно зарубежных, общая успешность прогнозов Гидрометцентра будет падать.

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


  1. DrZlodberg
    24.04.2018 11:15
    +2

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

    PS: У яндекса странные прогнозы. Может вечером на подробном прогнозе за день показывать, что весь день будет дождь, хотя реально он был только вечером. Т.е., похоже, утренний прогноз не корректировался за день совсем. Впрочем у гисметео похожая фигня.


    1. aavezel
      24.04.2018 12:29

      Выехал из +4 и солнце, приехал в -2 и метель

      Выехал в 12 часов дня, приехал в 21 час вечера? :)


      1. DrZlodberg
        24.04.2018 12:54

        Не всё так плохо в мск с электричками. Выехал в 6.50 приехал в 8.00.
        Собственно я бы не назвал точные числа, если бы не обратил внимание, как меняются показания термометра по ходу движения. И да, Москва большая…


    1. zapolnoch
      24.04.2018 13:32

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


      1. Fandir
        25.04.2018 00:04

        Почему rp5 нет в списке? Достаточно качественные прогнозы ИМХО.


        1. hanzakkerman
          25.04.2018 10:43

          Согласен, сам пользуюсь именно rp5. Они, кстати, дают информацию по всем погодным станциям в Москве. Я, например, обычно смотрю Балчуг, чтобы не сильно расстраиваться холодами в Шереметьево. К тому же, проезжаю мимо неё каждый рабочий день :)


  1. rustamaha
    24.04.2018 11:27

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


  1. Akon32
    24.04.2018 11:37
    +2

    Было бы интересно увидеть ещё и оценку сайта RP5.


    1. drauger
      24.04.2018 16:46

      RP5 берет прогнозы у британского Метофиса.


    1. werd00
      24.04.2018 16:46

      в течение пары месяцев, пока выбирал погодный информер на телефон яндекс победил rp5


  1. Serenevenkiy
    24.04.2018 11:40
    +1

    Подписался. Жду осадков.


  1. dom1n1k
    24.04.2018 12:04

    Яндексовый Метеум — а точнее даже не его самого, а статьи о нём — критикивали справедливо. Потому что, во-первых, все они звучали примерно так: «бла-бла-бла прогноз погоды бла-бла машинное обучение бла-бла-бла машинное обучение бла-бла-бла». А во-вторых, прогноз с точностью до дома или до минут — это фантастика в современных условиях. Ну да бог с ними.

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


    1. com14bat
      24.04.2018 21:52
      +3

      В прогнозе осадков по данным метеорадаров нет ничего фантастического. Даже без помощи «нейросетей» можно посчитать во сколько пойдет дождь, зная скорость передвижения зоны осадков и расстояние до нее.


      1. dom1n1k
        24.04.2018 22:05

        С точностью до дома и до минут? Нет, нельзя.


        1. kAIST
          24.04.2018 22:19

          Ну дома и минуты, это больше маркетинг конечно (кстати, не помню чтобы они такое говорили), но вот на пару километров, и десятки минут вполне себе прогнозы по дождю сбывались. Ещё до Яндекса пользовался данными с метеорадара, когда они были открыты.


          1. dom1n1k
            24.04.2018 22:27

            не помню чтобы они такое говорили
            Раз, два (см. заголовки)
            на пару километров, и десятки минут вполне себе прогнозы по дождю сбывались
            Да, это уже гораздо ближе к истине. И то при условии, что нас интересует краткосрочный прогноз на ближайшие часы, максимум сутки — чем и занимаются метеослужбы аэропортов. А если говорить о прогнозе на 2-3-5 дней вперед — всё становится резко сложнее.


        1. Fandir
          25.04.2018 00:06

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


          1. dom1n1k
            25.04.2018 01:04

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


  1. VioletGiraffe
    24.04.2018 12:25

    Почему в качестве сравниваемого показателя выбрали именно температуру воздуха? По-моему, намного важнее осадки.


    1. rt3879439
      24.04.2018 12:59
      -1

      Вероятно потому что по прогнозам осадков яндекс далеко не на первом месте.


      1. zapolnoch
        24.04.2018 13:31

        Статью не читай, комментарий пиши? С прогнозами по осадкам есть проблема — кто-то передает вероятностный прогноз (завтра будет легкий дождь с вероятностью 80%), кто-то передает количественный (завтра 10 мм осадков). Эти данные нужно нормализовать, плюс сама оценка прогноза осадков не такая тривиальная задача — нужно оценивать ложную тревогу, ложные срабатывания или ложноположительные срабатывания. Я сейчас работаю над этим, до лета надеюсь выпустить.


  1. staticlab
    24.04.2018 13:06

    А что Гисметео? Не проверяли его?


  1. erydit
    24.04.2018 13:33

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


    1. zapolnoch
      24.04.2018 13:37

      Да, это точно прогноз. Прогноз «на завтра» собирается каждый день в 14:00, поэтому постфактум исправления я игнорирую.
      На самом деле краткосрочные прогнозы не такая уж сложная тема. Если прогнозировать, что завтра будет такая же погода как сегодня, то успешность будет 60%. Если прогнозировать, что завтра будет такая же погода как климатическая норма для этого дня (усредненное за последние 10 лет), то успешность будет 80%.


      1. DaylightIsBurning
        25.04.2018 01:16

        О, я как раз предложил, что неплохо бы эти наивные модели тоже в рейтинг добавить! Особенно учитывая, что судя по вашей таблице, 4 из семи прогнозов хуже 80% (наивного среднего за 10 лет).


  1. SoulStealer
    24.04.2018 13:33

    Зимой яндекс порода показывала на 13 градусов меньше чем у меня было на градуснике) было весело


    1. kAIST
      24.04.2018 22:22

      Градусник прям за окном — очень ненадёжная штука )


      1. SoulStealer
        26.04.2018 01:29

        Почему?) Он висит в тени.


  1. GrAl
    24.04.2018 13:40

    Не хватает гисметео, rp5, foreca


  1. EndUser
    24.04.2018 13:53

    По «погодному подполью» сильно впечатляет тот факт, что уже в своём городе есть десятки метеостанций. Вдогонку добавляет то, что WU не швыряет в ливень без зонта никогда. Так что горожанам WU — самое то. Так же симпатичное свойство WU — это метеограммы, которые показывают в каком часу ожидаются осадки (и прочие явления — температура, восход-закат, влажность...).
    Но с WU сложность в том, что это всё требует определённой настойчивости потратить время и мозги на настройку этого барахла.

    С другой стороны, готовая к использованию метеограмма извлекается у _норвежцев_ — yr.no.
    Точность, как ни странно, аналогичная к WU, разве что они друг с другом по температуре имеют мелкие разногласия.

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


    1. drauger
      24.04.2018 16:54

      У меня от WU остались обратные впечатления. Для Москвы, по крайней мере, для района, где я живу, в температуру он стабильно не попадал. С осадками тоже были неувязки. Думаю, у них проблема как раз в использовании данных от домашних метеостанций, установленных непонятно где и как. Я регулярно наблюдал по утрам, что в моем районе по данным ближайшей метеостанции температура градусов на 15-20 выше реальной. Видимо, у кого-то датчик стоял на солнечной стороне, да еще и за стеклом.


  1. mSnus
    24.04.2018 15:02

    Из наших прогнозов — стоит смотреть RP5, из их — IntelliCast.


    Статья без них неполная.


    1. zapolnoch Автор
      24.04.2018 16:40

      RP5 есть смысл смотреть только в контексте сравнения с metoffice, т.к. у них одна погодная модель.
      У Intellicast нет публичного API, а опускаться до парсинга HTML пока не хочется. Надеюсь договориться с ними.


  1. Josers
    24.04.2018 16:43
    +1

    Хотелось бы фидбек для пожеланий по добавлению городов, и поддержу, хотелось бы видеть по возможности rp5


  1. spitkia
    24.04.2018 16:43

    наши даже пальцем попасть не могут. а другие могут проводит аналитику со своих спутников и наших же метеостанций. и погрешность минимальна. лишний раз зонт не используешь
    www.bbc.com/weather/0/524901
    www.foreca.com/Russia/Moskva


  1. tot161rus
    24.04.2018 18:11

    Ростов-на-Дону теперь URRP код ICAO имеет.


    1. Smayliks
      25.04.2018 10:36
      +1

      Не совсем так. Аэропорт г. Ростов-на-Дону URRR (ROV) закрылся, вместо него работает Международный аэропорт Платов URRP (ROV).

      По теме топика, погода с аэропорта Платова теперь мало должна интересовать топикстартера — этот аэропорт на ~40 км удалён от города и находится в степи.


  1. demimurych
    24.04.2018 21:46

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


  1. DaylightIsBurning
    25.04.2018 01:13

    неплохо бы для сравнения наивные модели типа «завтра(через неделю) будет такая же погода как сегодня» и «завтра будет такая же погода как в среднем/медиане) в этот день года».


  1. occ2
    25.04.2018 10:35

    Добавьте прогнозы с www.foreca.com!


    1. zapolnoch Автор
      25.04.2018 10:38

      Foreca будет в ближайшее время, доступ к API они мне предоставили.


  1. dimonoid
    25.04.2018 10:35

    А можете посмотреть The Weather Channel? Как у него с точностью?


    1. zapolnoch Автор
      25.04.2018 10:40

      У The Weather Channel нет публичного API. Они предлагают пользоваться данными Weather Underground API, т.к. входят в одну группу компаний (The Weather Company). Однако, визуально кажется, что прогнозы у них разные и поэтому оценивать их нужно отдельно. Надо подумать.


  1. anton_misa
    25.04.2018 10:39

    Не понял только как вы получали прогноз, он же меняется все время?
    И какие идеи по развитию? Более глубокое дробление по времени, например ночь и день по 4 часа планируется?


    1. zapolnoch Автор
      25.04.2018 10:42

      Я сохраняю прогноз каждый день в 14:00 по местному времени города, для которого выпущен прогноз.
      В планах в первую очередь оценивать точность прогнозов осадков.


      1. anton_misa
        25.04.2018 18:36

        Замечательно, очень нужно развитие


  1. godisdie
    26.04.2018 11:07

    Странно что не кто не упомянул www.meteoblue.com
    У них и сравнение по моделям и анализ точности прогноза.