eddy_em: (Default)
[personal profile] eddy_em
Продолжая свое знакомство с Octave решил я попробовать выполнить элементарные операции с FITS-файлами. Как оказалось, в "умолчательном" Octave средств для работы с FITS'ами нет. Но гугл мне помог. Итак, гугл вывел меня на страничку Octave на sourceforge. Я скачал нужный мне пакет FITS, распаковал его и попробовал скомпилировать. Но не тут-то было! При запуске ./configure ничего не произошло. Заглянув в директорию src я не увидел ничего интересного, только элементарный Makefile. Содержимое его подсказало мне, что нужно установить еще и компилятор пакетов Octave - mkoctfile. В мандриве он находится в пакете octave-devel.

Установив нужный пакет я запустил make и получил три файла:

read_fits_image.oct  save_fits_image.oct  save_fits_image_multi_ext.oct
. Куда их поместить, я понятия не имел, но
locate \.oct
вывел меня на директорию
/usr/lib/octave/3.4.2/oct/i586-mandriva-linux-gnu/
, куда (от имени рута, естественно) файлы были скопированы.

Запустив Octave я первым делом проверил, работают ли эти команды. Работают. Чтобы считать файл filename.fits в переменную var необходимо сделать:

var = read_fits_image("filename.fits");

Главное - не забыть точку с запятой в конце команды, дабы не получить потоки цифр! Про точку с запятой я "вспомнил", как раз когда забыл ее поставить. Меня приятно удивило то, что, в отличие от матлаба, заваливающего пользователя бесконечным потоком данных, Octave разбивает вывод по страницам (судя по всему, для вывода на экран используется less).

Чтобы считать еще и шапку файла, выполним:

[var, head] = read_fits_image("filename.fits");

Команда whos показывает, что head - это строковый массив с длиной строк 80 символов (вспоминаем ограничения формата FITS), в который просто построчно переписана вся шапка файла без разбиения на имя/значение/комментарий (т.е. если в Octave планируется работать с шапкой, все это придется сделать самому, либо дописать нужные функции в пакет FITS, благо средства для этого есть).

Отобразить файл на экране я пытался при помощи imshow. Фигвамушки! Я увидел ровным счетом ничего. Зато imagesc показал мне картинку и даже менял цветовую карту на команды colormap. Если вывести картинку в логарифмическом масштабе:

imagesc(log(var));

отображение будет более приятным.

Вспоминая свою fitsview, я с сожалением отметил, что использование gnuplot в качестве "чертилки" сильно действует на нервы: приходится довольно долго ждать, пока Octave передаст гнуплоту необходимые данные, а затем - пока гнуплот их отобразит на экране.

Ну и напоследок простенькая программка для суммирования файлов в директории, имеющих вид object_XXXX.fit (где XXXX - номер), начиная с номера first и заканчивая номером last:

function ret = sum_fits(first, last)
ret = [1 2 3];
frst = 1;
    i = 0;
    for num = [ first : last ]
        i++;
        name = sprintf("object_%04d.fit", num); % получаем имя файла
        II = read_fits_image(name);  % считываем его
        med = median(median(II)); % вычисляем медиану медиан по столбцам
        printf("%d:\tread file %s, median = %d\n", i, name, med); 
        fflush(1); % это нам не матлаб! 
        II -= med; % вычитаем "медиану" (bias'ы рассчитывать лень)
        if(frst == 1)  % суммируем
            frst = 0;
            ret = II;
        else
            ret += II;
        end
    end
end
И пример для изображений, полученных для определения координат центра вращения поля на БТА:
II = sum_fits(1,147);
a = II;
a(find(a < 1)) = 1;
imagesc(log(a))

получаем такую картинку:

Да, чуть не забыл: у Octave есть еще и матлабоподобные интерфейсы, например, QtOctave:

В общем оформление интерфейса довольно приличное, однако, сильно напрягает то, что командная строка вынесена отдельно и в нее нужно тыкнуть мышкой, чтобы начать что-то писать. Так что, CLI у Octave намного лучше и удобнее.

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org

May 2025

S M T W T F S
    123
45678910
11121314151617
1819202122 2324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 28th, 2025 09:49 pm
Powered by Dreamwidth Studios