Blog Archives

VirtualBox образ системы для океанологов на основе Ubuntu

Задача: Сделать образ Linux системы, содержащей уже установленные программы для океанологов, которым мог бы пользоваться самый прожженный виндузятник.

?нструменты: VirtualBox

К сожалению большинство программ популярных у океанологов и людей к ним приближенных совершенно не популярны у остальной части человечества. Не популярны до такой степени что дистрибутивы типа Ubuntu их в себя не включают, то есть практически мало вероятно что вы сможете выполнить

sudo apt-get install cool-ocean-soft

и получить желаемый результат. Более того, зачастую даже для немного продвинутого в *nix системах человека правильно поставить некоторый океанологический софт представляется задачей нетривиальной. Он даже может после пары часов (в лучшем случае дней) плюнуть на это дело. Если же человек сидит на Виндоуз, то от него потребуются и вовсе титанические усилия, связанные с дополнительными трудностями перехода на новую систему.

Чтобы хотя бы частично избавиться от вопросов типа «почему у меня PyNGL на новой Убунте не устанавливается?» и «что прописать в .bashrc чтобы заработал Ferret» я решил создать образ системы в которой все основные программы о которых рассказывается на koldunov.net были бы уже установлены и работали.

За основу был взят LTS дистрибутив Ubuntu 8.04 . Программы были проинсталированы и более-менее проверены на работоспособность. В результате получился образ системы для VirtualBox, который вы можете развернуть как под Линукс, так и под Виндоуз.
Read more »

Визуализация кластерного анализа в Python (модули hcluster и matplotlib)

dendrogram_hcluster_small.png
Задача: провести кластерный анализ и его результат представить в виде дендрограммы.
?нструменты: модули hcluster, matplotlib

Это короткий пост больше для того, чтобы не забыть чем для того, чтобы рассказать в подробностях о том, что происходит.
Допустим у нас есть набор данных и мы хотим посмотреть не образуют ли некоторые из этих данных группы и если да то какие. После чего мы хотим отобразить эти наши группы и отношения найденные между ними так, как это показано на картинке. Такой вид графиков называется дендрограмма. Обе эти задачи поможет нам решить модуль hcluster, который является частью SciPy.
Read more »

Обработка данных в Python, простые вещи

Задача: обработать некие абстрактные данные в python
?нтструменты: Python, numpy, ma, glob

Приведу набор не особо связанных между собой простейших приёмов обработки данных которые пригодились мне в последнее время. Они хоть и простейшие, но обнаружить их стоило мне некоторых трудов, поэтому я решил подбить их в один небольшой пост. Если кто-то решит поделиться своими простыми приёмами облегчающими жизнь, в частности с использованием numpy, милости прошу в комменты, с удовольствием добавлю их в пост )

Read more »

Создание netCDF файла из бинарных при помощи PyNIO

Задача: перевести данные из бинарного формата в netCDF
?нструменты: PyNIO

В одном из предыдущих постов я рассказывал почему бинарники это далеко не всегда хорошо и зачем нам бывает нужно перевести их в формат netCDF. Там я приводил пример того как можно это сделать при помощи NCL. Здесь я рассмотрю способ который возможно подойдёт большему количеству народа, поскольку не предусматривает установку NCL, а даёт возможность воспользоваться уже установленным в составе PyNGL модулем PyNIO. Этот модуль предназначен в частности для открытия и создания netCDF файлов, и по моим впечатлениям делает это гораздо более простым способом чем NCL (хоть PyNGL и производная NCL :)).
Read more »

Создание карты для Google Earth при помощи Python

sst_ge_koldunovnet_top.pngЗадача: отобразить наши данные на Google Earth
?нструменты: Python, PyNGL, convert

Я почему-то всегда думал что создание карт для Google Earth это занятие для избранных. С такой помпой очередной институт всегда анонсировал что его данные теперь и на Google Eatrh, что мне казалось группа программистов денно и ношно трудилась над этой непростой задачей год и вот теперь, наконец, долгожданный .kml файл увидел свет.

При ближайшем рассмотрении всё оказалось просто до тривиальности.

Собственно создание карты будет проводиться при помощи PyNGL, питоновского модуля позволяющего отображать двумерные данные на карте. Основы работы с этим модулем описаны в данном блоге и могут быть найдены по тегу PyNGL.
После мы обрежем карту при помощи convert и создадим простейший .kml файл, который и «натянет» наше изображение на Google Earth.

Поехали.
Read more »

Matplotlib (pylab) простые вещи 2

Задача: продолжить получать графику высокого качества не выходя из питона 🙂
?нструмент: Matplotlib

Это продолжение предыдущего поста. Сегодня мы рассмотрим, как отобразить два графика в одном окне, как это сделать в разных окнах, как добавить математические выражения в подписи к осям и в любое место графика, а также, как подписать какую-нибудь деталь на графике, которая вам особенно нравится.
Read more »

Matplotlib (pylab) простые вещи

Задача: получить графику высокого качества не выходя из питона
?нструмент: Matplotlib

Этим постом я начинаю серию вольных переводов избранных отрывков документации к Matplotlib.
Это питоновская библиотека для создания двухмерных графиков высокого качества (publication quality). Сделана с таким расчётом чтобы переход на неё доставил минимальные затруднения опытным пользователям матлаба. Как говориться на сайте библиотеки, Matplotlib старается сделать простые вещи простыми а сложные вещи возможными.

Как выглядит создаваемая графика можно посмотреть тут
Как устанавливать библиотеку я уже писал в предыдущем посте

Начнём с простого графика и контроля свойств линии.
Read more »

Как посмотреть на матрицу в python или аналог imagesc в Matplotlib

Задача: посмотреть что из себя представляет матрица, так как это делается в Matlab при помощи imagesc
?нструменты: Matplotlib, matplotlib.pyplot.imshow

?ногда достаточно одного взгляда на вашу матрицу чтобы понять что то-то в ней не так. При достаточном опыте работы с одними и теми же данными и небольшом размеры матрицы, в принципе можно и на цифры глянуть. Но гораздо приятнее смотреть на это дело в цвете. В матлабе для этого служит функция imagesc. Посмотрим как это можно сделать в питоне при помощи библиотеки Matplotlib.
Read more »

Нормализуем углы в PyNGL

Задача: Сделать так чтобы наши координаты имели вид по долготе [0.,360.) и по широте [-180.,180.)
Решение: функция пингля Ngl.normalize_angle

Эта функция пингля делает всю работу.

Ngl.normalize_angle(angle, option)

где angle — понятное дело угол, а option — может принимать значение 0 или не 0.
Если 0 то мы имеем дело с долготами, если нет то с широтами.

Мой код выглядит следующим образом:
Read more »

Открыть .mat файл в Python

Задача: открыть файл сохранённый в формате .mat и содержащий несколько переменных в Питоне
?нструменты: Matlab, scipy.io, numpy

Если матлабовский код уже написан, то смысла особого переделывать его на python нет (если, конечно вы не ярый фанат Столлмана, или у вас просто нет матлаба). Но бывают случаи когда результаты работы матлабовских скриптов (в том числе и промежуточные) хочется использовать в питоновских сценариях. Сохраняя результаты в .mat файлах вы без проблем (ну почти) сможете открыть их питоном.

Под катом необходимые телодвижения.
Read more »

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