Приложение 2     Дополнительные команды (.prg - файлы).


chex p1 [p2] Проверка наличия файла.
p1 = имя файла,
p2 = расширение, по умолчанию - bdf.

lo_ima p1 [p2] Вывод изображения в display-окно с автомасштабированием.
p1 = имя .bdf-файла,
p2 = номер канала, по умолчанию - 0.

e_beg95 Определение начальных параметров для работы с эшелле-изображениями в версии MIDAS 1995 года.

Общая работа с изображениями.
awin p1 p2 Обработка группы изображений.
p1 = d / m / a :
 a - вычисление суммы изображений с использованием команды aver/ima (мода A),
 m - чистка и усреднение "медианой" по команде aver/win (мода med),
 d - как и m, но используется для получения среднего темнового кадра с именем dav.bdf.
p2 = список номеров исходных файлов n1,..,nn. Из каждого номера формируется имя lnn.bdf.
При обработке не темновых изображений выходному файлу присваивается имя первого файла из списка. Все исходные файлы предлагается удалить.

biss p1 [p2] [p3] Подготовка к работе изображений, полученных при наблюдении с системой MIDAS в формате ".bdf",".bdf.gz".
p1 = имя входного файла,
p2 = Y / N - (flip) - разворачивать кадр относительно оси X или нет. Для нынешнего варианта спектрографа LYNX разворот необходим, для PFES - нет.
p3 = E / N / X - (extract) - отрезать края кадра (техническая часть) или нет. Вариант X применяется в частных случаях.
Программа выполняет: gunzip, extract, flip - при необходимости, устанавливает дескрипторы start, step в 1., считает статистику и определяет оптимальные значения CUTS для визуализации, выводит в display-окно, предлагает удалить исходный файл. На выходе файл с именем lnn.bdf, где nn - номер файла в данной ночи, берется из исходного имени.

fiss p1 [p2] [p3] Подготовка к работе изображений, полученных при наблюдении с системой LIMA в формате ".fts",".fts.gz".
p1 = имя входного файла,
p2 = Y / N - (flip) - разворачивать кадр относительно оси X или нет. Для спектрографа LYNX времен LIMA разворот необходим.
p3 = E / N / X - (extract) - отрезать края кадра (техническая часть) или нет. Вариант X применяется в частных случаях.
Программа выполняет: gunzip - при необходимости, fromlima - преобразование данных, indisk - перевод в .bdf-формат, extract, flip - при необходимости, устанавливает дескрипторы start, step в 1., считает статистику и определяет оптимальные значения CUTS для визуализации, выводит в display-окно, предлагает удалить исходный файл. На выходе файл с именем lnn.bdf, где nn - номер файла в данной ночи, берется из исходного имени.

subdark p1 [p2] Вычитание темнового изображения.
p1 = имя входного .bdf-файла,
p2 = имя среднего темнового изображения, по умолчанию - dav.bdf.
Программа выполняет: вычитает темновое, в полученном изображении заменяет отрицательные значения нулевыми, считает статистику и определяет оптимальные значения CUTS для визуализации, выводит в display-окно, предлагает удалить исходный и промежуточный файлы. На выходе файл с именем lnnd.bdf.

Работа с изображениями.
e_ex1 p1 [p2] [p3] [p4] p5 p6 Выделение эшелле-порядков с линейно-переменной высотой щели.
p1 = имя входного изображения (.bdf-файла),
p2 = имя выходного "порезанного" изображения (пространство пиксель-порядок), по умолчанию берется исходное имя с заменой первого символа на 'e',
p3 = параметры стандартной процедуры выделения (slit,offset или slit,ron,g,sigma), устанавливаются в начале сета, зависят от выбранного метода, берутся, как правило, по умолчанию, slit здесь переопределяется,
p4 = метод выделения, устанавливается по ключевому слову EXTMTD, (обычно используется AVERAGE),
p5 = Min,Max,Min - высота щели первого порядка, какого либо посредине (его номер определяется параметром p6) , последнего.
Высота щели линейно меняется на участках от первого Min до Max и от Max до второго Min.

e_ex2 p1 [p2] [p3] [p4] Выделение эшелле-порядков с переменной высотой щели.
p1 = имя входного изображения (.bdf-файла),
p2 = имя выходного "порезанного" изображения (пространство пиксель-порядок), по умолчанию берется исходное имя с заменой первого символа на 'e',
p3 = параметры стандартной процедуры выделения (slit,offset или slit,ron,g,sigma), устанавливаются в начале сета, зависят от выбранного метода, берутся, как правило, по умолчанию, slit здесь переопределяется.
Высота щели для каждого порядка берется из таблицы tslit.tbl, определенной в программе ords.prg (см. далее). Полученный спектр выводится в графическое окно.

e_extro p1 p2 p3 Выделение части эшелле-порядка.
p1 = имя входного изображения (.bdf-файла),
p2 = номер порядка,
p3 = координаты начала и конца выделяемой части.

extract p1 Выделение линии из изображения с выводом в графическое окно.
p1 = имя входного изображения (.bdf-файла),
Координаты левого нижнего и правого верхнего углов отмечаются курсором, выходное "под-изображение" называется sub.bdf.

extract2 p1 p2 Выделение линий с одинаковыми координатами из двух изображений с выводом в графическое окно.
p1 = имя первого изображения,
p2 = имя второго изображения,
Координаты левого нижнего и правого верхнего углов отмечаются курсором на первом изображении, выходное "под-изображение" называется sub.bdf и выводится в графическое окно черным цветом, с теми же координатами выделяется линия из второго изображения (sub2.bdf), выводится поверх первой красным.

ords p1 [p2] [p3] Графическое определение высоты щели.
p1 = имя входного изображения (.bdf-файла),
p2 = имя таблицы, содержащей маску и соответствующие дисперсионные коэффициенты, по умолчанию order.tbl,
p3 = имя выходной таблицы, по умолчанию формируется из входного имени заменой первого символа на 't' и .bdf на .tbl.
Программа предлагает выбрать вертикальный срез в центральной части изображения и выводит его в первое графическое окно, первый и последний из используемых порядков помечаются. Далее, отмечая курсором небольшие отрезки общего среза, работаем с ними во втором окне - ставим две точки через которые проводится секущая. По пересечениям этой линии слева и справа от центрального положения каждого порядка определяется предварительная высота щели.
Подсказка "Next, repeat, smooth, exit ? (N/r/s/e) - " определят интерактивность процесса, здесь:
Next - передача управления в первое окно для выбора другого отрезка (по умолчанию),
repeat - продолжение работы во втором окне,
smooth - сгладить весь срез (слабые объекты с низким отношением сигнал/шум),
exit - выход из цикла.
В случаях затруднения принимается минимальное значение в 8 пикселов. При выходе из цикла полученные значения обрабатываются командой convert/tab и в дальнейшем используются для выделения порядков.

redima [p1] [p2] [p3] [p5] Работа с изображениями объектов.
p1 = имя входного изображения (.bdf-файла), если задан параметр p5=nn, берется lnnd.bdf,
p2 = имя выходного "чистого" изображения, если задан p5=nn, берется lnndс.bdf,
p3 = имя выходного "порезанного" изображения (пиксель-порядок), по умолчанию: если задан p5=nn, берется eNNNnn.bdf, иначе - входное имя с измененным первым символом на 'e',
p5 = nn - номер файла в данную ночь.
Подробно работа этой комбинированной процедуры описана в пункте 5. основной части документа. Существуют две версии - redima1.prg и redima2.prg, отличающиеся методами определения высоты щели (см. e_ex1.prg и ords.prg, e_ex2.prg).

sh_ord [p1] p2 [p3] Линейное смещение маски эшелле-порядков.
p1 = имя таблицы с маской эшелле-порядков, по умолчанию берется из ключевого слова ORDTAB (обычно это order.tbl),
p2 = Min,Max: Min - на сколько пикселей поднять или опустить (отрицательное значение) первый (нижний) порядок, Max - последний порядок,
p3 = имя таблицы с маской фона, по умолчанию берется из ключевого слова BACKTAB (обычно это back.tbl),
Расчитывается линейное смещение порядков (от Min к Max), новое положение маски, пересчитываются дисперсионные коэффициенты по которым считается новая маска фона.

Команды, применяемые при отождествлении.
e_ident p1 Интерактивная проверка правильности отождествления.
p1 = имя изображения по которому делалось отождествление, по умолчанию берется из ключевого слова WLC, собственно используется не изображение, а имя, из которого формируется имя файла со спектром (получен программой e_thar),
p2 = NIGHT - имя сета, обычно это lNNN, где NNN - номер ночи (по журналу), этот параметр используется для выбора таблицы с результатом отождествления - <NIGHT>LINE.tbl,
p3 = имя таблицы с результатом отождествления, альтернатива p2,
p4 = TOP/BOTTOM, по умолчанию TOP,
p5 = xx/xy/yy/xz/yz/zz - способ "растяжки" (см. раздел о графике), по умолчанию xy - по диагонали.
Интерактивная процедура просмотра идентифицированных линий спектра. Все запросы снабжены достаточными комментариями.

e_thar Создание спектра в форматах MIDAS и DECH20 из изображения Th+Ar после отождествления.
p1 = имя таблицы с результатом отождествления, по умолчанию берется из ключевого слова LINTAB,
p1 = имя изображения по которому делалось отождествление, по умолчанию берется из ключевого слова WLC.
Процедура составлена из команд:
extract/echelle, rebin/echelle, @@ crefds, @@ credis, @@ cre100 p2=Th+Ar.
В результате имеем спектры в различных форматах. Имена выходных файлов - eNNNnn.bdf, sNNNnn.bdf, sNNNnn.100, sNNNnn.fds, sNNNnn.dis.

Работа со спектрами и перевод в систему DECH20
cre100 [p1] p2 [p5] Создание спектра в формате DECH20.
p1 = имя входного "порезанного" изображения (пиксель-порядок), по умолчанию: если задан p5=nn, берется eNNNnn.bdf,
p2 = имя объекта (10 символов),
p5 = nn - номер файла в данную ночь.
Поскольку в системе DECH20 данные представляются только в формате целых чисел, каждый эшелле-порядок масштабируется к 32700.
Имя выходного файла формируется из имени входного заменой первого символа на 's' и .bdf на .100.

credis [p1] Создание файла типа .dis для DECH20.
p1 = имя таблицы с результатом отождествления, по умолчанию берется из ключевого слова LINTAB,
Выходной файл sNNNnn.dis содержит координаты реперов дисперсионнй кривой.

crefds [p1] Создание файла типа .fds для DECH20.
p1 = имя таблицы с результатом отождествления, по умолчанию берется из ключевого слова LINTAB,
Выходной файл sNNNnn.fds содержит информацию о длине волны каждого пиксела спектра.

e_add p1 p2 [p3] Сложение спектров, представленных в табличном формате.
p1 = имя первого спектра в специальном табличном формате (создается командой e_tab),
p2 = имя второго спектра в таком же формате,
p3 = значения весов для сложения, по умолчанию 1.,1..
Второй спектр интерполируется (приводится к первому), их общая часть суммируется. На выходе: спектр в формате системы DECH20 - файл.100, файл.fds, и в формате такой же таблицы файл.tbl. Основа имен выходных файлов формируется из первого имени заменой первого символа на 'a'.

e_tab [p1] [p2] [p5] Преобразование спектров в специальный табличный формат.
p1 = имя спектра (изображение типа пиксель-порядок),
p2 = имя выходного спектра в табличном формате,
p5 = nn - номер файла в данную ночь, если задан этот параметр, все имена (входные и выходные) формируются традиционно: входной спектр - eNNNnn.bdf, спектр-таблица - tNNNnn.tbl, файлы для DECH20 - sNNNnn.100, sNNNnn.fds.
Дополнительная информация запрашивается программой.
Формат таблицы: :x - пикселы,
:wa1 .. :wan - столбцы с длинами волн для каждого пиксела каждого порядка, a1..an здесь абсолютные номера порядков,
:fa1 .. :fan - столбцы со спектрами каждого порядка.

Работа с графическими и окнами.
asDG p1 Автопереключение окон.
p1 = D / G : D - "display" окна, G - графические окна. Если активно окно 0 - становится активным окно 1, и наоборот.
s_gra Установка всех параметров графического пакета "по умолчанию".
get_gc [p1 p2 p3] Использование курсора в графическом окне.
s_plot p1 p2 p3 Вывод в графическое окно спектров разного типа.
p1 = E / R / TE / TB - тип спектра:
 E - эшелле-спектр в формате MIDAS (длина волны - интенсивность),
 R - эшелле-порядок в формате MIDAS (пиксел - интенсивность),
 TE - спектр в формате таблицы, получаемом командой e_tab
(длина волны - интенсивность),
 TB - визуализация столбцов таблицы, наименования столбцов запрашиваются дополнительно,
p2 = имя файла,
p3 = номер порядка.
Программа анализирует первый параметр и вызывает соответсвующую подпрограмму: e_plot.prg, r_plot.prg, t_plot.prg. Все они выводят спектр в удобном масштабе.

s_over p1 p2 p3 Перевывод в графическое окно спектров разного типа (без очистки окна).
Параметры как и в предыдущей команде.
Программа меняет цвет, анализирует первый параметр и вызывает соответсвующую подпрограмму: e_over.prg, r_over.prg, t_over.prg. Все они выводят спектр поверх существующего.

s_list p1 p2 Просмотр в графическом окне эшелле-спектров разного типа.
p1 = E / R / TE / TB - тип спектра:
 E - эшелле-спектр в формате MIDAS (длина волны - интенсивность),
 R - эшелле-порядок в формате MIDAS (пиксел - интенсивность),
 TE - спектр в формате таблицы, получаемом командой e_tab
(длина волны - интенсивность),
p2 = имя файла.
Программа последовательно "листает" эшелле-порядки. Запрос "Next_order/xx/xy/yy/xz/yz/zz/e - "делает ее интерактивной, т.е. позволяет менять порядок просмотра и, при необходимости, "растягивать" (см. команду xyz.prg), по умолчанию последовательный просмотр.

ss_com2 p1 p2 p3 p4 Визуализация двух спектров(сравнение), возможно разного типа.
p1 = E / R / TE - тип первого спектра (см. выше),
p2 = имя первого файла,
p3 = E / R / TE - тип второго спектра,
p4 = имя второго файла.
Программа последовательно "листает" эшелле-порядки. Каждый раз сначала выводится порядок из первого файла (черным цветом), поверх него из второго (красным). Масштаб осей таков, чтобы поместились оба спектра данного порядка. Запрос "Next_order/e - " позволяет менять порядок просмотра. Сам просмотр осуществляется теми же подпрограммами: e_plot.prg, r_plot.prg, t_plot.prg, e_over.prg, r_over.prg, t_over.prg.

ss_com3 p1 [p2 p3 p4] Визуализация трех спектров(сравнение) одного типа.
p1 = E / R / TE - тип спектров (см. выше),
p2 = имя первого файла,
p3 = имя второго файла,
p4 = имя третьего файла.
Программа последовательно "листает" эшелле-порядки. Каждый раз сначала выводится порядок из первого файла (черным цветом), поверх него из второго (красным), далее из третьего (зеленым). Масштаб осей таков, чтобы поместились все три спектра данного порядка. Запрос "Next_order/e - " позволяет менять порядок просмотра. Сам просмотр осуществляется теми же подпрограммами: e_plot.prg, r_plot.prg, t_plot.prg, e_over.prg, r_over.prg, t_over.prg.

xyz p1 p2 p3 p4 Увеличение частей спектров в графическом окне (окнах).
p1 = E / R / TE / TB - тип спектра (см. выше),
p2 = имя файла,
p3 = номер порядка,
p4 = xx/ xy/ yy/ xz/ yz/ zz - способ "растяжки":
   xx - по оси X в зтом же окне,
   xy - по диагонали, в зтом же окне,
   yy - по оси Y в зтом же окне,
   xz - по оси X c выводом в другое окно,
   zz - по диагонали, c выводом в другое окно,
   yz - по оси Y c выводом в другое окно.
"Растяжка" делается между двумя положениями курсора, вызываемого автоматически.

xyz_o p1 p2 p3 p4 Перевывод частей спектров в графическом окне (окнах).
Параметры как и в предыдущей команде.
Программа меняет цвет и выводит часть спектра поверх существующего.