Archive for the 'Обработка данных' Category

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

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

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

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

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

Этим постом я начинаю серию вольных переводов избранных отрывков документации к Matplotlib.
Это питоновская библиотека для создания двухмерных графиков высокого качества (publication quality). Сделана с таким расчётом чтобы переход на неё доставил минимальные затруднения опытным пользователям матлаба. Как говориться на сайте библиотеки, 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 »

Конвертируем мультистраничный .ps файл в анимированный .gif

Задача: Есть многостраничный .ps файл, нужно сделать из него анимированный .gif, предварительно подрезав каждую страничку.
?нструменты: Python, утилита convert из пакета imagemagick

Под катом простые скрипты, позволяющие собрать картинки в .gif в прямом и обратном порядке.
Как обычно буду рад, если в комментариях оставите свои улучшенные версии скрипта, не обязательно на питоне 🙂
Read more »

Простой график исчезновения льда в Арктике при помощи PyNGL

Задача: Нарисовать xy график для нескольких функций. Масштаб по оси ординат одинаковый.

?нструменты: Python, PyNGL

График будет простой как тапок:
sie_1900_2100.jpg

Единственная сложность которая может возникнуть это подпись к осям, но и это не большая проблема.

Для начала скрипт:
Read more »

Очередной конвертер данных в Python

Задача: как обычно перевести данные из одного формата в другой. Будем делать из одного большого исходного файла много мелких, при этом названия будем выцеплять из заголовков столбцов.

?нструменты: Python с модулями sys, math, string

Задача тривиальная и решение у неё простое.

?значальный файл содержит в себе следующую таблицу
con3_3.png
Взять его можно отсюда — m2a.txt

Это результаты измерений течения при помощи ADCP где то в районе моря Лаптевых, если кому интересно ) Первые пять столбцов — день, месяц, год, часы, минуты. Они нам не нужны. Оставшиеся шесть это то что нам, собственно, нужно — сами значения. E — восточная компонента течения, N — северная. Цифры у букв означают глубину.

Наша задача создать по отдельному файлу для каждой из глубин, в котором было бы всего два столбика — E и N. При этом NaN должно быть заменено на 9999.

Read more »

Вставляем нули перед цифрами, Python

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

То есть:
5 >> 00005
123 >> 00123

?нструменты: Python, модули os, sys

UPD: Пост, конечно, смешной, потому как всё что я здесь расписываю в Питоне решается на раз без написания всяких функций. Смотри коменты. Продолжать читать имеет смысл только если хочется узнать зачем же нам решать такую задачу 🙂 Ещё можно добавить в коменты свой вариант решения, не только на питоне 🙂

Сразу скажу что я абсолютно уверен что эта задача решается в питоне какой ни будь встроенной функцией, и буду благодарен, если кто ни будь мне на неё укажет. Мне же, к сожалению, ничего раскопать не удалось. Ещё больше я уверен в том что это делает и какой-нибудь awk в одну строчку, но мне нужна была питоновская функция.

Для чего это нужно? Сделано это было для чтения модельных файлов, у которых имена определяются именно таким образом, но потом оказалось полезным и для создания gif файлов из ps при помощи convert (чтоб сортировало по порядку). Хотя ещё позже обнаружилось что gif файлы прекрасно создаются и без этого :))). Оба примера я приведу. Также приведу оригинальную функцию для MATLAB, которая делает то же самое.

Объяснений много не будет, потому что объяснять там особо нечего )

Сам скрипт:
Read more »

Загрузка файлов с ftp при помощи Python

Задача: ежедневно загружать последний появившийся файл из определённой ftp директории.
?нструменты: Python с библиотеками string, os, urllib2 а также программа w g e t

Сразу скажу почему пишу w g e t разрядкой — потому что мой хостер каким-то образом сечёт это название и не даёт мне сохранять пост (говорит что ваши злобные хакерские приёмчики не пройдут).

Загружать будем ежедневные данные по поверхностной температуре океана, которые появляются на одном из ftp NOAA. Описание данных доступно тут.
Но, естественно, загружать можно что угодно. Главное чтобы каждый день, или месяц, или год, в данной ftp директории появлялся новый файл 🙂

Сначала скрипт, он совсем простой:
Read more »

Даты и время в Python

Задача: преобразовать время модели в реальное время (на самом деле просто прибавить к начальному времени пару дней и посмотреть что получится 🙂 )
?нструменты: Python, модуль time.

К сожалению не все модели настолько продвинулись чтобы обрабатывать человеческое время. Гораздо удобней им начинать от начала и работать через определённые временные интервалы, не заботясь о днях, годах, месяцах и тому подобных глупостях. Мы же хотим привязать модельное время к реальному. Для этого была написана следующая питоновская функция:
Read more »

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