Blog Archives

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

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

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

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

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

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

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

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

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

Океанская погода

Начали потихоньку делать проект по размещению оперативной информации об обстановке в океане на OceanographersRU. Вызван он был тем что гидрометовские карты нам не понравились. ? способ размещения инфы тоже восторга не вызвал.

?сточники данных все открытые (кроме некоторых прогнозов, но адекватную замену можно найти и в открытом доступе), поэтому решено было сделать по своему . Ну и хотелось попрактиковаться в Python’е чутка :). Ну и PyNGL делает офигенные карты на мой взгляд 🙂

Данные сливаются с разных источников в разных форматах, обрабатываются при помощи питоновского модуля PyNGL, а затем заливаются по ftp на хостинг. Сделано пока:

Будет больше как видов данных так и районов. Если у кого есть мысли по поводу того какие характеристики интересно было бы видеть ещё — велком в коменты (можно со ссылкой на источник данных, можно и без неё)).

Бонус — прогноз высоты волн:

Read more »

Одновременное отображение скалярных и векторных данных в PyNGL

Задача: построить высоту поверхности моря и наложить на неё геострофические течения.
?нструменты: Python, PyNGL

В предыдущих постах мы рисовали векторные и скалярные данные. Теперь попробуем их объединить.

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

pyngl_small1.png

(картинка побольше в конце поста), но с помощью нехитрых изменений вы сможете настроить картинку так чтобы она доставляла вам наибольшее эстетическое удовольствие.
Read more »

Визуализация скалярного поля в PyNGL

Задача: визуализировать концентрацию льда
?нструменты: Python с модулем PyNGL

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

contours11.png

Read more »

Визуализация данных при помощи PyNGL

Задача: взять netCDF файл содержащий две компоненты скорости течений (плюс, естественно, координаты) и изобразить вот это:

pyngl1.png

?нструменты: PyNGL и PyNIO

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

Ну и начать хотелось с чего то осязаемого. Ничего более осязаемого чем визуализация быть не может, поэтому для бесчеловечных экспериментов был выбран свободно распространяемый модуль PyNGL (пингль), рассчитанный на людей занимающихся геонауками. Преимущества пингля над тем же GMT в том что данные можно считывать из netCDF (и кучи других форматов) непосредственно и использовать для обработки этих данных весь арсенал SciPy и питона как такового.

Сразу оговорюсь что в питоне я мегановичок (вчера прочитал по нему первую статью) так что если какие то вещи покажутся очевидными, смело пропускайте. Поехали.

Read more »

?нтерполяция гео данных на другую сетку

Данные: значения на сетке в формате netCDF. Сетка покрывает всю Землю.

Задача: проинтерполировать эти данные на другую сетку (T63), чтобы их можно было сравнить с другой моделью.

?нструменты: cdo и GMT для отображения.

cdo (climate data operators) это коллекция строковых операторов для обработки и анализа данных климатических моделей (и вообще любых данных в netCDF формате), распространяемая по лицензии GPL. Поддерживаемые форматы данных GRIB, netCDF, SERVICE, EXTRA и IEG. Доступно более 350 операторов.

Read more »

Создание простейшей карты в GMT

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

?нструмент: GMT (Generic Mapping Tools).

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

Read more »

Соединение нескольких .eps файлов в один

Задача: объединить красиво несколько .eps файлов в один (создать из нескольких рисунков один).

?нструмент: epsemerge

Сколько же времени теряется если вовремя не провести простой поиск гуглом или не заглядывать во внутренюю вики института…

Раньше соединение нескольких .eps файлов в один было для меня большой, долгой задачей. Открывался Gimp, в него импортировались epsки, включалась сетка и по этой сеточке, ручками картинки расставлялись в правильном порядке, обычно в квадратном таком порядке.

Человечество оказалось гораздо более ленивым чем я.

Read more »

← Предыдущая страница