Работаем с метеоданными в Pandas

met06Задача: сконвертировать данные метеостанции по температуре для работы в pandas
?нструмент: pandas

Всё чаще российские метеорологические данные становятся открытыми, что не может не вызывать положительных эмоций. Однако к сожалению все центры данных стремяться придумать свой уникальный формат, и к сожалению каждый раз нужно мучаться с конвертацией.

В этой короткой заметке я покажу как сконвертировать метеоданные (температуру) полученные с сервера ВН??ГМ?-МЦД в pandas DataFrame.
Read more »

Анализ логов Apache при помощи Pandas и IPython notebook

Apache log analysis with Pandas, mapПотихоньку осваиваю Pandas, питоновский модуль для анализа данных. В процессе сделал довольно подробный ноутбук с примером анализа логов доступа Apache. Цель я преследовал больше образовательную, чем практическую, так что не знаю насколько анализ сделанный там пригодится мне в реальной жизни 🙂

Полностью ноутбук сюда не стал выкладывать по двум причинам: он на английском, а переводить мне пока лень, и я не до конца разобрался как красиво перенести ноутбук в вордпресс, делать это полностью вручную, как с прошлым постом, довольно глупо, долго и выглядит в итоге довольно страшно. Пост с примерами работы в Pandas для новичков надеюсь написать в ближайшем будущем.

Конвертируем netCDF в ASCII при помощи Python в Windows

map_eurЗадача: Помочь друзьям виндузятникам сконвертировать netCDF в ASCII, попутно установив на их компьютеры Python, в надежде, что они таки постепенно забудут про дельфи, фортран и прочие гадости. Заодно попробовать удобно ли в ipython notebook писать посты.

?нструменты: cdo, Pyhton(x,y), ipython notebook

Важно: Этот пост изначально целиком написан в ipython notebook, что значит вы сможете при наличии установленного ipython notebook (как это сделать под Windows смотри ниже) исполнять и изменять код представленный в посте. Читать пост с хорошим форматированием, так как оно выглядит в ноутбуке, а также загрузить файл ноутбука можно здесь (загрузка файла в правом верхнем углу). Также доступна pdf версия этого поста автоматически сгенерированная nbconverter. А ещё версия этого поста в виде мимимишной презентации reveal. А теперь собственно пост:

Люди работающие под виндоуз любят ASCII, я знаю, я сам был такой. Они готовы переводить в ASCII всё на свете, включая данные моделей IPCC, которые занимая в бинарном формате сотни гигабайт, будучи переведены в ASCII превращаются в монстров, сжирающих всё доступное дисковое пространство в радиусе нескольких километров. Но таковы реалии виндузовой жизни, многие программы там, особенно занимающиеся отрисовкой и анализом данных, хотят, чтобы им скармливали текст и только текст.

У проблемы перевода из netCDF в ASCII существует множество решений. Можно сделать дамп всего файла, заголовка, или отдельной переменной при помощи программки ncdump.exe. Небольшую инструкцию как это сделать и где взять эту неуловимую программку можно почитать здесь (там пишут про HDF, но для netCDF эта инструкция также подходит). Правда этот дамп вам придётся потом ещё долго и печально разбирать, поскольку то, что вы увидите, будет довольно сильно отличаться от желаемой таблички время/широта/долгота/значение (я знаю мечтаете вы именно об этом :)).

Тем кто знаком с Matlab с некоторых пор вообще стало хорошо, поскольку там появилась поддержка netCDF файлов из коробки и о том, как их там открывать можно почитать тут.

Здесь я расскажу как сконвертировать netCDF в ASCII при помощи Python, при этом формат вывода вы сможете задавать какой пожелаете. Упражняться будем, как обычно, на файлах NCEP реанализа.
Read more »

Виртуальная машина для работы океанолога на основе Ubuntu 12.04

vmoЗадача: обновить виртуальную машину для работы океанолога.

Пришла пора обновить виртуальную машину до нового LTS релиза Ubuntu 12.04. Под катом список установленного софта, инструкция по установке под виндоуз и советы о том как искать и устанавливать недостающие программы.
Read more »

Ipython notebook. Часть II — пример работы

Задача: Показать ipython notebook в действии. В частности будем рисовать нашу любимую температуру из файла NCEP реанализа.
�?нструменты: ipython notebook, scipy, Basemap

Попробуем использовать ipython notebook, установленный нами в первой части, для чего-нибудь полезного и в процессе ближе познакомимся с его возможностями.
Read more »

Ipython notebook. Часть I — установка в Ubuntu 12.04 и запуск.

Задача: поставить ipython notebook — среду для работы с ipython в браузере, и немножко рассказать о его возможностях.
?нструменты: iptyhon notebook

Думаю, что многим хорошо известен продвинутый питоновский шел ipython. Его создатели большие любители пакета Matematika, и при работе в питоне, они скучали по её рабочей среде, которая реализована в виде записной книжки. Там имеется возможность тут же решить уравнение, отобразить результаты решения, нарисовать график, снабдить всё это текстовым комментарием, а при изменении исходных данных всё пересчитать и перерисовать одним нажатием клавиши.

Примерно с год назад разработчики ipython решили, что так жить больше нельзя, и начали изобретать велосипед разрабатывать свою записную книжку. Да так их понесло, что до сих пор не могут остановиться — очень уж им нравится то, что в итоге получается. Под катом рассказ о том как поставить последнюю стабильную версию ipython notebook под Ubuntu, запустить её и посмотреть примеры. Во второй части я покажу свой пример сеанса работы с notebook.
Read more »

NAO индекс в netCDF формате


Задача: перевести ?ндекс Северо-Атлантической Осциляции (NAO) из ASCII в netCDF формат
Решение: используем модули Python PyNio, numpy, time

?ндексом NAO (а также его близким родственником AO) пользуется огромное количество народа, но найти его в netCDF формате мне не удалось. Пришлось делать самому. Кому нужен просто файлик — вот он NAO index in netCDF format (up to 2011.04). Кто хочет посмотреть на очередной пример использования Nio для создания netCDF файла, велкам под кат.
Read more »

?збавляемся от ненужных циклов и ускоряем скрипт на Python

Задача: выбрать из массива данных только данные удовлетворяющие условию и сделать с ними какую ни-будь гадость
Решение: numpy.where

Слухи о тормознутости Python сильно преувеличены, просто нужно уметь его готовить. Конечно скорости C или Fortran вы на нем не добьетесь, но и его вполне можно заставить быстро обрабатывать огромные массивы информации. Если вы хотите считать быстро, то ваш враг номер один в Python (также как и в MATLAB, кстати) это циклы, заданные в явном виде (оператор for). От большинства из них можно избавиться, применяя нехитрые приемы. Об одном таком приеме, позволившем увеличить скорость обработки массива размером более 100 гигабайт в 46 раз, я очень коротко расскажу в этом посте.
Read more »

F2PY — ускоряем вычисления в Питоне в 500 раз

Лирическое отступление:

Сегодня у меня радостное событие, мне подарили новогодний подарок. Как известно лучший подарок это подарок сделанный своими руками, так и поступил Михаил ?ткин из ?нститута Метеорологии им. Макса Планка, подарив мне эту статью. Большое тебе, Миша, человеческое спасибо ) Если у кого появится подобное желание по поводу и без повода — пишите на koldunovn@gmail.com

Собственно статья:

Чистый питон очень сильно проигрывает низкоуровневым языкам программирования, длинные циклы могут замедлить выполнение программы на пару порядков. Часто узкие места можно обойти используя пакеты вроде numpy, в них функции написаны с использованием С? и Фортрана. Функционала numpy или PyNGL хватит для большинства рутинных задач, но если нужно применить вычисление к каждому элементу массива или, не дай бог, к «бегущему окну» — двигающемуся массиву меньшего размера, то придётся писать рутину самому.

Read more »

Массивы в scipy (numpy), шпаргалка.

Массивы SciPy

Решил перевести славную шпаргалку по массивам в scipy. Под катом
Read more »

Следующая страница →