Слой погоды для Open Street Map

Вариант отображения метеоданных с помощью leaflet в виде интерактивно подключаемых\отключаемых слоев.
(кириллицу нужно перевести в utf-8)



<html>

<head>

    <meta charset="utf-8" />

    <link rel="stylesheet" href="http://leaflet.cloudmade.com/dist/leaflet.css" />

    <!--[if lte IE 8]><link rel="stylesheet" href="http://leaflet.cloudmade.com/dist/leaflet.ie.css" /><![endif]-->

    <script src="http://leaflet.cloudmade.com/dist/leaflet.js"></script>

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

    <script src="http://openweathermap.org/js/leaflet-layer.js"></script>

</head>

  <body>

    <div id="map" style="width: 100%; height: 100%"></div>

    <script>

var osmUrl = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',

            osmAttribution = 'Map data <a target="_blank" href="http://www.openstreetmap.org">OpenStreetMap.org</a>; contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>',

            osmLayer = new L.TileLayer(osmUrl, {maxZoom: 18, attribution: osmAttribution});

                var l_w = new OsmJs.Weather.LeafletLayer({lang: 'ru'});

                var map = new L.Map('map', {center: new L.LatLng(55.8, 37.7), zoom: 7, layers: [osmLayer]});

                var baseMaps = {

                        "OpenStreetMap": osmLayer

                        };

                var overlayMaps = {

                        "Метеоданные": l_w

                        };

                layersControl = new L.Control.Layers(baseMaps, overlayMaps);

                map.addControl(layersControl);

    map.on('click', onMapClick);

    var popup = new L.Popup();

    function onMapClick(e) {

    var latlngStr = '(' + e.latlng.lat.toFixed(3) + ', ' + e.latlng.lng.toFixed(3) + ')';

        popup.setLatLng(e.latlng);

        popup.setContent("Координаты точки " + latlngStr);

        map.openPopup(popup);

    }

    </script>

  </body>

</html>


P.S.: отредактировал до полного примера html

За библиотеку спасибо! Прикрутил сюда http://openweathermap.org/example-leaflet
Я сделал ссылку на гитхаб. Что написать про автора?
По поводу размещения на openstreetmap.ru - мы только за.

Да, было такое. До сих пор помню “Гдетопоссали”. :slight_smile:

Хороший проект. Удачи владельцам. Мож когда нить появится хороший сервис под “Андроид”.

Очень таки хочется узнать какая погодная станция может работать с сервисом? Обкатанные модели? Моя задача поставить 2 точки мониторинга температуры вне квартиры и давления воздуха, заодно и данных накину в Питер :slight_smile:
Чем бюджетней, тем лучше, но и так чтобы работало, то есть фуфил за 1000 покупать если он сдохнет смысла нет, проще сразу за 5 и навсегда :slight_smile:

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

Dennsy, еще реалметео использует интузиастов, можно попробывать на них выйти

В leaflet-layer.js перепутаны поля min и max температур.

Исправил

спасибо, работает

Мы добавили в API серверную кластеризацию маркеров.
Теперь запросы отрабатываются заметно быстрее и меньше нагружают браузер.
тут описание вызова openweathermap.org/example-json

Спасибо Alno за библиотеку к leaflet!

По поводу собственных метеостанций .

  • если у Вас уже есть такая, подключить ее к проекту можно используя наш API подробнее смотрите тут openweathermap.org/API
  • если нет…то можно собрать самому )) Собственно мы так и сделали.
    Основа ATxmega256A3 на борту стоит датчики
    температуры, температура и влажность, давление .
    Кроме того - 3G модем , аккумуляторы и … тааадам … солнечная батарея.
    В результате мы получили полностью автономную конструкцию.
    Одна из таких станций сейчас работает в горном Крыму прямо посреди леса!
    вот тут можно посмотреть ТУТ

Софтверная платформа freeRTOS.
Чуть позже выложим описание макет платы и софт.
PS Извиняюсь за офтоп …
Наверное станции лучше обсуждать к примеру на facebook

Я обновил слой, теперь:

  • можно показывать станции, а не города - для этого надо передать ‘type’: ‘station’ в хэш опций
  • показывается температура сразу под маркерами (как на OpenLayers)
  • в опциях можно задать количество значащих цифр после запятой в температуре (опция temperatureDigits)

А в каком соотношении находятся openweathermap.org и good-weather.ru? Я смотрю, что там очень схожи многие страницы. Интересуюсь в первую очередь для того, чтобы понять можно ли с иконки на слое сослаться на прогноз для города и куда?

openweathermap.org и good-weather.ru по сути одно и тоже, отличаются только шаблонами дизайна.
openweathermap.org хочется развивать для решения узкой и четкой задачи - референсные данные о погоде. На good-weather.ru, наверное, будут прогнозы погоды, их будет несколько разных и возможность их сравнивать. туда же пойдут и самодельные погодные станции и вроде того.

Ссылку на страницу прогноза погоды для города можно давать вот сюда http://openweathermap.org/city/524901 где 524901 идентификатор города.

Прогноз правда еще сильно сырой, иногда очень заметно врет … напишу большими буквами, что это версия 0.0001 ))

Где бы взять идентификатор интересующего города?

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

  • какую область обсчитываете, какой шаг сетки?
  • с каких данных модель стартует?
  • какие граничные условия?
  • как вы думаете проводить настройку модели и валидацию результатов?
    Всё это очень непросто…

Поиска пока нет. Самый простой способ - найти интересующий город на карте, кликнуть на нем и списать ID из URL.
Вообще то эти ID совпадают с geoname id . Так исторически сложилось.

С WRF мы играем. Считам юг от Москвы. Шаг сетки в 10 км , ~ 200 точек * 2.
На вход идет GFS и наши данные. Результат… гм. скажем так не очевидный. WRF это такой конструктор забавный с десятком различных под моделей для каждой составляющей модели. Очевидно, что бы рассчитывать по ней сколько либо значительную территорию необходимы значительные вычислительные ресурсы. Не то чтобы совсем уж невероятно большие если судить по количеству процессоров, но проблема тут в другом - в fortran + MPI предъявляет очень высокие требования к скорости обмена данными между вычислительными ядрами. Эта архитектура принципиально не масштабируется дешевым железом. Грубо говоря нельзя запустить эту задачку на 1000 персоналках. А хочется!
Досточно посмотреть какой прорыв сейчас происходит в области биг дейта. Вот кудато туда мы пытаемся двигаться.

На поиск и не рассчитывал. Спасибо, нашел интересующий город. Понаблюдаю за прогнозом :slight_smile:

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

Небольшой офф о погоде и прогнозе.
Случайно увидел в продаже недорогую (1500р) погодную станцию под брендом Vitek (Vitek VT-6400 BK).
Прикупил. Датчики внутри и один беспроводной выносной.
Поставил и стал наблюдать. Делает весьма хороший краткосрочный прогноз. Заявленная вероятность “угадывания” 70% .
Пока ни разу не ошиблась. :slight_smile:
Прикупил еще одну. С целью посмотреть внутренности, а потом подарить родственникам.
“Hi-Tech” весьма не самый свежий. Какой МК увидеть не удалось, он с внутренней стороны платы.
(На платах стоит марка HIDEKI.)
Но прогнозирует-то правильно. :slight_smile:

Насколько краткосрочный?
Если речь идет о нескольких часах, то оно просто экстраполирует чуть вперед текущую тенденцию. Фактически, то же самое может делать человек в голове, просто тут оно автоматизируется.
Если хотя бы 0,5-1 суток - это именно угадывание, а не прогноз. Первый же резкий фронт это покажет. Невозможно прогнозировать погоду на основе показаний в единственной точке пространства. Как при игре в покер - невозможно достоверно просчитать какая карта придет, но можно играть на вероятностях и статистически быть в плюсе.

наука != продукт. Это подход к науке с логикой “сколковского” акционера.
Тот кто работает на ECMWF и метеослужбы,
естественно сильно беспокоятся об источниках финансирования,
и очень любят поливать грязью “конкурентов”,
но их собcтвенные научные достижения очень часто весьма далеки от
энтузиастов в тех же самых университетах.