Карта дождей

Я часто езжу на велосипеде и мотоцикле, поэтому вопрос «а будет ли дождь» беспокоит меня достаточно часто. Как оказалось, Центральная Аэрологическая Обсерватория регулярно выкладывает у себя на сайте снимки с метеорологических радиолокаторов. Чтобы ими пользоваться не хватает двух вещей: возможности приблизить карту и посмотреть как двигались облака за последний час. Если добавить эти две фичи, получается полезная штука:
c580805467c746ffa0a60785175dc15b.gif
Плохие новости: Росгидромет запретил ЦАО публиковать данные в реальном времени, теперь они доступны с задержкой в 24 часа. Ставьте лайки, возможно, получится в каком-то виде получить актуальные данные обратно.
ЦАО публикует картинки вида:
96d251c9ca624944bcdf0d637c506459

Нужно каким-то образом убрать все обозначения, оставить только области с осадками:
379dd2c76ead4a178c44aba0dfcefa9c

Для начала выделим области, которые нужно оставить. Это легко сделать, потому что каждой области соответствует определённый цвет пикселя:
492dee7064464f33a87d58592449665b

Какие пиксели не попали в выделение? Названия городов, границы областей, реки. Короче говоря, все обозначения:
0ab850470cec4048b60a2613d4e9eaec

Для каждого такого пикселя будем смотреть на его окрестность радиусом 9 и считать цветные пиксели. Если в окрестности больше всего зелёных пикселей, то закрашиваем наш пиксель зелёным, если больше синих — синим. И о чудо:
09f92b62bdea4cb480461fc2bbc91e61.gif

Затем ставим мониторинг на сайт ЦАО. Каждые десять минут скачиваем и обрабатываем новую картинку. Наносим это всё на нормальную интерактивную карту. Если использовать Leaflet.js, это сделать несложно. И получаем полезный простой прототип alexanderkuk.github.io/analyze-meteorad.

Затем связываемся с ЦАО, узнаём, что финансирования на эксплуатацию локаторов не хватает и поэтому данные никто бесплатно предоставлять не собирается. А картинки на meteorad.ru остались по недосмотру.

Давайте, вы все напишите, что вам интересны подобного рода данные и мы пойдём разговаривать с Росгидрометом.

© Habrahabr.ru