Анализ логов 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 »