Интерактивная первичная графическая обработка одномерных векторов данных в оболочке X-window под ОС UNIX на РАТАН-600

Программа fgr - версия 2.4 (11/04/2001).

Верходанов О.В.

Специальная Астрофизическая обсерватория


gzip-ed PostScript версия текста: FGR.ps.gz

Оглавление

  • Введение
  • Общие принципы
  • Формат записи данных
  • Просмотр записей
  • Работа с окном
  • Работа с меню
  • Выбор режимов просмотра одной записи
  • Работа с курсором
  • Удаление фона
  • Оценка параметров источников
  • Скалярные и векторные операции
  • Запуск внешних фильтров
  • Ввод и вывод данных
  • Вывод картинок
  • О внешних переменных
  • О справочной информации
  • О некоторых ключах программы fgr и настроечных файлах
  • Литература

  • Interactive preliminary graphical data processing for one-dimensional vectors in X-window under OS UNIX at the RATAN-600.

    The program fgr - version 2.3.

    Verkhodanov O.V.


    The system of data processing for one-dimensional data in the graphical data reduction program fgr in the X-window under OS UNIX at the RATAN-600 is described. General principles of data processing are given. The procedures of background calculation and sources parameters estimation are described. The examples the input and output of data, recorded in different formats, also in FITS format, are given. The examples of rules for the output of resulting images onto the different graphical devices and also into the PLOT-format and PostScript language are given.
    Описывается методика обработки одномерных векторов данных в графической системе обработки fgr в оболочке X-window под ОС UNIX на РАТАН-600. Излагаются общие принципы обработки. Описываются процедуры удаления фона и оценки параметров наблюдаемых источников. Приводятся примеры ввода и вывода данных, записанных в различных форматах, в том числе и в FITS-формате. Также приводятся примеры правил вывода получающихся изображений на различные устройства, в PLOT-формат и на языке PostScript.

    Введение

    Интерактивные системы обработки по настоящий день являются основными для наблюдателей, несмотря на огромное количество обрабатываемой информации и преимущества запуска программ обработки в автоматическом режиме в виде командных файлов. Связано это с желанием пользователя видеть, что же он делает, а также получать наиболее точные оценки параметров наблюдаемых объектов, изменяя интерактивно параметры обрабатывающих программ. Программа 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' и `-sh' С помощью ключа `-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 - залитая толстая стрелка вниз,
    U_RIGHT_DOWN_ARROW или 35 - обычная стрелка справа-вниз,
    F_U_RIGHT_DOWN_ARROW или 36 - залитая обычная стрелка справа-вниз,
    U_LEFT_DOWN_ARROW или 37 - обычная стрелка слева-вниз,
    F_U_LEFT_DOWN_ARROW или 38 - залитая обычная стрелка слева-вниз,
    U_DOWN_ARROW или 39 - обычная стрелка вниз,
    F_U_DOWN_ARROW или 40 - залитая обычная стрелка вниз.

    Регистр кодов ввода описания маркера не существенен, т.е. текст можно вводить как прописными, так и заглавными буквами. Полный список маркеров можно найти в описании программы spg(1).

    При задании маркера в скобках можно указать его параметры: размер и сдвиг оси ординат. Для текста в скобках можно указать: размер, сдвиги по оси абсцисс и ординат. Сдвиги по осям задаются в системе единиц программы fgr: от 0 до 32767. Заданные в скобках параметры не обязательны, т.е. их содержимое вместе со скобками может быть пропущено. Если в каком либо параметре нет необходимости, вместо него надо поставить запятую. Параметр, описывающий координаты, - обязательный. Маркер по умолчанию - вертикальная линия. Размер макера и текста по умолчанию - 1000,сдвиги по осям - 1000, цвет по умолчанию - цвет, задаваемый кодом 1. Задаваемый размер текста отражается только в PLOT-файле (и в PostScript-файле). Размер выводимого на экран текста определяется заданным фонтом (см. ключ {'-font'). Если между параметрами используются пробелы, всю строку необходимо взять в кавычки.

    Список объектов можно задать в файле, который вводится с помощью ключа `-ti'. Формат строки файла с параметрами меток, выводимых на график в формате, совпадает с вводимым с помощью ключа '-tc' (см. начало этого параграфа). При задании ключа `-sh' будут обрабатываться ключевые слова TIMEWSH и TIMEESH, описывающие выносы рупоров из фокуса и маркер будет сдвинут на соответствующую величину.

    На графиках можно также выводить текст в произвольном месте. Описание этой возможности можно можно прочитать в разделе ``О некоторых ключах программы 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' основного меню. После чего программа спросит:
    new left border ?
    Формат ввода левой границы такой же, как и формат ввода окна просмотра. Если введенная левая граница меньше реальной левой границы записи или больше правой границы записи, то при выходе из этого пункта устанавливается реальная левая граница записи. При выходе из пунктов 'Win' и 'Bound' пользователь автоматически попадает в пункт 'Lst' для продолжения просмотра текущей записи. Выход из пункта 'Lst' осуществляется вводом символа 'q', 'Escape' или нажатие третьей клавиши мышки. В каждом пункте внизу выводится подсказка.

  • Установка текущего интервала на записи

    Кроме описанной выше возможности просмотра записи, пользователь может использовать выбор и установку текущего интервала с помощью мышки или клавишей-стрелок, войдя в пункт основного меню 'Lst'; при этом в нижней части экрана высветится следующее меню:

    use arrows,'>','<'to move;^U:up;^D:down;'Q',MB3: exit
    mark interval:'r'-shift'-'m' or MB1-shift-MB1, MB2-shift-MB2

    Эта подсказка означает следующее:

    1. движение куросора по экрану при работе в этом пункте можно производить с помощью мышки, клавишей-стрелок, символов '<', '>', cntrl-U, cntrl-D;
    2. Отметить интервал для дальнейшей визуализации можно следующими способами:
      • момент начала интервала отмечается вводом символа 'r', момент окончания интервала символом 'm'. После ввода символа 'r' на экране появляется "резинка", которая "растягивается" до следующей требуемой точки.
      • момент начала интервала отмечается вводом символа '1'. На экране после этого появляется вертикальная черта, которую можно перемещать обозначенными в подсказке клавишами или мышкой. Эта черта является первой границей. Установка (ввод с запоминанем положения) границы осуществляется с помощью нажатия клавиши <Enter> или первой клавиши мышки. Вторая граница устанавливается аналогично первой, с тем лишь отличием, что вместо символа '1' вводится символ '2'.
      • Установка границ с помощью мышки. Этот способ подобен предыдущему. Отличие состоит в том, что вместо символа '1' можно производить установку нажатием первой клавиши мышки ( MB1), а второй границы - нажатием второй клавиши мышки ( MB2). При этом первую границу можно установить двойным нажатием MB1, а вторую - двойным нажатием MB2.
    Для запоминания установленных границ необходимо либо ввести символ ' q', либо нажать третью клавишу мышки MB3. Для выхода из данного пункта без запоминания новых границ надо ввести символ ' Escape'. При установке новых границ на экране вывечивается новая картинка, а пользователь оказывается в пункте 'Lst' в режиме 'Listing', выход из которого производится нажатием кнопки MB3 или вводом символа 'q'.


    Работа с курсором

    Под работой с курсором мы понимаем работу в режиме активного курсора - локатора. В программе fgr существует несколько возможностей работы с активным курсором. Это работа с локатором в первом режиме (см. пункт "Одновременный вывод записей на экран"), работа с локатором в режиме первичной обработки данных (существует целый пункт 'Crs' в основном меню), проведение фона при смещении курсора (где линия фона - это оцифрованная траектория движения курсора) и разметка с помощью курсора узлов для вычисления фона посредством сплайнов. Последние две возможности описываются в пункте "Удаление фона".

    После входа в пункт 'Crs' курсор меняет свою форму и цвет и работает в режиме локатора.

    Выход из данного пункта осуществляется нажатием клавиши 'q', клавиши 'Escape' или третьей клавиши мышки.

  • Определение текущего значения положения курсора и измерение расстояний

    Определение текущего значения положения курсора производится таким же образом, как и для первого режима работы программы fgr. Для того, чтобы определить текущее положение курсора, требуется нажать любую незарезервированную клавишу, например, <Enter>, или первую клавишу мышки. В окне появляется текущее положение курсора по оси абсцисс в единицах этой оси (часто секунды времени) от начала данных и значение положения курсора по оси ординат. Курсор двигается по окну с помощью мышки, либо с помощью клавишей-стрелок. При движении курсора с помощью клавишей-стрелок можно увеличивать скорость курсора нажатием клавиши K5, расположенной на правой дополнительной клавиатуре, либо уменьшать нажатием двух клавишей Shift-K5.

    Для измерения расстояний в режиме локатора необходимо подвести курсор к первой требуемой точке и нажать клавишу 'r', после чего включится "растягивающаяся резинка" или режим 'rubber' работы локатора. После этого надо подвести курсор ко второй точке и набрать символ 'm'. В окне появится сообщение о расстояних по осям абсцисс и ординат. Расстояние по оси абсцисс дается в абсолютной шкале в отличие от первого режима работы программы fgr.

  • Оценки дисперсии и чувствительности на участке записи

    Сделаем сначала маленькое замечание. Говоря о дисперсии записи ниже, мы будем иметь ввиду сигму sig, равную корню квадратному из дисперсии. Для оценки дисперсии и чувствительности в режиме локатора в пункте 'Crs' основного меню необходимо подвести курсор к первой требуемой точке и нажать клавишу 'r', после чего включится "растягивающаяся резинка" или режим 'rubber' работы локатора. После этого надо подвести курсор ко второй точке и набрать символ 's' или 't'. Символ 's' используется для оценки сигмы, символ 't' - для оценки чувствительности. После нажатия одной из этих клавишей в окне появляются три оценки дисперсии (или чувствительности): стандартная, трехточечная и оценка AMD (Absolute Median Deviation - оценка по абсолютному медианному отклонению). Оценка производится на интервале оси абсцисс, помеченному этими двумя точками. Интервал по оси ординат не имеет значения. Для оценки дисперсии или чувствительности на всем видимом интервале в данном окне в режиме работы локатора просто нажать 'S' (s-большая) или 'T' (t-большая) без предварительного включения режима "rubber". Чувствительность получается из дисперсии записи делением последней на величину, равную квадратному корню из CDELT1, где CDELT1 - размер пиксела записи в секундах времени. Оценку дисперсии можно также провести не в программе fgr. Например, для оценки дисперсии данных, содержащихся в файле 'file', надо выполнить команду:
    ravr file > file.qq
    В файле 'file.qq' в шапочке появятся новые ключевые слова BSIGMA1 и BSIGMAS. Первое своим значением имеет оценку AMD дисперсии, второе - стандартную оценку дисперсии.

  • Другие возможности при работе с курсором

    В режиме локатора в пункте 'Crs' основного меню существуют и другие возможности, отличные от только что перечисленных.

    1. Например, существует возможность перемещения курсора исключительно по записи. При этом постоянно снимаются текущее положение курсора. Для такого перемещения курсора используются клавиши ''<' и '>' в соответствующих направлениях. Клавиши '+' и '-' в этом случае служат для увеличения и уменьшения текущей скорости движения курсора по записи в два раза. Величину шага при движении по записи можно задавать и с клавиатуры. Для этого необходимо набрать символ 'D'. После нажатия этой клавиши задается вопрос: "step ?". Ввод необходимо производить в единицах оси X. Например, в случае временного ряда - в секундах времени.
    2. Показать текущее значение массива данных. После нажатия клавиши 'W' в окно выдается текущее значение массива данных.
    3. Чистка записи. Используется клавиша 'C'. Значения прямой от исходной точки, помеченной клавишей 'R', до текущей точки присваиваются соответствующим элементам исходного массива. Но не записываются в файл. Для записи в файл необходимо входить в пункт 'Outp' основного меню.
    4. Вычитание фона. Используется клавиша 'В'. Значения прямой от исходной точки, помеченной клавишей 'R', до текущей точки вычитаются из соответствующих элементов исходного массива. Результат в файл не записывается.
    5. Вычисление интеграла под кривой. Используется клавиша 'I'. Границы интеграла по оси абсцисс помечаются клавишами 'R' и 'I'. Вычисление ведется только под кривой записи в этих границах (не под 'резинкой'). Значение интеграла вычисляется как сумма отсчетов, помноженная на шаг записи, и выдается в левом верхнем углу окна.
    6. Поставить на графике в данном месте точку, изменив значение пиксела. К необходимой точке подводится курсор и нажимается клавиша 'p'.
    7. Протоколирование выводимых значений. Чтобы в протокольный файл (имя файла по умолчанию fgr.log; другое имя можно ввести с помощью ключа '-log') заносились значения, выводимые на экран при работе с курсором, необходимо набрать символ 'l'. Отключение режима производится повторным вводом этого символа.


    Удаление фона

    Обычно первой операцией при обработке данных на РАТАН-600 является удаление фона. В программе fgr реализовано несколько возможностей вычисления фона. Вся работа с вычислением фона осуществляется в меню третьего уровня, имеющим своим заглавием пункт 'Bgd' меню второго уровня. Это меню выглядит следующим образом (см. также Fig.1):

    В большинстве случаев для вычисления фона используются внешние программы, запускаемые командой system из fgr. Результат работы опять передается в программу fgr и выводится в графическое окно другим цветом. При желании пользователь может вычесть рассчитанный фон, войдя в пункт 'Sbtr'. Для вывода кривой фона нужно войти в пункт 'Out', где программа спросит имя выходного файла и выведет в него эту кривую.

    Если пользователь хочет, чтобы сглаженная кривая (т.е. кривая фона, а не разность) сохранилась в памяти для дальнейшей работы необходимо войти в пункт 'Put_m'.

  • Нелинейный фон на основе свертки

    Для расчета нелинейного фона используется программа bgd, разработанная В.С.Шергиным (Shergin et al., 1995). В основе этой программы лежит идея разработчика программы об итерационном приближении к некоторой эмпирической кривой фона за счет свертки с весовой функцией, в данном случае - гауссианой. При этом варьируя параметры программы: размер окна вычисления фона, количество итераций и уровень, мы можем изменять и вид вычисляемой кривой. В неграфической моде командная строка выглядит следующем образом:
    bgd -w 30 [-i 4] [-n 0.01] -b < file > file.B
    Здесь файл 'file' - с исходными данными, файл 'file.B' - с рассчитанной кривой фона. В данном примере с помощью ключа '-w' вводится окно 30 сек, с помощью ключа '-i' - количество итераций - 4, с помощью ключа '-n' - уровень шума в единицах BUNIT, если BUNIT=K, то уровень шума в данном примере - 10мК. Ключ '-b' показывает, что в качестве результата выводить вычисленный фон, а не разность по умолчанию. В данном примере в квадратные скобки взяты параметры, которые не являются обязательными при запуске команды (на самом деле, их быть не должно). Подробное описание команды bgd см. в работе (Верходанов и др., 1992), а также в описании bgd(1). При работе в программе fgr для вычисления такого фона нужно войти в первый пункт меню '1_bgd', после чего программа задаст вопрос:
    window for smoothing (t.sec) ?
    Окно вычисления фона задается в единицах оси абсцисс (например, секундах времени) или пикселах записи. В последнем случае перед или после набираемого числа должен быть записан 'p'. По умолчанию программа делает 4 итерации и использует значение AMD оценки для дисперсии как уровень шума. Программа bgd может проводить фон по нулевому уровню, верхнему и нижнему. В последних двух случаях имеются ввиду возможности проведения с огибанием (сглаживанием) верхних пиков и нижних пиков. По умолчанию фон проводится по нулевому уровню. При вводе окна можно задавать также уровни проведения фона. Для этого необходимо в конце строки ввода поставить символ 'l' в случае вычисления фона по нижнему уровню или символ 'h' в случае вычисления фона по верхнему уровню. Если после ввода окна в конце вводимой цифровой последовательности пользователь набрал символ 'i', то программа задает дополнительный вопрос:
    number of iterations [bgd:4,bgdn:5] ?
    Здесь в квадратных скобках указывается число итераций по умолчанию для программы bgd и для программы bgdn, которая будет описана ниже. Количество итераций, уровень шума и уровень проведения фона могут быть также установлены в пункте 'Pars', где имеется меню следующего уровня, и для каждого параметра существует свой пункт.

    Если на вопрос
    window for smoothing (t.sec) ?
    ничего не ответить, а просто нажать <Enter> или первую клавишу мышки, программа никаких действий производить не будет, а выйдет в текущее меню. Вычисленная кривая фона выводится на график другим цветом, причем если подряд выводить несколько кривых, подбирая удовлетворительную, все они будут выводиться разными цветами. Чтобы вычесть рассчитанный фон, необходимо войти в пункт 'Sbtr' текущего меню.

  • Нелинейный фон на основе скользящего среднего

    Для работы с этим фоном нужно войти в пункт меню '2_qb'. Подобный фон идейно ничем не отличается от предыдущего, только вместо свертки с гауссианой мы имеем свертку с прямоугольником, т.е. скользящее среднее. В результате скорость работы увеличивается в несколько раз. Для этой операции используется та же самая программа В.С.Шергина, что и для предыдущего случая, запускаемая с ключом '-q'. В неграфическом режиме строчка будет выглядеть так:

    bgd -w 30 [-i 4] [-n 10] -b -q < file > file.B

    Описание работы с данным фоном полностью совпадает с предыдущим пунктом.

  • Нелинейный фон на основе полиномиальной аппроксимации

    Для работы с этим фоном нужно войти в пункт меню '3_pb'. Подобный фон идейно ничем не отличается от предыдущих, но в качестве взвешивающей и сглаживающей функции используется полином. Для этой операции используется та же самая программа В.С.Шергина, что и для предыдущих случая, запускаемая с ключом '-q'. В неграфическом режиме строчка будет выглядеть так:

    bgd -w 30 [-i 4] [-n 10] -b -pN < file > file.B,

    где вместо символа N для ключа ' -p' (пробела между ключом и параметром нет) должно стоять или не стоять целое число, определяющее степень полинома. Если число отсутствует, то то по умолчанию берется полином третьей степени. Описание работы с данным фоном такое же, как и для предыдущих пунктов. С одним добавлением: если при вводе окна использовался символ ' d' в конце вводимой строки, то программа сделает запрос:
    power of polynom [%d] ?
    где вместо последовательности ' %d' будет стоять степень полинома по умолчанию. Для ответа на вопрос требуется либо ввести желаемую степень полинома, либо оставить степень по умолчанию, введя единственный код <Enter>.

    Количество итераций, степень полинома и уровень проведения кривой фона (нулевой ' z', приподнятый ' u' или заниженный ' l') могут быть установлены в пункте 'Pars', где имеется меню следующего уровня, и для каждого параметра существует свой пункт.

  • Нелинейный фон на основе робастной оценки среднего

    Для работы с этим фоном нужно войти в пункт меню '4_bn', либо в пункт '5_bn'. В этом пункте работает программа bgdn, разработанная Б.Л.Ерухимовым. Принципы работы программы можно посмотреть в работе Ерухимова и др. (1990). Коротко скажем, что в заданном скользящем окне оценивается среднее значение методом Ходжеса-Леммана (Ерухимов и др., 1988), и на каждой следующей итерации происходит домножение на специфическую функцию, описанную в (Ерухимов и др., 1990). В результате происходит "выравнивание" фона в данном окне. Пункты '4_bn' и '5_bn' отличаются правилами обработки граничных значений. При работе в пункте '4_bn' программа (Б.Л.Ерухимов) предполагает, что на концах записи у нас имеются объекты и проводит фон в соответствии с этим предположением. Верходановым добавлена возможность расчета фона (пункт '5_bn') без такого предположения.

    В неграфической моде командная строка выглядит следующим образом:
    bgd -w 30 [-i 5] -b < file > file.B
    Здесь файл 'file' - с исходными данными, файл 'file.B' - с рассчитанной кривой фона. В данном примере с помощью ключа '-w' вводится окно 30 сек, с помощью ключа '-i' - количество итераций - 5. Ключ '-b' показывает, что в качестве результата выводить вычисленный фон, а не разность по умолчанию. Квадратные скобки показывают параметры, которые не являются обязательными при запуске команды. Подробное описание команды bgdn см. в работе (Верходанов и др., 1992), а также в описании bgdn(1).

    После входа в один из пунктов '4_bn' или '5_bn' программа задаст вопрос:
    window for smoothing (t.sec) ?
    Окно вычисления фона задается в единицах оси абсцисс (например, секундах времени) или пикселах записи. В последнем случае перед или после набираемого числа должен быть записан 'p'. По умолчанию программа делает 5 итераций.

    Количество итераций для вычисления фона может быть установлено в пункте 'Pars', где имеется меню следующего уровня, и для каждого параметра существует свой пункт.

    Если на заданный вопрос ничего не ответить, а просто нажать <Enter> или первую клавишу мышки, программа никаких действий производить не будет, а выйдет в текущее меню.

    Если после ввода окна в конце вводимой цифровой последовательности пользователь набрал символ 'i', то программа задает дополнительный вопрос о количестве итераций:
    number of iterations [bgd:4,bgdn:5] ?

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

    Чтобы вычесть рассчитанный фон, необходимо войти в пункт 'Sbtr' текущего меню.

    Если пользователь хочет, чтобы сглаженная кривая (т.е. кривая фона, а не разность) сохранилась в памяти для дальнейшей работы необходимо войти в пункт ' Put_m'.

  • Тренд

    В программе fgr существует возможность проведения полиномиального, параболического или линейного тренда. Для этого используется программа trend системы обработки данных FADPS. Чтобы запустить ее в программе fgr, нужно войти в пункт 'Tr' текущего меню. Внизу окна высветится подсказка:
    format:[Integer[{adlp}]],[{DLP}] (d,D-polynom, l,L-line, p,P-parabola)
    означающая формат ввода: целое число и возможно один из символов 'a','d','l','p' вслед за числом без пробела или один из символов 'D','L','P'. При этом символ 'a' означает простое осреднение на краях записи, символы 'd' и 'D' - признаки полинома, символы 'l' и 'L' - признаки линии, а символы 'p' и 'P' - признаки параболы.

    Под подсказкой вопрос о количестве граничных точек с каждой стороны:
    number of bound points [5] ?
    По умолчанию с обоих концов используется по 5 точек, по которым вычисляется медиана, и после этого проводится линейный тренд.

    Имеется возможность менять способ вписывания прямой. Если после вводимого числа набрать один из символов 'a', 'l' или 'L', то программа соответственно вычисляет вместо медианных точек средние значения для краевых точек (случай 'a'), используя краевые точки вычисляет аппроксимационную прямую ( 'l') или вычисляет аппроксимационную прямую по всем точкам записи (случай 'L'). В последнем случае ввод числа не обязателен. Если после вводимого числа набрать один из символов 'p', 'P', 'd' или 'D', то программа будет вписывать полиномиальную аппроксимационную кривую тренда. В случае 'p' это будет парабола, которая вычисляется по краевым точкам, в случае 'P' это будет парабола, которая вычисляется по всем точкам записи, в случаях 'd' и 'D' полином, который вычисляется по краевым точкам записи ('d'), либо по всей записи. Перед вычислением полинома программа задает вопрос о его степени:
    degree of polynom [3] ?
    Тренд вычисляется при наличии в системе программы trend. См. также описание trend(1) .

  • Фон, проводимый пользователем вручную с помощью мышки

    Если пользователя не удовлетворяет автоматическое проведение фона, то имеется возможность проведения фона ручным способом, как карандашом на бумаге. Для этого используется, разработанная автором функция XLocator (Верходанов, 1993), позволяющая работать с активным курсором. Движение курсора производится с помощью мышки или клавишей-стрелок. Первое нажатие клавиши возврата каретки или первой клавиши мышки включает карандаш; второе нажатие отключает. При движении, курсор оставляет траекторию, которая сразу оцифровывается и заносится в буфер.

    При работе в этом режиме первое нажатие клавиши <Enter> или нажатие и отжатие первой клавиши мышки включает режим запоминания; второе нажатие отключает. Траектория, нарисованная в том же интервале оси абсцисс, затирает предыдущее состояние массива и записывает новое. В нетронутых значениях буфера остается 0.

    Кривая фона выводится в графическое окно отличным от записи цветом.

    Выход производится нажатием клавиш 'Esc', 'q' или 2-ой клавиши мышки.

  • Сплайны

    Существует возможность полуавтоматического проведения фона, когда пользователь помечает точки (узлы), через которые должна быть проведена кривая фона. Кривая проводится с помощью сплайнов. Для вычисления фона таким образом пользователь должен войти в пункт 'Spl', после чего пометить требуемые точки, подводя к ним курсор и нажимая первую клавишу мышки или <Enter>. На экране будут появляться кружки вокруг помеченных узлов.

    Если пользователь хочет отменить отмеченный узел, надо подвести к нему курсор и нажать клавишу 'U' (unselect) или вторую клавишу мышки. При этом цвет кружка вокруг отмененного узла станет такой же, как и цвет выведенной записи.

    Первый и последний узлы уже отмечены программой fgr. Они вычисляются как медианы первых и последних 5 точек соответственно.

    Выход из режима ввода узлов производится после нажатия клавиши 'q' или третьей клавиши мышки.

    Сразу после выхода управление передается программе fspline, которая по полученным узлам проводит кривую фона.


    Оценка параметров источников

    Оценка параметров источников является во многих задачах последним шагом обработки. Для одномерных временных рядов оцениваются три основных параметра: положение, амплитуда и полуширина. Иногда используется также интеграл под кривой прохождения.

    Оценка параметров производится с помощью аппроксимации кривой прохождения источника через диаграмму направленности какой-либо известной функцией. В качестве такой функции очень часто используется гауссиана. Кроме гауссианы программа fgr позволяет вписывать диаграмму направленности. А так же в случае, когда пользователя ничего не удовлетворяет, просто "в лоб" измерять параметры источника.

  • Оценка параметров с помощью курсора

    Оценка параметров источника с помощью курсора и другие операции подробно описываются в параграфе "Работа с курсором". Здесь же приведем краткое резюме. Оценку параметров источника можно произвести, войдя в пункт "Crs" основного меню. Имеются следующие возможности:

  • Аппроксимация набором гауссиан

    Как уже говорилось, аппроксимация кривой прохождения объекта через диаграмму направленности телескопа обычно производиться гауссианой. В программе fgr для аппроксимации запускается программа gauss стандартной системы обработки, созданная на основе программы и алгоритма, разработанного Л.Н.Ивановым (1979). Это программа производит не просто аппроксимацию кривой прохождения с помощью гауссианы, а делает Гаусс-анализ записи, т.е. работает одновременно как обнаружитель источников, так и оцениватель параметров. Если для программы появляется возможность разложить запись на несколько составляющих, т.е. аппроксимировать набором гауссиан, она это делает. В неграфическом режиме командная строка выглядит так:
    gauss -n 50 +g file.gaus +P < file > file.par
    Здесь ключ -n задает - задает нижний уровень обнаружения источника в единицах измерения значений данных, содержащихся в файле 'file'. В случае, когда единицы измерения Кельвины или Янские, нижний уровень задается в мК или мЯн. Так для данных первого облучателя РАТАН-600, когда BUNIT=K, параметры '-n 50' задают минимальную амплитуду искомых объектов на уровне 50 мК. С помощью ключа '+g' задается имя файла (в данном случае, file.gaus), в который будет записана аппроксимационная кривая. Ключ '+P' показывает, что в стандартный вывод будет выдана таблица параметров вписанных гауссиан. Стандартный вывод в данном примере перенаправляется в файл file.par. Подробнее описание программы gauss можно посмотреть в справочном руководстве gauss(1). При работе в графическом режиме для аппроксимации кривой набором гауссиан нужно войти в пункт 'Gauss' меню второго уровня, после чего программа задает вопрос:
    если по оси ординат отложены градусы Кельвина
    noise level (mK) ?
    если по оси ординат отложены другие единицы, то
    noise level (...[s,n,t]) ?
    где вместо ... подставятся соответствующие единицы. Фактически, уровень шума здесь означает наименьшую амплитуду, ниже которой аппроксимация набором гауссиан происходить не будет. Если при вводе уровня шума к числу дописать символ 's', то программа будет вписывать гауссианы, разбивая запись на отрезки по 240 сек с пересечением по 30 сек (аналогично ключу -s программы gauss). Если при вводе уровня шума к числу дописать символ 'n', то перед запуском подпрограммы будет производится нормировка записи на максимальное значение, что бывает удобно при очень больших числах (аналогично ключу -N программы gauss). После вычисления гауссиан программа на текущее изображение накладывает картинку другого цвета с результатами аппроксимации, после чего задает вопрос:
    output gaussian curve ( y/n,N [n] ) ?
    При утвердительном ответе программа запрашивает имя файла вывода, предлагая по умолчанию fgr.data. При выводе формируется F-файл с результатами Гаусс-анализа. Параметры рассчитанных гауссиан записывается в текстовый файл fgr.log, при этом, если файл уже существует, запись производится в конец файла. Запись параметров гауссиан в файл fgr.log можно отменить, если в качестве ответа на предыдущий вопрос ввести символ 'N'. При записи в файл формируется стандартная таблица параметров гауссиан с шапочкой: положение, амплитуда, полуширина, интеграл. В шапочке кроме заголовков полей присутствуют также имя объекта, длина волны и дата наблюдения. Если при ответе на вопрос:
    noise level (...[s,n,t]) ?
    после ввода уровня был набран символ ' t', то программа формирует сортированную таблицу параметров вписанных гауссиан в следующем порядке: положение, амплитуда, полуширина, интеграл под кривой, дата наблюдения. При чем в случае "beam switching" для отрицательных амплитуд значение положения будет отрицательным, а амплитуда положительной. Это сделано для разделения результатов при сортировке. Установку вывода в таком табличном виде можно задать также и с помощью переменной среды FGRLOG,. Для оболочки csh это будет выглядеть так:

    setenv FGRLOG sort

    Для оболочки sh:

    FGRLOG=sort; export FGRLOG

    В простейшем случае для разовой установки можно использовать следующую команду:

    FGRLOG=sort fgr -p file

    Для вывода такой таблицы в системе должны присутствовать программы 'sort' и 'mv'. Для сортировки по определенному столбцу можно задать также номер столбца в соответствии с правилами команды 'sort' (см. описание sort(1)), например:

    FGRLOG="sort +4.3"

    Если значение переменной FGRLOG=nosort, то создаваемый протокольный файл (в том же стиле, что и для значения FGRLOG=sort), сортироваться программой ' sort' не будет.

    Гаусс-аппроксимация вычисляется также для режима 'beam switching' при этом программа анализирует ключевое слово RCV-MODE шапочки F-файла (см. подробнее описания ffile(5) и gauss(1)).

  • Аппроксимация набором диаграмм

    Для кривых прохождения источников, наблюдаемых с большим выносом из фокуса, аппроксимация гауссианами не всегда удовлетворяет пользователя из-за несоответствия кривых прохождения гауссианам. Поэтому в программе fgr предусмотрена возможность вписывания рассчитываемых диаграмм направленности, либо табличных функций, заданных пользователем. Для этого используется программа beamap системы обработки данных. Эта программа позволяет вписывать в кривую прохождения источника, аппаратную функцию, ряд значений которой записан в F-файле. Эта же программа позволяет запускать программу bp1 вычислений диаграммы направленности РАТАН-600. Результат вычислений диаграммы записывается в F-файл и передается программе beamap. Подробнее см. описание beamap(1).

    При работе в графическом режиме в программе fgr после входа пользователя в пункт 'Beam_ap' меню 'Math' главного меню программа задает вопрос:
    name of F-file with beam pattern (default) ?
    Если пользователь не вводит имени файла, то программа ищет в текущем каталоге файл с диаграммой, созданный предыдущим вызовом программы beamap с требуемыми для данного случая характеристиками. Если такого файла нет, то запускается программа bp1 для расчета одномерной диаграммы направленности РАТАН-600. При этом происходит проверка на наличие в текущем каталоге файла с константами РАТАН-600 ratan.const для расчета диаграммы направленности. При его отсутствии запускается программа rat, которая создает его по умолчанию.

    Дальше программа fgr спрашивает:
    если по оси ординат отложены градусы Кельвина
    noise level (mK) ?
    если по оси ординат отложены другие единицы, то
    noise level (...) ?
    где вместо ... подставятся соответствующие единицы.
    Фактически, уровень шума здесь означает наименьшую амплитуду, ниже которой аппроксимация набором диаграмм происходить не будет (ср. описание аппроксимацией набором гауссиан). Если после задания этого вопроса сразу набрать <Enter>, то вычислений производиться не будет, и пользователь сразу попадет в исходное меню.

    Для аппроксимации набором диаграмм необходимо наличие в системе программы вписывания диаграмм beamap (см. подробнее описание beamap(1)), расчета диаграммы направленности РАТАН--600 bp1 (см. bp1(1)), работы с базой данных констант РАТАН-600 rat (см. rat(1)).

    После вписывания диаграмм программа на текущее изображение накладывает картинку другого цвета с результатами аппроксимации, после чего задает вопрос :
    output output beam fitting curve ( y/n,N [n] ) ?
    При утвердительном ответе программа запрашивает имя файла вывода, предлагая по умолчанию fgr.data. При выводе формируется F-файл с результатами вписывания. Параметры вписанных диаграмм записывается в текстовый файл fgr.log, при этом, если файл уже существует, запись производится в конец файла. Запись параметров диаграмм в файл fgr.log можно отменить, если в качестве ответа на предыдущий вопрос ввести символ 'N'.

    Созданные в процессе работы программы beamap, которая вызывалась программой fgr, файлы с диаграммой и базой данных РАТАН-600 удаляются по умолчанию. Для того чтобы сохранить эти файлы, надо перед вызовом программы fgr выполнить следующую команду для оболочки csh:

    setenv BEAMFIT KEEP

    для оболочки sh:

    BEAMFIT=KEEP; export BEAMFIT

  • Расчет энергетического Фурье-спектра

    Расчет энергетического Фурье-спектра мы также поместили в параграф, описывающий оценку параметров, так как мы оцениваем пространственно-частотную характеристику имеющейся записи. Для того чтобы рассчитать энергетический спектр Фурье в командой строке, надо использовать программу В.Н.Черненкова four:
    four< file > file.F
    Файл file.F содержит данные, являющиеся пространственно-частотной характеристикой данных из файла file. Программа использует алгоритм быстрого преобразования Фурье с умножением на окно Блэкмана-Харриса и добавлением нулевых отсчетов до количества, кратного степени двух. Подробнее см. описание four(1).

    В графическом виде для запуска Фурье-фильтра необходимо пройти следующий путь:

    После входа в меню программа вычисляет Фурье-преобразование и выводит график мощностного спектра Фурье или пространственно-частотной характеристики. Результат можно вывести в F-файл, войдя в пункт 'Out' текущего меню.

    В этом же меню можно посмотреть и распределение фазы Фурье-преобразования, войдя в пункт 'Phase' текущего меню.


    Скалярные и векторные операции

    Напомним, что под вектором в данном случае мы понимаем одномерный массив данных, состоящий из равноотдаленных измерений. Под скалярными операциями мы понимаем такие операции, как домножение вектора на число, сложение вектора с числом, возведение вектора в степень и т.п. Под векторными операциями мы понимаем такие операции, как сложение и осреднение векторов, перемножение векторов, сжатие, свертка и корреляция. Ввиду важности таких операций, как осреднение, свертка и корреляция, они вынесены в отдельный пункт.

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

    Для выполнения многих функций требуется наличие в системе программы fcalc (калькулятор для F-файлов) стандартной обработки данных, разработанной В.С.Шергиным. Подробнее см. описание fcalc(1).

  • Скалярные операции

    Скалярные операции в командной строке выглядят следующим образом:
    fcalc "file*#N"> file.n - умножение данных файла
    на число N с записью в файл file.n
    fcalc "file%#N" > file.n - деление
    fcalc "file+#N" > file.n - сложение
    fcalc "file-#N" > file.n - вычитание
    fcalc "file^#N" > file.n - возведение в степень
    Для работы в графическом режиме требуются войти в пункт меню 'Scalar' по следующему пути:

    Меню для скалярных операций выглядит следующим образом:

    При входе в каждый из пунктов 'Add', 'Subtr', 'Multip', 'Divis', Power' программа fgr сделает запрос константы, которую требуется соответственно добавить, вычесть, умножить разделить или возвести в степень, порядок которой равен константе. При сложении и вычитании в случае, когда BUNIT=K или BUNIT=JY, константа задается соответственно в мК или мЯн.

    Входя в пункт 'Norm', мы делаем нормировку текущего интервала записи на максимальное значение в этом интервале. Нормировку можно также произвести, набрав символ 'n' или строчку 'max' вместо константы в пункте 'Divis'.

    Результат вычислений можно вывести в F-файл, войдя в пункт 'Out', в котором fgr предварительно спросит имя выходного файла.

    Для того, чтобы результат вычислений остался в памяти после выхода из текущего меню, надо войти в пункт 'Put_m'.

  • Векторные операции

    Векторные операции в командной строке выглядят следующим образом:
    fcalc "file1+file2+file3" > file.n - сложение данных файлов file1, file2 и file3 с записью результата в файл file.n.
    fcalc "file1-file2" > file.n - вычитание,
    fcalc "file1*fil2" > file.n - умножение и т.п. Для работы в графическом режиме требуются войти в пункт меню 'Vector' по следующему пути:

    Меню для векторных операций выглядит следующим образом:

  • Осреднение

    Первые четыре пункта текущего меню связаны между собой. При входе в пункты 'Aver', 'R.aver' и 'Sum', дающие соответственно простое осреднение, робастное осреднение и простое суммирование, программа fgr использует одну и ту же команду aver, написанную на языке sh (shell). и оперирующую другими командами системы обработки. Пункт 'Key' позволяет устанавливать режимы для программы aver.

    В неграфическом режиме запуск программы будет выглядеть следующим образом:

    1. простое осреднение файлов f1, f2, ..., fn, результат записывается в файл f.r:
      aver -n f.r f1 f2 ... fn В этом случае программа aver работает с программой В.С.Шергина fcalc. Ключ '-n' показывает, что следующий параметр командной строки.
    2. робастное осреднение файлов f1, f2, ..., fn:
      aver -n f.r -r f1 f2 ... fn
      В этом случае программа aver работает с программой Б.Л.Ерухимова ravr. Ключ '-r' включает робастное осреднение.
    3. Суммирование файлов f1, f2, ..., fn без вычитания фона:
      aver -n f.r -а -b f1 f2 ... fn
      Команда работает с программой fcalc. Ключ '-a' показывает, что требуется простое осреднение; ключ '-b' отключает режим вычитания фона, установленный по умолчанию.

    В графическом режиме при входе в пункты 'Aver', 'R.aver', 'Sum' программа задает вопрос об имени файла:
    name of file (name,^O) ?
    Можно ввести либо имя, либо изменить режим ввода файлов. При вводе кода ^O ( cntrl-O) и последующего нажатия <Enter> программа fgr включает режим визуализации вводимого файла и повторяет вопрос (см. следующий абзац).

    При осреднении текущий файл программой уже учтен. После ввода имени программа проверяет наличие этого файла на диске и после поиска файла повторяет вопрос об имени файла, выдавая сообщение о количестве введенных имен файлов:
    (you have ... files) next one ? (name, ^G,^L,^N,^O)
    Вместо строки '...' будет выведено текущее количество введенных имен файлов, включая последнее. О командах ^G,^L,^N,^O см. ниже.

    Имя name может включать в себя метасимволы языка shell '*', '?','[' и ']' (см. подробнее описание sh(1) ), позволяющие вводить групповые имена. Подстановку соответствующих имен файлов производит команда 'ls', которой в этом случае передается управление. Существует возможность просмотра списка имен файлов и содержащихся в них данных (последних - в графическом режиме).

    При вводе кода ^L (cntrl-L) вместо имени файла программа выходит из графического режима и передает управление системным утилитам 'ls' и 'more' для просмотра списка введенных имен (на самом деле исполняется команда 'ls -C список_имен_файлов | more'). При завершении работы этой команды программа fgr переходит в графический режим и повторяет предыдущий вопрос.

    При вводе кода ^G (cntrl-G) и нажатии <Enter> программа передает управление программе fgfew (см. fgfew(1)), которая позволяет одновременно разрисовывать данные файлов друг под другом. В данном случае программа выводит по 6 картинок и для перехода к следующей серии необходимо нажать <Enter>.

    При вводе кода ^G (cntrl-G) и нажатии <Enter> пользователь может отменить ввод последнего имени файла (только если оно не введено с помощью метасимволов языка shell. См. выше).

    Последовательность ^O (cntrl-O) и <Enter> переключает режим визуализации/невизуализации (см.выше) данных вводимых файлов.

    Если файл не существует в данном каталоге, программа выдаст сообщение:
    This file doesn't exist ( этот файл не существует) .
    Для окончания ввода имен файлов на запрос : "name of file ?" следует нажать клавишу возврата каретки. При осреднении ( пункты 'Aver' и 'R.aver' ) программа может либо вычитать, либо не вычитать фон в зависимости от установки ключа в пункте 'Key'.

    В пункте 'Key' пользователь может установить правило вычисления осреднения. При входе в этот пункт на экране высвечиваются подсказка и вопрос :
    keys:-1-av:bgd_off,rav:bgd_on;0-bgd subtr.off;1-bgd subtr.on;current=..
    key (current) ?
    что означает :

    Далее программа запрашивает новое значение ключа, предлагая по умолчанию текущее.

    Если пользователь работает с окном, не равным по длине всему файлу, то при осреднении и суммировании будет запускаться программа fcut, устанавливая для суммируемых файлов те же границы, что и у текущего окна.

    Для того, чтобы вывести полученный результат в F-файл, требуется войти в пункт 'Out'; а при необходимости дальнейшей работы с полученными данными без загрузки выведенного файла - записать результат в буфер, войдя в пункт 'Put_m'.

  • Другие векторные операции

    В текущем меню еще имеются пункты 'Diff', 'Mult' и 'Compr', позволяющие соответственно вычитать, перемножать и сжимать вектора данных, хранящиеся в F-файлах.

    При входе в пункты 'Diff' и 'Mult' программа запросит у пользователя имя другого файла, а при входе в пункт b'Compr' - коэффициент сжатия. Для сжатия используется программа, разработанная Б.Л.Ерухимовым, cmprs.

    Результат сжатия в отличие от разности и произведения нельзя загрузить в память для продолжения работы, а можно только вывести в файл и потом загрузить в fgr, т.к. после сжатия меняется размерность массива.

  • Свертка и корреляция

    x Свертка с аппаратной функцией как оптимизирующий фильтр довольно часто ипользуется при обработке данных. Она позволяет также оценивать положение и плотность потока наблюдаемого источника по максимуму кривой свертки при соответствующей нормировке. Для вычисления свертки данных из файла file в командной строке нужно набрать следующую команду:
    fconvl -b file.bp < file > file.cv
    Аппаратная функция из файла file.bp вводится с помощью ключа '-b'. Результат выводится в файл file.cv. Подробнее см. описание fconvl(1) .

    Вычислить свертку в программе fgr можно, пройдя через путь:

    При этом программа задает вопрос :
    name of file with pattern?
    После ввода имени файла с аппаратной функцией программа производит свертку и выводит результат в окно.

    Для расчета кросс-корреляции двух записей нужно войти в пункт 'Cross-cor' текущего меню (полный путь):

    Тогда программа задаст вопрос :
    name of file ?
    После ввода имени файла программа вычисляет кросс-корреляцию и выводит картинку с результатом, затирая текущее изображение.

    Для описанных операций в системе должна присутствовать программа fconvl.

    При входе в пункт 'Put_m' программа загружает результат в память, старый массив в памяти при этом затирается.

    При входе в пункт 'Out' программа выводит результат в F-файл, предварительно задавая вопрос:
    filename ? (fgr.data) .

  • Функции

    В программе fgr имеется возможность вычислять функции от каждого элемента массива. Для этого нужно войти в пункт functions по пути:


    После чего высветится следующее меню:

    Здесь имя каждого пункта обозначает имя соответствующей математической функции.

    При входе в пункт 'Lg' (вычисление логарифма с выравниванием по минимуму) из каждого элемента массива вычитается минимальное значение этого массива, добавляется единица и после этого берется десятичный логарифм.

    Для работы со всеми этими пунктами необходимо наличие в системе программы fcalc (автор В.С.Шергин).

    В командной строке в неграфической моде вычисление, например, синуса для данных файла file с выводом в файл file.sin будет выглядеть так:
    fcalc 'file{sin}' > file.sin


    Запуск внешних фильтров

    Для того, чтобы эта система была открытой, пользователю предоставляется возможность запускать свои собственные программы-фильтры для текущей записи из графического окна программы fgr, предоставляя последней возможность визуализировать результат. Программа-фильтр должна быть написана таким образом, что бы она считывала данные, записанные в F-формате из стандартного входа, и выдавала результат также в F-формате в стандартный выход.

    Для запуска внешнего фильтра нужно войти в пункт 'Filt' меню второго уровня. При этом программа сделает запрос об имени программы-фильтра:
    name of filter ?
    Имя программы можно набирать со всеми ключами.

    После выполнения программы на очищенный экран выдается рисунок с результатом работы и задается вопрос:
    output result (y/n [y]) ?
    При утвердительном ответе программа запрашивает имя файла вывода, предлагая по умолчанию fgr.data :
    filename ? (fgr.data).
    После ввода имени файла программа создает F-файл с таким именем. Во время работы фильтра при отсутствии программы-фильтра в системе, при ошибке во время вычисления или в случае, когда пользователем был послан сигнал прерывания с клавиатуры терминала, программа-фильтр не запускается или прерывает свою работу, выдавая при этом на экран сообщение:
    I can't execute this command

    Если перед именем программы-фильтра стоит символ '+', то новая картинка накладывается на текущую картинку, масштаб при этом не пересчитывается.

    Обновить картинку на экране можно, войдя в пункт 'Exit'.

  • Гистограмма распределения отсчетов

    Одним из наиболее часто используемых фильтров является программа gist для построения распределения отсчетов. Для запуска ее достаточно набрать строку 'gist' как имя фильтра.

    При запуске в командной строке надо набрать следующее:
    gist < file > file.gist
    Здесь в F-файле file содержатся исходные данные, а F-файле file.gist - данные, содержащие распределение отсчетов. Более подробное описание, а также описание всех ключей программы gist см. в gist(1).

    Программа fgr выводит пикселы, соединяя их простой ломаной. Для вывода гистограммы обычно используют "ступенчатую" ломанную. Для этого у программы fgr используют ключ '-G':
    fgr -G file.gist

  • Список доступных программ-фильтров

    Ниже приводится список доступных на настоящий момент qпрограмм-фильтров. Полное описание каждой программы можно посмотреть в справочном руководстве, например, программы gist в gist(1).
    allan - расчет трехточечной дисперсии шумов и полусумм на записи,
    beamap - аппроксимация данных F-файлов набором диаграмм,
    bgd - вычисление фона на базе свертки и скользящего среднего,
    bgdn - вычисление фона на базе функции Б.Л.Ерухимова,
    bsw - вычитание файла из файла со сдвигом (для beam switching ),
    cmprs - робастное сжатие данных F-файлов,
    deriv - вычисление производной,
    fconvl - расчет одномерной свертки,
    fcut - распечатка и обрезание F-файлов с одномерными данными,
    four - расчет энергетического спектра Фурье,
    fshift - сдвиг данных F-файла c интерполяцией,
    fsim - симметрирование данных F-файлов,
    fspline - проведение сплайнов по заданным узлам,
    gist - вычисление гистограммы отсчетов,
    intrpl - интерполяция данных F-файлов методом Ньютона,
    smooth - сглаживание данных по 5 точкам методом Лагранжа,
    trend - вычисление и вычитание линейного или полиномиального тренда.


    Ввод и вывод данных

    Программа fgr работает только с данными, записанными в F-формате. Однако существуют возможности прочтения и работы с данными, записанными в других форматах. Для этого используются фильтры стандартной системы обработки данных на РАТАН-600. Примеры см. ниже.

  • Ввод и вывод данных, записанных в F-формате

    Имена F-файлов для ввода задаются как список параметров в командной строке fgr. После чего программа загружает их последовательно один за другим.

    В третьем режиме работы программы существует возможность ввода и загрузки данных из меню. Для этого надо войти в пункт 'Inp' основного меню, и программа задаст вопрос:
    filename ?
    После ввода имени программа загружает данные соответствующего файла в память и перерисовывает картинку.

    Если вместо имени файла набрать код '^L' (cntrl-L) или символ '*', то программа загружает на экран список файлов текущего каталога и позволяет отмечать требуемый файл нажатием символа 'y', клавиши <Enter> или первой клавиши мышки. Второе нажатие отменяет выбранный файл. Движение совершается с помощью мышки или клавишей-стрелок. Выход из этого режима производится нажатием клавишей 'q', 'Esc' или третьей клавиши-мышки.

    Режим выбора из списка реализован, начиная с версии fgr 2.1.

    Вывод данных в F-файл из программы fgr можно осуществить практически с любого уровня меню. Но вывод всей записи, а не только текущего интервала, можно сделать войдя в пункт 'Outp' главного меню. При этом программа высвечивает новое меню:

    где соответствующие пункты дают:
    Whole? - вывод всего файла,
    Cur_int - вывод текущего окна в отдельный файл,
    Return - возврат в исходное меню.
    Если требуется вывод всего файла, то задается вопрос:
    filename ? (....) ,
    где в скобках по умолчанию - имя текущего файла. Если нужен вывод только данного интервала, то в скобках имя файла по умолчанию
    filename ? (fgr.data)

    Выдача данных в программе fgr (например, запись результата вычисления фона или вырезание окна из F-файла и запись его в отдельный F-файл) производится по умолчанию в том же формате записи (плавающий, целый и т.п.), в котором записаны и исходные данные F-файла. Изменить формат вывода можно, присвоив переменной среды BITPIX значение FLOAT (плавающий формат), LONG (4-байтовый целый), SHORT (2-байтовый целый) или BYTE (1-байтовый целый). Например, если пользователь находится в оболочке csh (C-shell) и хочет сделать по умолчанию вывод данных F-файла в плавающем формате, необходимо перед запуском программы fgr выполнить следующую команду:

    setenv BITPIX FLOAT

    Для оболочки sh необходимо выполнить следующие команды:

    BITPIX=FLOAT; export BITPIX

  • Перекодировка R-файлов в F-формат

    Старая система регистрации (Витковский и др., 1989) и архивизации (Кононов, Евангели, 1991), работающие в системах NTS и RT-11, записывают и хранят данные в R-формате (Витковский, 1990). Для того, чтобы осуществлять обработку этих данных на новых компьютерах О.П.Лихваном была разработана программа movrf перекодировки из R-формата в F-формат (см. описание movrf(1)). Командная строка выглядит следующим образом:
    movrf r1 r2 ... rN cat
    Здесь команда movrf совершает перекодировку R-файлов r1, r2, ..., rn в F-формат и записывает их под теми же именами в каталог с именем cat.

  • Перекодировка FITS-файлов в F-формат

    FITS-файлы можно перекодировать в F-формат с помощью фильтра fitstof. Заметим, что программа fgr работает с одномерными данными.

    Командная строка выглядит следующим образом:
    fitstof < file.fits > file.ff где file.fits - входной FITS-файл, а file.ff - выходной F-файл.

    Если нам требуется перекодировать список, то можно создать командный файл, например:

    LIST="f1 f2 ... fn"
    for i in $LIST
    do
    fitstof < $i > $i.ff
    done

    Здесь переменная LIST содержит список FITS-файлов, и после перекодировки соответствующие F-файлы будут иметь расширение '.ff'. Ключевые слова HISTORY и COMMENT после перекодировки не сохраняются.

  • Перекодировка RFLEX-файлов в F-формат

    RFLEX-формат (Верходанов и др., 1994) является детищем FLEX-формата (Кононов, Липовецкий, 1994) и является FITS-подобным (Уэллс и др., 1981), т.е. как и F-формат содержит ключевые слова, их значения, а также двоичные данные.

    В настоящее время он принят как формат, описывающий многоканальные данные в новой системе регистрации на РАТАН-600 . Перекодировка данных осуществляется с помощью программы fl2f следующей командной строкой:
    fl2f file
    Здесь файл file, содержит данные, записанные в RFLEX-формате, после выполнения этой программы в текущем каталоге появятся файлы с именами типа file.N, где N - это номер канала.

  • Перекодировка F-файлов в FITS-формат

    F-файлы можно перекодировать в FITS-формат с помощью фильтра ftofits.

    Командная строка выглядит следующим образом:
    ftofits < file.ff > file.fits
    где file.ff - входной F-файл, а file.fits - выходной FITS-файл.

  • Перекодировка F-файлов в RFLEX-формат

    F-файлы можно перекодировать в RFLEX-формат с помощью программы fl2f. Командная строка выглядит следующим образом:
    fl2f file.list [-o outputfile]
    где file.list - это файл, в котором содержатся имена F-файлов для объединения в RFLEX. Имя выходного RFLEX-файла образуется автоматически по правилам описанным в (Верходанов и др., 1994). Однако его можно задать с помощью ключа '-o'. Подробнее см. описание fl2f(1).

  • Ввод данных, записанных в ASCII кодах

    Система обработки данных FADPS позволяет вводить данные, записанные в ASCII кодах. Для этого используется программа fpatt (см. описание fpatt(1)). При этом файл с ASCII данными может иметь F-шапочку, а может и не иметь.

    Программа fpatt может работать как в диалоговом, так и в командном режимах.
    При работе в диалоговом режиме набирается следующая строка:
    fpatt > file.ff
    После запуска программа высветит меню, два пункта из которого такие:

    file of pattern (7)
    ASCII file with F-head (F)

    Если наберем символ '7', то мы пойдем по пути ввода ASCII данных без F-шапочки. Тогда программа кроме имени файла с этими ASCII данными, также спросит шаг между точками. Длину файла (количество пикселов) она определяет сама.

    Во втором случае, если мы наберем 'F', программа спросит только имя файла с данными. Для ввода в этом случае можно использовать так же ASCII файл, полученный с помощью программы fcut и потом, например, отредактированный.

    Величины для шапочки в первом случае будут установлены по умолчанию CRVAL1=0, CTYPE1=TIME, BUNIT=K. Все эти величины можно установить и в командной строке:
    fpatt -7 -f qq -CRVAL1 2.3 -CTYPE1 ANG -CDELT1 0.7 -BUNIT JY > file.ff
    Здесь ключ '-7' показывает, что используется пункт 7 меню, ключ '-f' показывает, что следующий за ним параметр 'qq' - имя файла с ASCII данными, величина CRVAL1 в F-шапочке будет равна 2.3, CTYPE1=ANG, CDELT1=0.7, BUNIT=JY. Выходной F-файл будет иметь имя file.ff.

    Можно привести такой пример:
    fpatt -F -f qq > file.ff
    Здесь предполагается, что используется путь 'F' меню, а шапочка находится как и данные в файле qq.


  • Вывод картинок
  • Для пользователя очень важным моментом является создание твердых копий рисунков, которые он видит на экране. Поэтому был разработан набор программ и операций, позволяющий выводить, редактировать и подготавливать картинки к печати. Из системы обработки данных стандартный графический вывод производится в двоичном PLOT-формате (Верходанов, 1992). Этот формат можно перевести в ASCII коды и редактировать стандартными редакторами текстов, просматривая получающиеся картинки программой graphic. Подробнее см. описание graphic(1). PLOT-формат можно перекодировать уже практически во все, что угодно, используя команду plgr из FADPS и системную утилиту gs для работы с языком PostScript. Подробнее см. ниже.

    Кроме возможности редактирования PLOT-файлов, есть еще способ вывода текста прямо на экране fgr, с помощью ключа -text, о чем говорится ниже в параграфе о ключах fgr.

  • Вывод картинок в PLOT-формате

    Существует несколько возможностей вывода графиков в PLOT-файл из программы fgr.

    1. Запуск программы fgr с ключом -P:

      fgr -P file1 file2 ...

      аналогично для fgfew:

      fgfew -P file1 file2 ...

      В первом случае картинка дописывается в файл fgr.pl, а во втором - в файл fgfew.pl .

    2. В основном меню программы fgr для копирования текущего изображения надо войти в пункт 'Gr'. В этом случае картинка в PLOT-формате также допишется в файл fgr.pl.
    3. При просмотре файла в пункте 'Lst' основного меню программы fgr 'g, после чего произойдет дозапись в файл fgr.pl.
    Программа fgr выдает графические данные в двоичном PLOT-формате. Просмотреть их можно с помощью программы graphic, набрав следующую команду в оболочке X-window:

    graphic fgr.pl

    Данные можно перекодировать с помощью этой же программы в ASCII коды:

    graphic -f fgr.pl > f.cpl

    Здесь ключ '-f' является признаком перекодировки, выходной файл f.cpl содержит ASCII PLOT-данные, разделенные пробелами и переводами строки. Посмотреть такой формат можно с помощью команды:

    graphic -c f.cpl

    Здесь ключ '-c' указывает на то, что файл записан в ASCII кодах. Координатная сетка изображения в PLOT-файлах составляет по максимуму 32767 по обеим осям (Верходанов и др., 1995), что делает независимым изображение от размера окна. Саму картинку кроме редактирования можно изменять с помощью ключей программы graphic, например:
    graphic -c f.cpl -l 1.3 -w 2
    Эта строка означает, что картинка по длине (ключ '-l') будет уменьшена в 1.3 раза, по высоте (ключ '-w') в 2 раза. Подробнее см. описание graphic(1).

  • Вывод картинок на PostScript-языке

    Для качественной печати в настоящее время используются лазерные принтеры. Наиболее "умные" из них понимают язык PostScript. C другой стороны существует множество фильтров, переводящих файлы на этом языке в другие графические форматы. Поэтому система обработки не могла игнорировать возможности вывода картинок на этом языке. Для переформатирования файлов с картинками из PLOT-формата на язык PostScript используется программа plgr:

    plgr fgr.pl > fgr.ps

    Здесь входной файл fgr.pl содержит двоичный PLOT-формат, файл fgr.ps содержит команды языка PostScript. Масштабные множители для данных файла fgr.ps выбраны таким образом, чтобы координатная сетка была также 32767 x 32767. Команда plgr имеет практически те же ключи, что и программа graphic, например:

    plgr -c f.cpl -l 1.3 -w 2 > fgr.ps

    Эта строка означает, что картинка из файла f.cpl с символьными кодами (ключ '-c') по длине (ключ '-l') будет уменьшена в 1.3 раза, по высоте (ключ '-w') в 2 раза (ср. с предыдущим пунктом). Подробнее см. описание plgr(1).

  • Вывод картинок на HP-плоттер

    Для вывода картинок на графопостроитель типа Hewlett-Packard также используется программа plgr. Только при этом нужно использовать еще ключ -d:

    plgr fgr.pl -d hp > /dev/gp0

    Здесь ключ '-d' показывает, что устройством вывода будет графопостроитель (hp) и выдача будет производиться в соответствующих кодах. /dev/gp0 есть имя драйвера графопостроителя.

  • Вывод картинок на epson-принтер

    В системе ОС XENIX при использовании графического интерфейса SCO CGI смена одного графического драйвера на другой происходила с помощью переприсвоения значения переменной DISPLAY: пример для оболочки csh:

    setenv DISPLAY epson100

    После этого запускается графическая программа и соответствующие коды выдаются в файл стандартного вывода:

    fgr file1 file2 ... > fgr.epson

    В системе ОС Linux для выдачи на epson-принтер необходимо перекодировать данные файла с PostScript-инструкциями в epson-коды. Для этого используется стандартная утилита системы ОС Linux gs (GhostScript) интерпретации PostScript-файлов. Командная строка будет выглядеть следующим образом:

    gs -sDEVICE=epson -sOutputFile=fgr.epson fgr.ps

    Здесь ключ '-sDEVICE=' задает формат выдаваемых кодов, ключ '-sOutputFile=' задает имя выходного файла.

    После перекодировки распечатать картинку на принтере можно с помощью следующей командной строки:

    cat fgr.epson > /dev/lp

  • Другие возможности

    Остальные возможности также предоставляются утилитой gs (подробнее см. описание gs(1) ОС Linux). Например, перекодировка в gif-формат:

    gs -sDEVICE=gif -sOutputFile=fgr.gif fgr.ps

    Перекодировка в формат laserjet3 для лазерных принтеров:

    gs -sDEVICE=ljet3 -sOutputFile=fgr.lj fgr.ps


    О внешних переменных

    Отдельные функции программы fgr могут управляться внешими переменными BEAMFIT, BITPIX, FGRLOG, FGRRC.

    Переменная BEAMFIT, имеющая своим значением строку " KEEP", позволяет сохранять промежуточные F-файлы с диаграммой направленности (подробнее см. выше главу "Аппроксимация набором диаграмм").

    Переменная BITPIX позволяет изменять формат вывода данных, о чем подробно рассказывается выше в главе "Ввод и вывод данных, записанных в F-формате".

    Переменная FGRLOG позволяет изменять формат записи таблицы, содержащей параметры гауссиан после вписывания в кривые прохождения источников (подробнее см. выше главу "Аппроксимация набором гауссиан").

    Переменная FGRRC позволяет пользователю использовать свои файлы со стартовыми установками для программы fgr, о чем см. главу "О некоторых ключах программы fgr и настроечных файлах".


    О некоторых ключах программы fgr и настроечных файлах

    Всю справочную информацию по системе обработки можно посмотреть в (Верходанов и др., 1992), либо в режиме ON-LINE на компьютере где установлена система обработки FADPS вызовом описания требуемой программа с помощью утилиты ОС UNIX man.

    Например, полное подробное описание команды fgr вызывается после ввода следующей строки:
    man fgr
    или
    man 1 fgr,
    где единица обозначает раздел справочного руководства.


    О некоторых ключах программы fgr

    При описании команды fgr уже приводились некоторые ключи, задаваемые в командной строке. Ниже они сведены в список, а также к ним добавлены еще некоторые важные ключи.

    - следующий за этим ключом параметр 'cut1,cut2' представляет из себя уровни обрезания значений данных, а именно верхнюю и нижнюю границу для вычисления масштаба. Если первый параметр отсутствует (например, '-C ,2.75K}', то в качестве нижней границы будет использоваться минимальное число записи. Величина вводимых значений cut1 и cut2 зависит от единиц значений функции, определяемых ключевым словом BUNIT. Если BUNIT=K (Кельвины) или BUNIT=JY (Янские), то соответствующие величины будут вводиться в мК или в мЯн, т.е. вводимые данные с фактором 0.001 отличаются от данных, содержащихся в файле. Для остальных значений BUNIT вводимые параметры 'cut1,cut2' сохраняют масштаб реальных данных. Однако существует возможность ввода данных в Кельвинах или Янских; при этом надо (перед) после параметра поставить символы 'K' или 'J', например, '-C -2k,k4'. Здесь масштаб выводимых записей будет от 2 Кельвинов до 4 Кельвинов. См. также ключ '-Cs'.

    -Cs - то же самое, что и ключ '-C'. Только позволяет устанавливать масштаб, превышающий масштаб исходных данных. Ключ удобен для установки одинаковых масштабов для нескольких картинок.

    -font - следующий за этим ключом параметр - имя фонта X Window, который будет загружен вместо текущего.

    -g - наложить сетку на график. Противоположные оси (левая - правая, верхняя - нижняя) соединяются линиями по большим и средним делениям.

    -geometry - следующий за этим ключом параметр строка в формате: AxB+C+D, определяющая геометрию окна в X-window.

    -G - при наличии этого ключа программа fgr при работе в неинтерактивном режиме выводит на экран график в виде "ступенек".

    -H - посчитать полуширину источника в единицах оси абсцисс и выдать ее на картинку.

    -l - подключение локатора в первом режиме работы fgr.

    -log - следующий за этим ключом параметр - имя файла протокола, в который будут заноситься вычисляемые параметры. По умолчанию fgr.log.

    -mono - при наличии этого ключа программа работает в моноцветовом режиме.

    -p - при наличии этого ключа программа работает в режиме 'prad' - первичной обработки записей.

    -pause - следующий за этим ключом параметр определяет время в секундах, в течении которого программа будет показывать картинку, после чего она завершит свою работу (без нажатия клавиши возврата каретки). Этот ключ полезен при работе с командными файлами. Ключ используется только в первом режиме работы программы.

    -P - при наличии этого ключа программа сбрасывает картинку в графический файл fgr.pl, который можно разрисовать программой graphic .

    +q - следующий за ним параметр hh:mm:ss.ss (часы, минуты,секунды) обозначает время от начала записи (точнее, параметр определяемый ключевым словом CTYPE1 в F-формате), с которого будет происходить чтение данных из файла ввода, т.е. относительный отсчет (от начала записи), до которого используются данные при выводе и обработке. Формат вводимого параметра может быть следующий: если вводится число (без символов ':'), то программа рассматривает его как секунды (или другие единицы по оси абсцисс). Если это число начинается или оканчивается символами 'h' или 'd', то программа воспринимает его как часы или градусы. Если это число (следующий после ключа +t параметр) начинается или оканчивается символами 'm' или ''', то программа воспринимает его как минуты. Если число начинается с символа 'p', то программа воспринимает его как пикселы.

    -q - следующий за ним параметр hh:mm:ss.ss (часы, минуты,секунды) обозначает время от начала записи (точнее, параметр определяемый ключевым словом CTYPE1 в F-формате), до которого будут считываться данных из файла ввода, т.е. относительный отсчет (от начала записи), до которого используются данные при выводе и обработке. Вместо последовательности hh:mm:ss.ss число может быть записано по формату, описанному для ключа '+q'.

    -s - при наличии этого ключа программа позволяет просматривать записи по одной из списка, т.е. запускает режим поочередного просмотра данных.

    -sleepQ - при наличии этого ключа программа перед выводом очередной записи на экран делает задержку на Q секунд. (Значение Q записывается после ключа

    -sleep (или -sl сразу за ключом без пробела). Если число Q отсутствует (т.е. задан просто ключ '-sleep' или 'sl'), тогда вывод очередной записи производится после нажатия клавиши возврата каретки.

    -sundata (или -sun) - при наличии этого ключа программа будет работать с данными, записанными в среде Sun OS и имеющих порядок байтов процессора Sparc.

    +t - следующий за ним параметр hh:mm:ss.ss (часы, минуты,секунды) обозначает время (точнее, параметр определяемый ключевым словом CTYPE1 в F-формате), с которого будет происходить чтение данных из файла ввода, т.е. абсолютный отсчет, с которого используются данные при выводе и обработке, от 0-пункта шкалы. Формат такой же как и для ключа '-q'.

    -t - следующий за ним параметр hh:mm:ss.ss (часы, минуты,секунды) обозначает время (точнее, параметр определяемый ключевым словом CTYPE1 в F-формате), до которого, будет происходить чтение данных из файла ввода, т.е. абсолютный отсчет, до которого используются данные при выводе и обработке, от 0-пункта шкалы. Вместо последовательности hh:mm:ss.ss число может быть записано по формату, описанному для ключа '-q'.

    -text - следующий за этим ключом параметр "x,y,text" позволяет выводить текст на экран программы fgr. В этом параметре вместо 'x' и 'y' задаются координаты соответственно по оси абсцисс и ординат в системе единиц программы fgr: от 0 до 32767 с началом координат в нижнем левом углу. Вместо переменной 'text' записывается строка, которая будет выведена в позицию с координатами (x,y). Например, использование ключа '-text 16384,16384,"Hello, World" ' позволит вывести строку "Hello, World" в середине экрана.

    -tmp - следующий за этим ключом параметр - имя каталога, в котором будут создаваться временные файлы. По умолчанию используется каталог '/tmp'.

    -v - при наличии этого ключа временная ось выводится в обратном направлении: возрастание шкалы справа налево.

    Полное описание этих и остальных ключей см. в fgr(1). Выбор цветов и курсора для программы fgr осуществляется с помощью загрузочного файла .fgrrc, если пользователь этого желает. Cервис предоставляется библиотекой XPLOT (Верходанов, 1993). Установка производится вообще для пользователя, если файл находится в домашнем каталоге, или только для текущего каталога (не домашнего), когда файл находится в нем.
    В загрузочном файле используются определители групп параметров и самих параметров. Все определители разделяются либо переводом строки либо символом ';' (можно также ' '). Все, что следует за символом '#', рассматривается как комментарий. Ниже приводится пример файла .fgrrc:

           # COLOR SETTING
           color;
                Black*0;   White*1;   Red*2;     Green*3;   Blue*4
                Yellow*5;  Cyan*6;    Magenta*7; Brown*8;   Gray*9
                Orange*10; Aquamarine*11; Orchid*12; Gold*13;
                Violet*14; Pink*15
           endcolor
           # CURSOR SETTING
           cursor
               color*0; bcolor*1
           #   type*60           # cursor: XC_hand2
               type*XC_hand2     # cursor: XC_hand2
           endcursor
           # BORDER SETTING
           border; color*1; width*5; endborder
           # LOCAL FGR SETTING
           local
               bl_menu_col1*3   # color of menu item
               bl_menu_col2*2   # color of marked symbol in item
               bl_menu_col3*1   # color of current box in menu
               bl_menu_col4*5   # color of prompt
           endlocal
    
    Определители color и endcolor, cursor endcursor border и endborder, local и endlocal соответственно начинают и заканчивают группу определителей. При определении цвета имени цвета из таблицы цветов rgb присваивается номер, который используется программой fgr. В примере приведены цвета по умолчанию. Имя цвета и присваиваемый номер соединяются символом '*'; пробелов быть не должно. При выборе курсора устанавливаются его цвет: color, цвет фона для него: bcolor, тип курсора, где задается фонт курсора либо по номеру, либо по символьному имени. При установке границы можно выбрать ее цвет и размер в пикселах экрана. В группе local находятся определители для цветов меню программы fgr, соответственно по порядку: цвет пункта меню, цвет выделенного символа меню, цвет текущего бокса меню и цвет высвечиваемой подсказки.

    Имя файла со стартовыми установками для программы fgr может быть переустановлено с помощью переменной окружения FGRRC, значением которой и должно быть имя файла с установками.


    В заключение автор выражает глубокую признательность Ю.Н.Парийскому за проявленный интерес к работе, сотрудникам лабораторий радиоастрономических наблюдений, радиоастрономии и антенных исследований Н.Н.Бурсову, А.Г.Губанову, М.Г.Мингалиеву, Н.С.Соболевой, С.А.Трушкину, В.Б.Хайкину за первичную аппробацию, поиск "блох" и ценные рекомендации, сотрудникам лаборатории информатики Б.Л.Ерухимову, М.Л.Моносову, В.Н.Черненкову и В.С.Шергину за ценные обсуждения при реализации целого ряда процедур.

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


    Литература

    Верходанов О.В., Ерухимов Б.Л., Желенкова О.П., Лихван О.П., Моносов М.Л., Черненков В.Н., Шергин В.С.: 1991, Отчет САО АН СССР No 200, С.1-33.
    Верходанов О.В.: 1991, Отчет САО АН СССР No 201, С.1-48.
    Верходанов О.В.: 1992. Препринт САО No 75. С. 1-102.
    Верходанов О.В., Ерухимов Б.Л., Моносов М.Л., Черненков В.Н., Шергин В.С.: 1992, Отчет САО РАН No 205, С.1-177.
    Верходанов О.В., Ерухимов Б.Л., Моносов М.Л., Черненков В.Н., Шергин В.C.: 1992a, Препринт САО РАН No 87, C.1-38.
    Верходанов О.В., Витковский Вл.В., Ерухимов Б.Л., Желенкова О.П., Лихван О.П., Моносов М.Л., Черненков В.Н., Шергин В.С.: 1993, Препринт САО РАН No 89СПб, Санкт-Петерб.филиал, C.18-30.
    Верходанов О.В., Ерухимов Б.Л., Моносов М.Л., Черненков В.Н., Шергин В.С.: 1993a, Известия САО. (Aстрофиз. иссл.), 36, C.132-137.
    Верходанов О.В.: 1993, Отчет САО РАН No 216, C.1-45.
    Верходанов О.В., Черепахин А.П.: 1993, Отчет САО РАН No 217, C.1-13.
    Верходанов О.В., Кононов В.К., Майорова Е.К., Цыбулев П.Г.: 1994, Отчет САО РАН No 233, С.1.
    Верходанов О.В.: 1995, Препринт No 106 САО АН СССР, Нижний Архыз. C.1.
    Верходанов О.В., Черненков М.Н., Шергин В.С.: 1995, Препринт No 106 САО АН СССР, Нижний Архыз. C.58.
    Витковский В.В., Ерухимов Б.Л., Малькова Г.А., Мингалиев М.Г., Черненков В.Н.: 1989, Препринт No 28 САО АН СССР, Нижний Архыз.
    Витковский В.В.: 1990, Кандидатская диссертация, Автореферат, п.Нижний Архыз.
    Ерухимов Б.Л., Витковский В.В., Черненков В.Н., Шергин В.С.: 1988, Препринт No 16 САО АН СССР, Нижний Архыз.
    Ерухимов Б.Л., Витковский В.В., Шергин В.С.: 1990, Препринт No 50 САО АН СССР, Нижний Архыз.
    Иванов Л.Н.: 1979, Известия САО (Астрофиз. иссл.), 11, C.213-219.
    Кононов В.К., Евангели А.Н: 1991, Сообщения САО АН СССР, 67, C.87-105.
    Кононов В.К., Липовецкий В.А.: 1994, Препринт No 105 САО РАН, С.16-30.
    Shergin V.S., Kniazev A.Yu., Lipovetsky V.A.: 1995. Nachrichten, 317, No 2, 95.
    Wells D.C., Greisen E.W., Harten R.H.: 1981, Astron. Astrophys. Suppl. Ser., 44, P.363-370.