Archive for the 'Без рубрики' Category

Компиляция и настройка MITgcm, океан в компьютере. Часть 1, компиляция

Задача: Заставить работать MITgcm, одну из лучших океанологических моделей на данный момент, под Ubuntu 10.10
Решение: оказалось не таким уж сложным.

Раньше моделирование океана и атмосферы было уделом горстки избранных. Чем-то это напоминало ситуацию с Линуксом конца 90х годов — разобраться было можно, но сложно. Те времена давно прошли, и как Линукс теперь доступен для средних умов, так и заставить работать свою гидродинамическую модель океана может практически каждая домохозяйка, было бы желание.

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

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

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

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

Замена SAMSUNG PC Share Manager под Linux

Задача: смотреть файлы с компьютера на телевизоре Samsung по сети.
Решение: Медиа сервер MediaTomb

Если у вас имеется домашняя сеть и современный телевизор, бегать с дисками и флешками от компьютера, при помощи которого вы скачиваете файлы к телевизору совершенно не обязательно. Чудеса техники позволяют вам просматривать видео по сети прямо с компьютера. Для этого необходимо чтобы на компьютере бежал медиа сервер, и в случае с телевизорами Samsung, такой медиа сервер предоставляется производителем. Однако самсунговский PC Share Manager работает только под самую популярную операционную систему 🙂 У пользователей альтернативной системы все же есть возможность воспользоваться плодами прогресса и минимизировать беготню между компьютером и телевизором.

Я этом посте я приведу простую последовательность действий которая позволит установить и настроить MediaTomb под Ubuntu. Этот рецепт проверен на Ubuntu 10.10 и телевизоре Samsung LE37C650, думаю что он будет работать и для других современных телевизоров этой фирмы.

Read more »

CDO (Climate Data Operators) — рабочая лошадка для обработки netCDF файлов

Задача: проводить манипуляции с файлами формата netCDF, в том числе осреднение и выборку по различным осям, установку временной оси, интерполяцию полей, объединение и разделение файлов.
?нструмент: CDO (Climate Data Operators)

Причина, по которой я так долго тянул с постом о cdo, наверное в том, что они настолько незаметны и настолько часто мной используются, что я практически забываю об их существовании, воспринимая больше просто как некие обычные команды шела. Однако без них жизнь человека работающего с netCDF (а также GRIB) файлами становится гораздо неуютнее. На сегодняшний день существует около 400 операторов, позволяющих проводить первичную обработку файлов. Как бы я не любил Python, поручить ему обработку террабайтов информации значит обречь себя на очень долгое ожидание, тогда как cdo, написанные на C++, справляются с крупномасштабными задачами сравнительно быстро, при этом обладают очень простым для понимания синтаксисом.

В посте я расскажу об установке CDO под Ububtu 10.04 и Windows (да, они есть и под винду) покажу как пользоваться несколькими наиболее популярными их функциями.
Read more »

Карманное глобальное потепление

android_categories.jpgНедавно я стал счастливым обладателем HTC Desire, телефона на платформе Android. Но про этот телефон уже столько всего понаписано, что добавлять свои пять копеек смысла особого не имеет. Вместо этого я расскажу об Android приложении, которое вооружит вас против скептиков, сомневающихся в глобальном потеплении.

Практически на любой их аргумент вы почти мгновенно сможете представить если не полноценную научно популярную заметку, то как минимум список публикаций по теме. К слову есть подобные приложения для iPhone и Nokia, так что владельцы альтернативных платформ также имеют возможность при случае блеснуть интеллектом.

Read more »

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

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

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

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

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

Read more »

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

Массивы SciPy

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

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 »

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