понедельник, 16 ноября 2015 г.

Метеорологические и картографические python-модули от MetOffice



Всем хорошо известный в узких кругах модуль basemap де-факто является основным инструментом для отображения географических данных в python.
Не так давно группой Scitools из MetOffice были созданы модули Cartopy и Iris.
Первый, как следует из названия, это модуль для работы с картографическими проекциями, а второй - специальный модуль для работы с метеорологическими данными разных форматов. Оба эти модуля были изначально созданы под Linux, и готовых сборок для Windows ОС не было. Не было их в репозитариях Anaconda (ни в стандартном, ни в binstar). Всё это делало работу с этими модулями целесообразной лишь под Linux.
Но не так давно эти модули были и теперь их можно установить в свою conda следующим образом:

conda install -c scitools cartopy

conda install -c scitools iris

И, главное, всё работает, в отличие от binstar/anaconda search!

Пока я вижу основную прелесть cartopy в том, что этот модуль использует более привычный для matplotlib синтаксис: картографическая проекция задаётся прямо через экземпляр области рисования axes с помощью параметра projection (с его помощью в matplotlib можно делать графики в полярных координатах).
А Iris умеет читать формат GRIB. Другого стороннего модуля, который умеет это делать, и который успешно устанавливался в conda, я не знаю.

Документация по Cartopy и документация по Iris.

Как перевести UV в направление и скорость ветра? How to convert wind UV-components to direction and velocity?

 Всё просто.  def uv2dir(u, v):     '''     Источник:     https://github.com/blaylockbk/Ute_WRF/blob/master/functions/wind_calc...