Показаны сообщения с ярлыком scipy. Показать все сообщения
Показаны сообщения с ярлыком scipy. Показать все сообщения

пятница, 15 мая 2015 г.

Даты и время в файлах netcdf. Time format in netcdf files


Аннотация

Рассматривается способ форматирования временных значений, представленных в файлах netcdf

Как обычно новый ноутбук на моём GitHub канале. В этот раз он посвящён проблеме представления дат в файлах netcdf в нормальном для восприятия виде (год-месяц-день-час-мин-сек).

понедельник, 1 декабря 2014 г.

Python: возможности и перспективы в гидрометеорологии

Представляю мой постер на юбилейной конференции "50 лет ВНИИГМИ-МЦД". Он о пользе и преимуществах языка python в гидрометеорологии. Копирайт стоит, но можно свободно его скачивать, распространять и печатать.
Вот кстати, попалась ссылка на новый пакет для рисования результатов статистической обработки данных - Seaborn.

Вот примеры работы  Seaborn:


Python in Hydrometeorology: State & prospects

Мой доклад на международной школе "Mathematical Methods: Applications to Earth Science", которая проходила в Москве, на мех-мате МГУ им. М.В. Ломоносова с 15 по 19 ноября 2014 года.
Школа проходила под эгидой LINC - Learning about Interacting Networks in Climate, группы молодых учёных из разных стран. Вот некоторые ссылки:

Собственно, мой доклад.
  1. LINC2014 
  2. сайт LINC
  3. Лекция Optimal Networks 
  4. Лекция Web graph models. Part 1
Добавлю сюда ссылку на TYGRMITE - python-приложение от одного из участников LINC Jakob Runge (PIK, Potsdam)

вторник, 20 августа 2013 г.

Python for windows. Питон для виндоуз. Winpython

Цель: Разобраться в азах языка программирования Питона
Методы: WinPython, python, numpy, scipy, matplotlib, basemap
Задачи:
1) Установить на windows Питон;
2) разобраться в основных модулях Питона, которые необходимы для построения "научного конвейера";
3) "Научный конвейер". На примере реанализа NCEP/NCAR разобрать полный цикл обработки гидрометеорологических и океанологических данных: от чтения netcdf файла до рисования карты, пригодной для презентации/публикации.

Хочу предложить читателям моего блога взглянуть на язык программирования Питон/Python. Недавно я начал активно использовать его для решения своих научных задач (построение карт различных метеорологических параметров по данным различных реанализов в формате netcdf). Python позволяет легко читать netcdf формат, что для пользователей windows очень актуально. Ncdump, конечно, хорош, но требует всё равно постобработки. К тому же большие файлы  (а таких в научных задачах большинство) он "жуёт" плохо. Установить же библиотеку netcdf на windows, как я понимаю, задача достойная эпитета "эпическая".
А вот Питон/Python работает с netcdf легко и непринуждённо! К тому же сейчас для Питона написаны и свободно распространяются модули, которые позволяют создавать графику, в том числе и географические карты, очень высокого класса. Таким образом, с помощью Питона можно создать конвейер полного цикла по производству научной продукции (чтение данных, обработка и преобразование данных, анализ данных, графическое представление результатов).
Конечно, у Питона есть и недостатки. Но о них мы поговорим как-нибудь потом. А теперь перейдём к решению поставленных задач.

понедельник, 28 ноября 2011 г.

Квантиль/Персентиль в python-scipy

Задача: Получить значения p-квантиля данного массива
Методы решения: python, scipy, numpy

Значения квантиля (в зарубежных источниках чаще употребляется родственный "персентиль" ) легко определить через модуль Питона (Python) SciPy. Перейдём сразу к программе:

! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
import scipy.stats as st
import numpy as np

head = 0
tail  = 100
step = 1

# Через модуль numpy создаем массив x.
# Массив x длины nx будет содержать значения от head до tail c шагом step.

x = np.arange(head,tail,step)

nx = len(x)
print 'Массив x длины', nx

percent = 99 # Задаём значение процентов*
p99 = st.scoreatpercentile(x,percent) # Вычисляем персентиль
print p99 
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Главное здесь - функция из модуля scipy.stats: 
scipy.stats.scoreatpercentile(array,percent).
Существует обратная ей функция - по заданному числу найти процент:
scipy.stats.percentileofscore(array, value)
Справку по этим (и не только) функциям можно найти здесь: scipy.stats.percentile help





Как перевести 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...