Открываем netCDF в MATLAB (на примере NCEP реанализа)

Задача: Открыть файл формата netCDF в MATLAB
Решение: чистый незамутненный MATLAB

Постараюсь описать здесь ответ на этот животрепещущий вопрос, чтобы было куда отправлять страждущих с различных форумов. Начиная с версии 7.7, Matlab поддерживает работу с форматом netCDF нативно, без различных примочек, которые требовались раньше. Синтаксис, который используется для работы с netCDF файлами довольно странный, ну да, не мне судить. Здесь я опишу, как в Matlab совершить одно простое действие, а именно прочитать данные из файла.
Read more »

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

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

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

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

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

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

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

L-talks #1

Выпуск второй,
в котором автор бросает гостя на амбразуру, а сам отходит в сторону.

Гость тоже уже год как Линукс пользователь, и мы обсудили следующие темы:

— Зачем мы ходим в Виндоуз
— Как гость пришёл в Линукс
— Первые дистрибутивы (Fedora, Open Suse и наконец Ubuntu)
— ?нструменты, которыми гость пользуется в Линукс чаще всего

Снова обсуждаем програмы по ссылке, но теперь уже с гномером

— почему GNOME а не KDE
— почему Firefox рулит но не сильно и шанс для Opera
— быстрее ли Firefox 3 чем Firefox 2
— Общая шпора в Google Docs
— Amarok зе бест
— почему Pidgin лучше Kopete
— Чего не хватает в GIMP фотошоперу
— ?гры: Supertux и kxmame
— Курсы по Линукс
— Отношения Dell inspiron 1500 и Ubuntu

Аудиозапись: Adobe Flash Player (версия 9 или выше) требуется для воспроизведения этой аудиозаписи. Скачать последнюю версию здесь. К тому же, в Вашем браузере должен быть включен JavaScript.

Read more »

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

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

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

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

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

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

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

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

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

Вырезание полигона из данных

Задача — вырезать район из матрицы данных.

В наличии — матрица с данными и две матрицы такого же размера что и матрица с данными, в одной находятся широты в другой долготы.

?нструменты — Matlab и GoogleEarth

Чтобы не отрываться от реальности, скажу что данные — это концентрация льда по SSM/I , NASA Team алгоритм. Решение грязное, медленное и нудное, правильного и красивого мне найти пока не удалось )
Read more »

Скопировать колонку несколько раз в Matlab

Если у вас есть колонка с данными и вам нужно сделать матрицу в которой была бы куча таких колонок, то есть клонировать их, то есть размножить, ну или как там ещё назвать… можно сделать следующее

dd = a(:,ones(1,n))

Где

a — изначальная одинокая колонка

n — количество колонок которое вам надо получить в итоге.

Есть ещё функция repmat но она медленней )

Открываем .hdf в Matlab

Мне попались файлы продвинутого формата hdf и нужно было как то открыть имеющиеся в них данные. С самим форматом мы разберёмся как нить в другой раз, наша задача добыть матрицу n*m.

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

Read more »