Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://sed.sao.ru/~vo/fgr/
Дата изменения: Wed Jun 11 22:19:29 2014 Дата индексирования: Sun Apr 10 02:21:05 2016 Кодировка: koi8-r Поисковые слова: п п п |
Верходанов О.В.
Специальная Астрофизическая обсерватория
The program fgr - version 2.3.
Verkhodanov O.V.
Интерактивные системы обработки по настоящий день являются основными для наблюдателей, несмотря на огромное количество обрабатываемой информации и преимущества запуска программ обработки в автоматическом режиме в виде командных файлов. Связано это с желанием пользователя видеть, что же он делает, а также получать наиболее точные оценки параметров наблюдаемых объектов, изменяя интерактивно параметры обрабатывающих программ. Программа fgr является не первой интерактивной системой обработки данных на РАТАН-600 (например, программа PRF в системе РАФОС (Витковский, 1990) или программа PRAT, разработанная Т.Н.Соколовой и С.А.Трушкиным под MS-DOS), но является первой, работающей в среде X-window. Эта программа является составным элементом гибкой системы обработки астрономических данных FADPS (Верходанов, 1992, Верходанов и др., 1992, Верходанов и др., 1992а, Верходанов и др., 1993a) на РАТАН-600. Программа fgr предназначена для первичной обработки (чистка массивов и оценка параметров объектов) и просмотра шагов обработки одномерных данных, получаемых в результате астрономического эксперимента. По своей сути эта программа является графической оболочкой, позволяющей выполнять и сразу показывать результат работы программ системы FADPS. Интерпретационная обработка или работа со спектрами объектов может производиться с помощью пакета rtnsp (Верходанов, 1992), являющемся частью FADPS.
В настоящий момент программа fgr версии 1.0 работает под OS XENIX с использованием графического интерфейса SCO CGI, а также версии 2.0 в среде X-window под OS 386/ix (Interactive UNIX), OS Linux и Sun OS. При работе в системе Sun OS программа не требует перекодировки формата данных, получаемых на компьютерах типа IBM PC, т.к. она ее осуществляет автоматически. Хотя чтение данных, полученных в системе Sun OS, также предусмотрено.
Когда мы говорим об обработке данных, мы имеем ввиду некоторые шаги, которые приводят к необходимому результату: списку объектов с некоторыми параметрами или картинке. При первичной обработке одномерных данных, поступаемых после наблюдений на облучателе РАТАН-600, первым шагом обычно является вычитание низко-частотной компоненты шума и тренда, которое на языке наблюдателей называется удалением фоновой компоненты или просто вычитанием фона. При этом под фоном понимается сглаженная в определенном интервале кривая, включающая в себя целый набор низкочастотных шумов. Интервал, в котором происходит сглаживание, обычно называется окном сглаживания. После вычитания фона с окном несколько большим, чем размер наблюдаемого источника (от 1.5 и выше в зависимости от задачи), производится осреднение нескольких записей с целью улучшения отношения сигнал/шум за счет увеличения времени накопления. Дальнейшие действия зависят от желания и опытности пользователя. Можно бороться за улучшение отношения сигнал/шум с помощью сглаживания программами вычисления фона (когда задается достаточно маленькое окно: 3-5 пикселов записи), сверткой с аппаратной функцией (например, диаграммой направленности) или сжатием записей до собственного интервала. Кроме того, пользователь может добиваться улучшения отношения сигнал/шум, используя Фурье-чистку, т.е. удаляя шумовой сигнал в пространствен но-частотной области. На последнем шаге оцениваются параметры искомых объектов. Вообще-то, наблюдатель не обязан следовать описанным путем. Более того, у него могут быть другие задачи. Но при описании действующей интерактивной системы автор будет стараться придерживаться данного пути.
Как уже говорилось, программа fgr позволяет оперировать другими программами системы обработки, визуализируя при этом результат. По ходу изложения основных шагов обработки данных в программе fgr будут также приводится короткие примеры исполнения программ в оболочке системы UNIX. Так же приводятся ссылки на описания команд из справочного руководства по системе обработки данных FADPS (Верходанов и др., 1992). Заметим, что автор придерживается потоковой обработки данных, т.е. работы с командными файлами, без визуализации каждого шага.
О F-формате записи данных уже достаточно много говорилось (например, Верходанов и др., 1993). Но коротко скажем, что F-формат - это FITS-подобный формат данных, объединяющий символьную шапочку с параметрами эксперимента, записанными с помощью ключевых слов и их значений в формате FITS (Wells et al., 1981), и двоичные данные. Этот формат позволяет описывать данные, у которых по осям находятся различные величины, в результате чего программа fgr может работать с одномерными векторами данных, состоящих из равноотстоящих точек и полученными в абсолютно различных экспериментах.
Простейшая F-шапочка выглядит следующим образом:
Таблица 1.
SIMPLE=T
BITPIX=-32
BSCALE=1
NAXIS=1
NAXIS1=...
BUNIT=...
CTYPE1=...
CRVAL1=...
CRPIX1=...
CDELT1=...
END
Здесь вместо '...' надо записать параметры в стандарте, приведенном ниже.
Каждый файл, записанный в F-формате, должен начинаться со строки
SIMPLE=T
которая является обязательным признаком F-файла (символ 'T' означает transport. Последним ключевым словом каждой шапочки F-файла должен быть параметр END. Дальше записываются двоичные данные. Ключевое слово BITPIX определяет тип данных, следующих за шапочкой. Конкретно это количество битов на пиксел. Если значение BITPIX равно 8, то это означает, что данные представляют из себя 8-битовые целые. Если BITPIX равно 16, то данные представляют из себя 16-битовые целые. Если BITPIX равно 32, то данные представляют из себя 32-битовые целые. Если BITPIX равно -32, то данные представляют из себя 32-битовые действительные числа с плавающей запятой.
Ключевое слово NAXIS соответствует количеству осей (размерности) данных, содержащихся в данном файле. Ключевые слова NAXIS1, NAXIS2, ..., NAXISn соответствуют количеству точек по первой, второй, ..., n-ой осям соответственно (n - значение параметра NAXIS). Для приведенного в таблице 1 примера NAXIS равно 1, а NAXIS1 равно количеству отсчетов в записи.
Параметры CRVALn, CRPIXn, CDELTn, CTYPEn определяют координатную систему изображения, содержащегося в данном файле. Ключевое слово CRVALn имеет своим значением точку привязки шкалы по n-ой оси. Его значение - это значение шкалы по n-ой оси, которое соответствует пикселу с номером, равным значению ключевого слова CRPIXn. Значение CRPIXn может быть дробным, когда CRVALn привязывается не к конкретному пикселу записи, а к некоторому абстрактному.
Ключевые слова CDELTn определяют физические шаги между отсчетами по соответствующим осям. Единицы измерения CRVALn и CDELTn определяются параметрами CTYPEn. Ключевые слова CTYPEn показывают координатную систему, в которой определяется изображение, содержащееся в данном файле. Предложения по использованию различных единиц для параметра CTYPEn содержатся в (Wells et al., 1981).
Ключевое слово BSCALE определяет калибровочный множитель, на который необходимо домножать каждый пиксел записи, чтобы получить реальное значение данного пиксела. Естественно этот параметр имеет смысл только для integer данных (т.е. когда BITPIX равно 8, 16 или 32). Для real данных он обычно 1.0.
Ключевое слово BUNIT (brightness units) показывает единицы измерения, в которых записаны содержащиеся в файле данные. Например, в случае BUNIT=K это будут единицы измерения антенной температуры - Кельвины. Предложения по использованию различных единиц для ключевого слова BUNIT содержатся в (Wells et al., 1981).
Создать свой F-файл, если имеется файл с двоичным данным, можно, сделав конкатенацию двух файлов в ОС UNIX, например:
cat head data < data.ff
Здесь head - имя файла с F-шапочкой, data - имя файла с двоичными данными, data.ff - имя склеенного F-файла (расширение .ff - необязательно, а приведено в качестве примера).
Просмотр одной или нескольких записей делается в графической среде, поддерживающей стандарт X-window. Графическая оболочка может быть запущена одной из команд (в зависимости от системы):
startx
или openwin
Если пользователь использует рабочую станцию, то ему сначала надо убедиться, что графический вывод с машины-сервера будет приходить на его рабочую станцию. Для этого надо запустить команду:
echo $DISPLAY.
т.е. вывести значение переменной DISPLAY. Значение переменной должно совпадать с именем машины, на которой работает пользователь. Например, если пользователь вошел на машину 'ratan'' компьютера 'cold', значение переменной DISPLAY должно быть 'cold:0.0'. Если имя переменной другое, то на отдаленной машине перед запуском программы fgr нужно выполнить следующую команду
setenv DISPLAY cold:0.0
или для оболочки sh (shell):
DISPLAY=cold:0.0; export DISPLAY.
После запуска графической оболочки и установки переменной DISPLAY, если таковая требуется, можно выполнить программу fgr:
fgr file1 file2 ....
При таком запуске программа работает в первом режиме, когда она в общем масштабе выводит в ею созданное окно записи, содержащиеся в файлах file1, file2 и т.д. Если файлов очень много, и не хочется их всех набирать, то можно воспользоваться просто системой шаблонов и метасимволов, предоставляемых операционной системой UNIX:
fgr qq*. Эта строка означает, что показаны данные всех файлов, имена которых начинаются с символов 'qq'.
В этом же режиме существует возможность выводить записи друг за другом с некоторым заданным интервалом времени в общем масштабе. При этом используется ключ - sl (sleep). Ниже приведен пример вывода записей с задержкой 3 сек:
fgr -sl3 file1 file2 .... Пробела между ключом -sl и цифрой 3 быть не должно. Если вслед за ключом -sl (или -sleep) не записано ни какой цифры, то вывод следующей записи на экран будет производиться с помощью нажатия клавиши возврата каретки (<Enter>) или или первой клавиши мышки.
В этом же режиме существует возможность простейшей работы с курсором в масштабе картинки: снимать текущее положение и измерять расстояние между точками по двум координатам. Для запуска активного курсора, называемого нами локатором, необходимо после вывода в графическое окно набрать символ 'l'. После этого курсор меняет свою форму и цвет и работает в режиме локатора. Для того, чтобы определить текущее положение курсора, требуется нажать клавишу <Enter> или первую клавишу мышки. В окне появляется текущее положение курсора по оси абсцисс в единицах этой оси (часто секунды времени) от начала данных и значение положения курсора по оси ординат. Курсор двигается по окну с помощью мышки, либо с помощью клавишей-стрелок. При движении курсора с помощью клавишей-стрелок можно увеличивать скорость курсора нажатием клавиши K5, расположенной на правой дополнительной клавиатуре, либо уменьшать нажатием двух клавишей Shift-K5. Для измерения расстояний в режиме локатора необходимо подвести курсор к первой требуемой точке и нажать клавишу 'r', после чего включится "растягивающаяся резинка" или режим 'rubber' работы локатора. После этого надо подвести курсор ко второй точке и набрать символ 'm'. В окне появится сообщение о расстояних по осям абсцисс и ординат.
Если пользователь хочет посмотреть записи одновременно и каждую в своем масштабе необходимо вызвать программу fgfew:
fgfew file1 file2 ....
или для уменьшения количества выводимой информации эту же команду с ключом -nocom:
fgfew -nocom file1 file2 ....
Локатор включается таким же образом, что и для программы fgr. Для перехода от одной записи к другой в режиме локатора необходимо нажать либо cntrl-E (для движения к следующей), либо cntrl-W (для движения к предыдущей). При выводе файлов в этом режиме работы программы fgr можно установить интервал, в котором будет происходить вывод записей:
fgr +t aaaa -t bbbb file1 file2 ...
Здесь с помощью ключа '+t' вводиться начальный абсолютный момент aaaa чтения записи, а с помощью ключа '-t' конечный абсолютный момент bbbb чтения записи. Строкиaaaa и bbbb могут быть заданы в единицах измерения оси X (например, в см или сек), либо в случае временной шкалы в виде hh:mm:ss.ss, где hh - это часы, mm - это минуты, ss.ss - секунды.
Можно работать и с относительным интервалом от начала и конца записи. В этом случае вместо ключей '+t' и '-t' будут ключи '+q' и '-q':
fgr +q aaaa -q bbbb file1 file2 ...
При выводе записей можно устанавливать границы усечения данных. Для этого используются ключи '-C' и '-Cs'. Например,
fgr -C -30,30 file1 file2 ...
Здесь параметр -30,30, следующий за ключом -C через пробел устанавливает границы усечения данных при выводе на экран, а именно: не ниже -30 мк и не выше 30 мк. Подробнее см. ниже описания ключей -C и -Cs в параграфе, посвященном ключам.
Если требуется поочередный просмотр каждой записи то программу следует запустить с ключом -s:
fgr -s file1 file2 ....
Программа загружать и показывать записи поочередно, каждую в своем масштабе. Для перехода к следующей записи необходимо просто нажать клавишу возврата каретки или первую клавишу мышки. Для движения назад по списку файлов перед клавишей <Enter> надо набрать символ минус '-'. Выход из программы происходит по окончанию списка файлов, нажатием клавиши 'q' и <Enter> или третьей клавиши мышки. Когда пользователь доходит до последней записи, на экране появляется предупреждение:
last file ...
В этом режиме можно управлять выводом информации. Если на записях есть сильный источник, можно включить режим оценки полуширины нажатием клавиши 'h' и за ней <Enter>. Оцененная полуширина будет выводиться в окно. Отключение режима будет производиться аналогичным образом. Режим оценки полуширины может быть также включен еще при вызове программы fgr добавлением ключа '-H'.
Если пользователь хочет приступить к обработке заинтересовавшего его файла, он может перейти в третий, основной режим работы fgr: режим первичной обработки данных. Для этого этого в режиме поочередного просмотра файлов перед клавишей <Enter> следует набрать символ 'p'. Режим первичной обработки данных (условно названный prad-режимом по имени программы prad, а затем praT, созданной (Т.Н.Соколовой и С.А.Трушкиным) может быть установлен и при вызове программы с помощью ключа '-p':
fgr -p file1 file2 ....
В этом режиме загружается меню для общения с пользователем.
Начиная с версии fgr 2.4, имеется возможность выводить в определенные участки записи (например в ожидаемые места положения источников) метки и текст. Метки выводятся в виде маркеров.
Для задания задания меток используются ключи `-tc' и `-ti'.
С помощью ключа `-tc' вводится строка,
содержащая параметры метки около заданной точки
графика. Она имеет формат
coor,mark(size,ys),color,text(size,xs,ys),
где coor - координаты метки по оси абсцисс,
mark - номер маркера, color - цвет, text - выводимый
текст около метки.
Маркеры могут задаваться либо номером, либо строкой.
Допустимые обозначения например такие:
ARROW_DOWN | или 17 | - стрелка вниз, |
ARROW_UP | или 18 | - стрелка вверх, |
ARROW_LEFT | или 19 | - стрелка влево, |
ARROW_RIGHT | или 20 | - стрелка вправо |
PENT_STAR | или 21 | - пятиконечная звезда, |
F_PENT_STAR | или 22 | - залитая 5-кон. звезда, |
ASTERISK | или 23 | - звездочка, |
SOLOMON_STAR | или 24 | - шестиконечная звезда, |
F_SOLOMON_STAR | или 25 | - залитая 6-кон. звезда, |
FAT_RIGHT_DOWN_ARROW | или 35 | - толстая стрелка справа-вниз, |
F_FAT_RIGHT_DOWN_ARROW | или 36 | - залитая толстая стрелка справа-вниз, |
FAT_LEFT_DOWN_ARROW | или 37 | - толстая стрелка слева-вниз, |
F_FAT_LEFT_DOWN_ARROW | или 38 | - залитая толстая стрелка слева-вниз, |
FAT_DOWN_ARROW | или 39 | - толстая стрелка вниз, |
F_FAT_DOWN_ARROW | или 40 | - залитая толстая стрелка вниз. |
Регистр кодов ввода описания маркера не существенен, т.е. текст можно вводить как прописными, так и заглавными буквами. Полный список маркеров можно найти в описании программы spg(1).
При задании маркера в скобках можно указать его параметры: размер и сдвиг оси ординат. Для текста в скобках можно указать: размер, сдвиги по оси абсцисс и ординат. Сдвиги по осям задаются в системе единиц программы fgr: от 0 до 32767. Заданные в скобках параметры не обязательны, т.е. их содержимое вместе со скобками может быть пропущено. Если в каком либо параметре нет необходимости, вместо него надо поставить запятую. Параметр, описывающий координаты, - обязательный. Маркер по умолчанию - вертикальная линия. Размер макера и текста по умолчанию - 1000,сдвиги по осям - 1000, цвет по умолчанию - цвет, задаваемый кодом 1. Задаваемый размер текста отражается только в PLOT-файле (и в PostScript-файле). Размер выводимого на экран текста определяется заданным фонтом (см. ключ {'-font'). Если между параметрами используются пробелы, всю строку необходимо взять в кавычки.
Список объектов можно задать в файле, который вводится с помощью ключа `-ti'. Формат строки файла с параметрами меток, выводимых на график в формате, совпадает с вводимым с помощью ключа '-tc' (см. начало этого параграфа).
На графиках можно также выводить текст в произвольном месте. Описание этой возможности можно можно прочитать в разделе ``О некоторых ключах программы fgr...'' при описании ключа `-text'.
При запуске программы fgr в случае отсутствия ошибок создает графическое окно для вывода записей. Параметры этого окна: положение и размеры - могут быть изменены с помощью ключей при вызове программы, либо с помощью программы управления окнами системы X Window: Window-менеджера. Для установки окна при вызове используется ключ '-geom':
fgr -geom 30x0+600+400 file1 file2 ...
Здесь последовательность 30x0+600+400 означает, что начало координат окна в сетке X-window (левый верхний угол, ось X направлена вправо, ось Y - влево, количество пикселов плоскости - разрешение дисплея) смещено в точку (30,0) относительно корневого окна, размер создаваемого окна: 600 пикселов по оси абсцисс и 400 по оси ординат.
Способы изменения окна зависят от конкретного Window-менеджера. Довольно часто для изменения окна достаточно "зацепить" мышкой с нажатой первой клавишей один из углов окна и "потянуть" его в нужном направлении, не отжимая клавиши мышки. После изменения окна программа fgr производит пересчет масштаба, и с новым разрешением перерисовывает картинку. При этом внутренняя относительная сетка координат библиотеки XPLOT (Верходанов, 1993), используемой программой fgr, сохраняет свои значения в соответствии с общей идеологией визуализации системы обработки (Верходанов и др., 1995).
При работе в режиме первичной обработке данных пользователь работает в системе меню программы fgr (Fig.1). Меню представляет из себя набор пунктов и комментариев к ним. При входе в один из пунктов меню появляется меню следующего уровня, либо выполняется определенная операция. При подходе к текущему пункту меню внизу появляется соответствующий комментарий. Движение по меню происходит либо с помощью клавишей-стрелок, либо с помощью мышки. Для того, чтобы войти в требуемый пункт, нужно его сделать текущем с помощью клавишей-стрелок, двигая выделяющий прямоугольник, и нажать клавишу <Enter> либо набрать выделенный символ в имени этого пункта, либо просто подвести к нему курсор с помощью мышки и нажать первую клавишу. Для выхода из текущего меню в вышестоящее необходимо использовать пункт меню 'Return', либо клавишу 'Escape', либо третью клавишу мышки. Для выхода в основное (первое) меню необходимо использовать пункт меню 'Exit'.
Ниже приведены два первых уровня меню:
Для просмотра записей в режиме prad используются три первых
пункта основного меню.
При входе в первый пункт 'Lst' пользователь
получает возможность просматривать текущую запись в некотором окне
по оси абсцисс. По умолчанию для временной шкалы окно составляет
5 минут. При просмотре пользователь может двигаться вдоль записи
по двум направлениям с шагом, равным длине либо половине длины
окна. После нажатия клавишей-стрелок LEFT или RIGHT картинка
сдвигается на длину целого окна соответственно вправо или влево.
После нажатия клавишей-стрелок DOWN или UP картинка
сдвигается на длину половины окна соответственно вправо или влево.
Нажатие клавиши <Enter> или
первой клавиши мышки вызывает повтор предыдущей операции.
Установку нового размера окна можно произвести в пункте 'Win'
основного меню. При входе в этот пункт программа задаст вопрос:
new window ?
Форматы ввода нового окна могут быть следующие:
pFloat - следущее за символом 'p' число без
пробела - количество пикселов.
hHHили HHh - символ 'h' и следующее за или перед ним
число без пробела - количество часов в окне.
mMM или MMm - символ 'm' и следующее за или перед ним
число без пробела - количество минут в окне.
HH:MM:SS.SS - через двоеточие: часы,минуты,секунды.
SS.SS - просто число : секунды.
Если вместо размера окна набрать символ 'w', то размер окна будет
равен длине всей записи.
Если размер окна превышает длину записи, то размер окна устанавливается
равным длине записи.
Можно также произвести установку левой границы. Для этого
пользователь должен войти в пункт 'Bound' основного меню.
После чего программа спросит:
Кроме описанной выше возможности просмотра записи,
пользователь может использовать выбор и установку текущего интервала
с помощью мышки или клавишей-стрелок, войдя в пункт основного
меню 'Lst'; при этом в нижней части экрана высветится следующее
меню:
use arrows,'>','<'to move;^U:up;^D:down;'Q',MB3: exit
mark interval:'r'-shift'-'m' or MB1-shift-MB1, MB2-shift-MB2
Эта подсказка означает следующее:
Выбор режимов просмотра одной записи
new left border ?
Формат ввода левой границы такой же,
как и формат ввода окна просмотра.
Если введенная левая граница меньше
реальной левой границы записи или
больше правой границы записи, то при выходе из этого пункта
устанавливается реальная левая граница записи.
При выходе из пунктов 'Win' и
'Bound' пользователь автоматически
попадает в пункт 'Lst' для
продолжения просмотра текущей записи.
Выход из пункта 'Lst' осуществляется вводом символа 'q',
'Escape' или нажатие третьей клавиши мышки.
В каждом пункте внизу выводится подсказка.