Документ взят из кэша поисковой машины. Адрес оригинального документа : http://heritage.sai.msu.ru/ucheb/Knyazev/Lect_N1.ps
Дата изменения: Wed May 2 20:10:56 2007
Дата индексирования: Mon Oct 1 20:22:29 2012
Кодировка: Windows-1251

Поисковые слова: rigel
Стандартная система редукции
астрономических данных MIDAS
Лекция I. Введение. Краткий обзор возможностей
А.Ю. Князев
Специальная астрофизическая обсерватория РАН, п.Нижний Архыз, 357147, Россия
Слушай первую премудрость, и большей не было в
мире никогда со времен Адама... Запомни мои сло-
ва и думай над ними неотступно днем и ночью 
и тогда ты постигнешь заключающуюся в них пре-
мудрость.
Леонид Соловьев. "Повесть о Ходже Насреддине".
Цель любого астрономического эксперимента  получение максимально достовер-
ной информации. Процесс получения такой информация в наблюдательной астрономии
формально можно разбить на следующие шаги:
1. Получение астрофизических данных (наблюдения);
2. Буферизация и архивизация полученных данных;
3. Обработка полученных данных;
4. Анализ и интерпретация полученных результатов.
Каждый шаг предполагает наличие и использование целого ряда различных средств и
методов, составляющих технологию наблюдательного процесса: телескопов, их систем
управления, астрономических приборов, систем управления этими приборами, систем
сбора данных, систем буферизации и архивизации данных и т.д. Данные, проходя через
все эти шаги, связывают их между собой и определяют технологию работы с экспери-
ментальным материалом.
В последнее время наблюдательная астрономия практически имеет дело только с
данными, получаемыми в цифровым виде, и это определяет ее зависимость от состо-
яния и развития вычислительных средств и программного обеспечения. Каждый из
вышеперечисленных шагов предполагает наличие определенного типа этих компонент.
Оптимизация параметров цепочки получения информации с точки зрения вычис-
лительных средств и программного обеспечения является достаточно важной задачей,
ибо после развития телескопов, астрономических приборов и астрономических прием-
ников, именно она определяет временные затраты астронома на получение конечного
результата его работы.
38

39
Специальная астрофизическая обсерватория как астрономический центр имеет все
звенья цепочки работы с экспериментальными данными, и процесс получения информа-
ции связан с профессиональной деятельностью астрономов САО: разрабатываются но-
вые приборы и методы наблюдений, планируются и реализуются наблюдательные про-
граммы, постоянно проводится обработка полученного материала. Как универсальный
инструмент, 6-метровый телескоп всегда имел большой набор разнообразных методов
и инструментов, а значит, и достаточно большое число систем сбора, систем редукции
данных и проблем, связанных с созданием и развитием тех и других.
Скачкообразное развитие вычислительных средств в конце 80-х годов, появление
большого количества новых типов компьютеров привело к осознанию необходимости
выработки концепции развития цепочки
Сбор ! Архивизация ! Обработка ! Анализ ;
для обсерватории на ближайшее будущее и с учетом перспектив развития вычислитель-
ных и программных средств, методов и приборов. Такая концепция была сформулиро-
вана в 1990 году и состояла в следующем:
1. Cбор, обработка и архивизация данных представляют однородный, связанный про-
цесс и должны осуществляться в одной среде. Требование многозадачности при
наблюдениях и при обработке, естественность последующего развития, подразу-
мевающего создание сетей и развитие моды удаленных наблюдений, а также тен-
денция развития мирового астрономического сообщества указывают на то, что
этой средой должна являться операционная система UNIX.
2. Необходимо использование стандартной системы редукции астрономических дан-
ных (одной или нескольких), что позволит избежать проблем, связанных с ее раз-
витием и поддержкой, и увеличит совместимость и переносимость программных
продуктов, созданных внутри такой системы.
3. Необходима совместимость с мировым астрономическим сообществом по типам
выходных данных.
4. Необходимо наличие архива наблюдательных данных.
В этом цикле лекций я коснусь только одного пункта этой концепции  стандарт-
ной системы редукции астрономических данных. Я почти ничего не буду рассказывать
об операционной системе UNIX и о том, как в ней работать: для этого необходим еще
больший цикл подобных лекций. Однако, уверен, что каждый из Вас, кто попробует ра-
ботать с MIDAS (или с любой другой стандартной системой редукции астрономических
данных), тут же поймет, что знать UNIX надо, ибо очень многое в процессе редукции
приходится делать вне системы редукции (копировать файлы, переименовывать их, за-
давать недоуменные вопросы по электронной почте людям, знающим больше Вас на
текущий момент обработки, и т.д. и т.п.). Но я могу сказать точно, о чем буду говорить.
Любая стандартная система редукции  это безбрежный океан возможностей: начи-
нающему в нем легко заблудиться и утонуть. Так вот, я расскажу о том, как начать
работать в MIDAS. Я попытаюсь показать на наборе примеров и систематизации всего
материала, как ориентироваться в MIDAS. Вместе с тем, я попытаюсь обозреть макси-
мальное число возможностей в этой системе редукции, чтобы любой из Вас на основе

40
этих лекций мог предполагать, в какой части этого океана лежит тот островок, который
Вас интересует. Я расскажу о том, что из себя представляет язык для написания ко-
мандных файлов в MIDAS, а также опишу, как встраивать в него свои программы, уже
написанные ранее на C или FORTRAN и каких правил при этом надо придерживаться.
В конце я также коснусь вопроса об установке MIDAS на собственный компьютер. Я ра-
ботаю с этой системой уже более 10 -ти лет, считаю себя экспертом в MIDAS не только
потому, что устанавливал его на 5 компьютеров различных типов и 9 разновидностей
UNIX, но и потому, что обрабатывал в нем совершенно различные типы данных. За
все это время мне задавали гигантское количество разнообразных вопросов, и я видел
наиболее часто встречающиеся ошибки начинающих (и не только) пользователей. По-
этому постоянно в тексте я буду выделять предупреждающие конструкции Внимание
и Замечание.
ВНИМАНИЕ : Это будет выглядеть так
Замечание : Это будет выглядеть так
MIDAS команды в тексте будут выделяться так: MIDAS/COMMAND.
1. Стандартные системы обработки. MIDAS  почему
именно он?
Под стандартной системой редукции всегда подразумевается некий набор программ,
предназначенных для обработки астрономических данных и работающих в некоторой
программе-мониторе, которая обеспечивает передачу различных данных между про-
граммами и обеспечивает связь с операционной системой.
Проблема обработки данных в астрономии стара, как и сама астрономия, и имеет, с
моей точки зрения, два принципиально разных подхода:
Первый  построение специализированной системы, оптимальной для данного прием-
ника (или набора данных, или человека...).
Второй  установка и использование любой стандартной системы обработки астроно-
мических данных.
Оба подхода, с моей точки зрения, абсолютно равны и могут выбираться в зависимости
от конкретных условий, обстоятельств и пристрастий.
Первый подход обеспечивает наиболее быстрое решение проблемы и максимальное
использование возможностей компьютера. Его недостаток  ориентированность на дан-
ный тип компьютера и/или операционной системы, а также приемника. Смена любой
из этих компонент очень часто приводит не просто к необходимости перетранслировать
программы  проблема становится куда более серьезней: требуется существенная пе-
реработка программ для подстраивания их под это изменение (это  плата за очень
короткое время создания системы). Другой недостаток  необходимость сопровожде-
ния системы (по последним данным, на это уходит 75% времени у человека, который ее
создал), так как речь идет не о нескольких программах, которыми пользуется один чело-
век, написавший их для себя. Речь идет о документированной, развивающейся системе
обработки, в которой должны быть исправлены ошибки.

41
Второй подход решает часть из этих проблем, но создает новые. Его преимущество
состоит в том, что поддержка системы осуществляется ее создателями, которые сис-
тему и развивают. Система, как правило, содержит возможность обработки большого
набора разнообразных данных, получаемых на различных приемниках, и, что является
на мой взгляд самым главным, имеет общую концепцию развития с начала ее создания.
Однако решение устанавливать стандартную систему обработки накладывает сразу же
довольно жесткие ограничения на параметры используемых для этой цели компьютера
и операционной системы, а также ... "увеличивает головную боль у того, кто устанав-
ливает ее первый раз" и требует от этого человека достаточно большого времени для ее
изучения.
Тем не менее, я лично (в силу различных причин и обстоятельств) придерживаюсь
второго подхода. С моей точки зрения, гораздо проще изучить в деталях ЛЮБУЮ
стандартную систему астрономических данных, а также механизмы встраивания в эту
систему пользовательских программ (о чем, для MIDAS, я буду детально рассказывать
в лекции 5 этого цикла) и после этого заниматься созданием дополнительного, необходи-
мого только этому астрономическому прибору, приемнику или астроному, программного
обеспечения, чем каждый раз пытаться делать практически все заново и, один-на-один
сшибаясь в смертном бое с проблемой переносимости программ.
Однако не всегда все было так понятно и очевидно. Буквально десять лет назад,
когда стало очевидно, что будущее компьютерного парка в России  это дешевые PC,
еще не было ни одной стандартной системы редукции астрономических данных на этом
самом PC (тогда и UNIX-то на PC встречался очень редко). Вот тогда в САО РАН
по инициативе талантливого астронома Валентина Александровича Липовецкого, была
создана рабочая группа из программистов и астрономов для переноса на PC одной из
существующих стандартных систем обработки астрономических данных.
Для этого был сформулирован ряд требований по выбору оптимальной для САО
РАН системы обработки астрономических данных:
1. Уже существующая возможность установки на максимальном количестве различ-
ных типов машин.
2. Наличие системы в исходных текстах, написанных на стандартных, широкоисполь-
зуемых языках.
3. Наличие готовых программ и пакетов для обработки данных, имеющихся в САО.
4. Возможность встраивания новых программ и пакетов.
5. Возможность тесного и постоянного контакта с ее разработчиками.
Исходя из этих принципов, и была выбрана система MIDAS (разработанная и под-
держиваемая Южноевропейской обсерваторией), обладающая на 1989 год рядом пре-
имуществ относительно других известных систем. Работоспособность MIDAS-portable
была проверена на многих типах компьютеров и в разных версиях OS, были пробы
также и на персональных компьютерах (PS/2, OS AIX). Авторы считали своей главной
задачей реализацию рабочей версии MIDAS в целом без существенных изменений с уче-
том ограниченных ресурсов персональных компьютеров, полностью сохраняя при этом
концепцию переносимости.

42
Конец у этой сказки счастливый  уже в 1990 г. первая, перенесенная на PC, вер-
сия MIDAS заработала (хотя и не в полном объеме), а в 1992 году этот результат уже
докладывался международному сообществу. С тех пор наша лаборатория (лаборато-
рия "Структура"), а значит и САО РАН, в MIDAS и работает. При этом необходимо
отметить, что стандартная система астрономических данных  IRAF (разработана и
поддерживается в Национальной Оптической Астрономической Обсерватории, США)
начала работать на PC с UNIX только с 1997 года!
Другими же известными стандартными системами редукции астрономических дан-
ных являются:
 AIPS  разработана в США для обработки радиоданных, имеет версию, работа-
ющую на PC с UNIX;
 STARLINK  разработана в Англии. Вот-вот должна появиться на PC с UNIX;
 VISTA  разработана в США для обработки оптических данных. Мне известен
только очень урезанный, сделанный, видимо, студентом в качестве дипломной ра-
боты, пакет PC-VISTA.
 IDL  коммерческий пакет с векторным языком программирования. Не специ-
ализирован для обработки именно астрономических данных, но имеет огромный
набор дополнительных пакетов, написанных именно астрономами и именно для
обработки астрономических данных.
Вообще говоря, я не отдаю никакого предпочтения любой из всех перечисленных
стандартных систем редукции данных: каждая из них имеет свои как положительные,
так и отрицательные стороны. Мой опыт показывает, что во многих ситуациях они до-
полнительны друг к другу: поэтому в последнее время я использую как MIDAS, так и
IRAF при обработке. Однако, с моей точки зрения, есть несколько аргументов в пользу
того, чтобы прочитать лекции именно по MIDAS:
(1) разработанный в Германии, MIDAS несет в себе структуированность подхода, что
сильно облегчает систематизацию знаний о нем. В частности, это относится к системе
HELP.
(2) человеку, изучающему новую (первую?) стандартную систему редукции, постоянно
хочется задавать вопросы более знающему товарищу. Так вот, людей знающих MIDAS,
очень хорошо и достаточно хорошо, в САО РАН существенно больше, чем людей, зна-
ющих, скажем, IRAF, IDL или AIPS.
(3) пункт (2) также относится к установке и настройке.
2. Что из себя представляет MIDAS сейчас
MIDAS (Munich Image Data Analysis System)  это система, используемая для ана-
лиза различного рода астрономических данных, созданная и поддерживаемая в ESO.
Систему начала развивать с 1979 года Image Processing Group из ESO с целью создать
"открытую систему обработки данных", в которую можно легко встраивать новые про-
граммы и целые пакеты для обработки данных, полученных на новых астрономических
приборах. С 1982 года MIDAS используется для обработки астрономических данных в

43
ESO, а также свободно распространяется в других астрономических заведених. С 1996
года система доступна любому человеку в текстах через INTERNET.
В настоящее время MIDAS работает под управлением операционных систем: VAX/VMS
и UNIX и реализован на машинах различных типов: SUN, DEC, IBM, VAX, IBM, PCS,
HP, Convex, Silicon Graphics и PC. Это возможно благодаря тому, что MIDAS распрост-
раняется в текстах, опирается на стандартные компиляторы (FORTRAN-77 и C) и на
стандартные библиотеки. Последние или поставляются вместе с MIDAS, или присутст-
вуют на большинстве компьютеров. В 1995 году было оценено, что на создание и отладку
этой системы ушло примерно 300 человеко-лет (300 программистов трудилось один год,
или один программист работал 300 лет  как Вам больше нравится). Тексты MIDAS,
необходимые для инсталляции системы, занимают около 50 мегабайт дискового прост-
ранства, а полностью сгенерированная система занимает около 100 мегабайт. Система
имеет три тома документации, поставляемой в виде PostScript и HTML файлов. Мож-
но копировать уже сгенерированную систему для Вашего компьютера с Вашей версией
UNIX, используя INTERNET адрес:
http://www.eso.org/projects/esomidas/
В настоящее время MIDAS содержит около 400 базовых команд, в нем реализовано
большое количество различных пакетов (около 30) для обработки и анализа различных
данных, полученных на астрономических приборах (что составляет еще дополнитель-
но около 300 команд), а также содержит 8 GUI пакетов (графические пользователь-
ские интерфейсы), позволяющие проводить обработку и анализ данных по технологии:
Click-click-click-click... Более детально о составе пакетов в MIDAS я буду рассказывать
в лекции 4 этого курса.
Если у пользователя появляются вопросы или он обнаруживает ошибку, то он немед-
ленно может написать обыкновенное электронное письмо по адресу midas@eso.org или
воспользоваться для этого специализированной формой в GUI-интерфейсе CREATE/GUI
help.
MIDAS стоит на 4-х основных "китах":
 Графическая библиотека AGL (Astronet Graphical Library)  разработана в Ital-
ian ASTRONET и используется для вывода всех графиков (не изображений) на
стандартный набор внешних устройств. Поставляется с MIDAS.
 Математическая библиотека NAG (Numerical Algorithms Group)  использу-
ется в некоторых пакетах, в том числе и для приближения методами макси-
мального правдоподобия. NAG  это коммерческий пакет, поставляемый для
[C,F77,ADA,Pascal,Algol68] и содержащий около 2000 подпрограмм, используемых
при математических расчетах. В настоящее время разработчики MIDAS практи-
чески полностью ушли от использования этого пакета из-за разработки собствен-
ных программ.
 Библиотека использования изображений (IDI-интерфейс)  написана для эксплу-
атации ее под управлением X Window, что является основным вариантом работы
в UNIX. Поставляется с MIDAS. Если бы ее не было, вся одномерная графика и
визуализация изображений не могли бы существовать.

44
 Motif  библиотека, используемая для создания графических пользовательских
интерфейсов. В настоящее время имеется ее публично доступный собрат.
MIDAS состоит из двух основных программ:
 MIDAS-монитора  он вызывается при старте MIDAS-сессии. Является интер-
претатором Ваших команд и осуществляет разбор и анализ командной строки,
набранной пользователем, связь с операционной системой, обмен данными между
различными программами и между внешними устройствами. А также пытается
объяснить Вам Ваши ошибки.
 IDI-сервера  он вызывается при запуске первой программы, работающей с гра-
фикой или с вводом/выводом изображений на image-дисплей и отвечает за обмен
данными между монитором и графическим и image дисплеями. Поскольку IDI-
сервер работает в X Window стандарте, это автоматически позволяет использовать
для визуализации данных и результатов удаленные сетевые мониторы, работаю-
щие в X Window.
2.1. Особенности системы MIDAS
MIDAS обладает следующими особенностями:
 Система приспособлена для интерактивной работы;
 MIDAS команды моделируют командный язык DEC, работающий на операционной
системе VAX/VMS;
 Команды можно объединять, создавая исполняемые командные файлы;
 Командный язык MIDAS является развитым языком программирования, так как
обладает широким набором возможностей для написания программ: операторами
цикла, операторами переходов, локальными/глобальными переменными, возмож-
ностью вызывать подпрограммы;
 Наличием развитой системы подсказок, снабженной детальным описанием всех
команд и квалификаторов.
MIDAS поддерживает большой набор структур данных: Изображения (Images), Таб-
лицы (Tables), Описатели (Descriptors), Ключевые слова (Keywords), Каталоги (Cat-
alogs), Fit-les, что обеспечивает широчайший спектр возможностей. Об этом я буду
рассказывать в дальнейшем.
Система обеспечивает ввод-вывод данных в FITS-формате, что облегчает перенос
данных. Система поддерживает работу с огромным набором внешних устройств для
вывода на них графики и изображений.
2.2. Базовые возможности
Существующий MIDAS обладает базовым набором функций для работы со своими
структурами данных:

45
1. Чтение в image-дисплей (на VAX/VMS это специальный видеодисплей (типа DeAn-
za IP 8500), а в X Window  специально заведенное окно) изображений, масок,
таблиц раскраски (look-up tables  LUT), таблиц преобразования интенсивности
(intensity transfer tables  ITT) и запись их из image-дисплея на диск.
2. Интерактивная модификация LUT, позволяющая выделить некоторые особеннос-
ти на изображении.
3. Увеличение(уменьшение) изображений, загруженных в image-дисплей, интерак-
тивно или с фиксированными величинами.
4. Просмотр изображений в монохромном или в псевдоцветном режиме.
5. Извлечение участков изображений интерактивно, пользуясь курсором или исполь-
зуя зараннее выбранные координаты.
6. Рисование спектров, контуров, гистограмм, перспектив.
7. Вращение, переворачивание и другие преобразования изображений (например, ли-
неаризация).
8. Выполнение арифметических операций и других обычных FORTRAN-функций
над изображениями и таблицами.
9. Различная фильтрация и Фурье-преобразования изображений и таблиц.
3. Пособие для самых нетерпеливых
Существует категория людей, которым хочется и нравиться разбираться во всем новом
самим. Так вот, специально для них сообщаю, что MIDAS вызывается командой inmi-
das, выход из него  команда BYE, а самая полезная и необходимая команда  HELP.
Также добавлю, что абсолютно необходимо хоть какое-то знание английского языка.
Вышеперечисленного достаточно, чтобы начать разбираться во всем самим, а не читать
всю эту рутину дальше.
4. Что такое MIDAS-команда
Одно из базовых понятий для работе с MIDAS  MIDAS-команда. MIDAS-команда
выглядит вот так:
COMMAND/QUALIFIER par1 ... par8 !Комментарий
Она состоит из команды (COMMAND) и квалификатора (QUALIFIER), разделенных
прямым слэшем (/) и набором входных параметров (par1 ... par8), отделенных друг от
друга пробелами. В одной команде не может быть более 8-ми параметров. Через пробел
за последним параметром может следовать восклицательный знак, обозначающий на-
чало комментария, а дальше, собственно, комментарий. А вот комментарий может быть
любой.

46
ВНИМАНИЕ : Помните о пробеле между последним параметром и
знаком комментария. Его отсутствие может привести к странностям
при выполнении командных файлов, создание которых является естествен-
ным продолжением интерактивной моды работы в MIDAS.
Несколько странный вид комманды, доставшийся MIDAS от системы IHAP и опе-
рационной системы VAX/VMS, является очень удобным, с моей точки зрения, ибо по-
зволяет дополнительно систематизировать команды. По внутреннему MIDAS-стандарту
принято, что команда обозначает некое действие, а квалификатор  то, с каким типом
данных это действие выполняется. Например:
STATISTICS/IMAGE  расчет статистических характеристик изображения или его фраг-
мента;
STATISTICS/TABLE  расчет статистических характеристик колонки таблицы;
EDIT/TABLE  редактирование таблицы;
READ/KEYWORD  чтение содержания ключевого слова.
Существуют, конечно, и исключения, когда квалификатор специфицирует тип дейст-
вия. Например:
FILTER/GAUSS  фильтрация с использованием GAUSS-функции;
FILTER/SMOOTH  фильтрация при помощи скользящего среднего (осреднение).
Исключение также составляют дополнительные команды из пакетов (контекстов 
о них я подробнее буду рассказывать в четвертой лекции). В них команда обозначает
действие, а квалификатор специфицирует, из какого пакета эта команда. Например:
PLOT/ECHELLE  рисование спектров в пакете ECHELLE-редукции;
PLOT/LONG  рисование спектров в пакете редукции двумерных спектров, полученных
в моде "длинная щель".
Как я уже говорил, параметры разделены пробелом и могут быть числами (в
общем случае  несколько чисел, разделенных запятыми) или именами изображе-
ний/таблиц/описателей/ключевых слов. Например:
STATISTICS/IMAGE ccdimage CURSOR  имя входного изображения и выбор моды рабо-
ты с ним (курсор);
FILTER/GAUSS ccdinput ccdoutput 2,2 3.,1.,3.,1.  имена входного и выходного
изображений, а также наборы числовых параметров фильтрации;
EDIT/TABLE mytab  имя входной таблицы;
READ/KEYWORD inputi  имя ключевого слова.

47
Параметры в MIDAS-команде позиционные. Это значит, что первым должен стоять
первый параметр, вторым  второй и так далее. При этом многие параметры имеют
значения "по умолчанию" (о чем будет сказано в третьей Лекции). При написании ко-
манды параметры, значения которых "по умолчанию" нас удовлетворяют, обозначаются
просто знаком "?". Если все последующие параметры со значениями "по умолчанию"
нас удовлетворяют, они просто не пишутся. Например:
STATISTICS/IMAGE ? CURSOR  статистика текущего (визуализированного в image-
дисплее) изображения. Область выбирается курсором;
FILTER/GAUSS ccdinput ccdoutput  имена входного и выходного изображений. Па-
раметры фильтрации  "по умолчанию".
Однако есть способы написания параметров в произвольном порядке. Для этого пи-
шется выражение Pномер_параметра=значение. При такой записи параметры могут
следовать в произвольном порядке. Например:
STATISTICS/IMAGE P2=CURSOR  статистика текущего (визуализированного в image-
дисплее) изображения. Область выбирается курсором;
FILTER/GAUSS P2=ccdoutput P1=ccdinput  имена входного и выходного изображе-
ний. Параметры фильтрации  "по умолчанию".
Большинство команд имеют квалификатор, но некоторые  нет. Их очень мало и
их надо знать "в лицо":
BYE  команда "прощания" с MIDAS (выход из сессии обработки);
HELP  самая простая команда запроса о помощи у системы;
RUN  исполнение монитором MIDAS внешней программы, написанной на C или FOR-
TRAN.
Написание команд и квалификаторов может быть укорочено до некоего минимума,
когда монитор еще различает их между собой. Например:
STATISTICS/IMAGE сокращается до STAT/IMA и даже до ST/I;
FILTER/GAUSS сокращается до FILT/GAUSS и даже до FI/G;
EDIT/TABLE сокращается до EDIT/TAB и даже до ED/T;
READ/KEYWORD сокращается до READ/KEY и даже до R/K.
ВНИМАНИЕ : Учтите, что этот минимум зависит от версии
MIDAS и от загруженных пакетов (появились новые команды). Я насто-
ятельно не рекомендую укорачивать команды и квалификаторы при напи-
сании командных файлов. Зв это можно поплатиться тем, что они пере-
стают работать в следующих версиях системы (она развивается и появ-
ляются новые команды).
Советую использовать клавиши Tab при вводе командной строки. После нажатия
этой клавиши монитор попытается вставить всю команду целиком, если Вы ввели уже
минимум, позволяющий монитору сделать однозначный выбор.

48
5. Сага о формате FITS и основные типы данных сис-
темы MIDAS
Когда-то очень-очень давно (лет двадцать-тридцать назад), когда началась вторая вол-
на компьютеризации в астрономии, проблема переносимости данных предстала перед
астрономами-наблюдателями во всей своей красе: данные стали такими большими по
объему, что их уже стало невозможно передать в виде тетрадки, записанной от ру-
ки, распечатки или колоды перфокарт. А компьютеров стало много и очень разных с
сильно отличающимся матобеспечением. Поэтому астроном A, передавая астроному B
полученные им для него данные (в те времена это происходило, в основном, при помо-
щи магнитных лент), должен был, во-первых, очень детально описать в прилагающемся
письме, каким образом и что записано на ленте (сколько байт, порядок бит, число за-
писей), а во-вторых, детально описать сам процесс наблюдения  где, что и как. Вот
тогда-то и был выработан стандарт формата  FITS (Flexible Image Transport System).
Идею его можно выразить несколькими словами  это самоописанный тип данных.
Сначала идет заголовок, в котором в соответствии с жесткими правилами описано, ка-
кие данные идут за ним: их размерность, число точек по каждой из осей, когда и кем
данные были получены и так далее и тому подобное. Считается стандартом, что резуль-
таты наблюдений автоматически получаются в формате FITS. Все стандартные системы
редукции могут читать/записывать файлы данных в стандарте FITS. Однако при ра-
боте практически все стандартные системы редукции используют не FITS, а некоторые
свои специфические внутренние форматы. Это связано как с историей самой системы
редукции, так и с ее основными типами данных.
Вообще типы данных, используемые системой редукции, имеют огромное значение.
Если Вы разработчик, то внимательно проработайте этот вопрос, и получится красивое,
стройное дерево системы редукции, к которому совешенно естественным образом при-
растает все то новое, что появляется в астрономии. Выберите неправильный стандарт
или недостаточное количество разных типов данных, и уже вскоре Вы почувствуете,
как ограничены в своих возможностях в рамках созданного матобеспечения. Например,
Вы как разработчик забыли о таблицах  а ведь многочисленные конечные результаты
обработки  это именно таблицы! Или, если Вы ограничитесь двумерными изображени-
ями, то немедленно обнаружите, что многие астрономические приемники или системы
сбора в настоящее время выдают трехмерные массивы!
Так вот, с моей точки зрения, MIDAS был разработан очень грамотными астронома-
ми и программистами. Основные типы данных, используемые внутри MIDAS:
 Images (Frames)  массивы однородных данных (размерностью до 3). Част-
ный случай изображений  это битовые или байтовые маски, которые могут быть
использованы для выбора интересующей области в изображениях. Файлы стан-
дартно имеют расширения: ".bdf".
 Tables  содержат данные в строках и колонках, и эти данные могут не иметь оди-
накового физического значения (неоднородные). Двумерные (трехмерные) масси-
вы, организованные в колонки и строки, хранятся в виде бинарных файлов. Файлы
стандартно имеют расширения: ".tbl".
 Descriptors  содержат информацию, которая физически ассоциируется с изо-
бражением, таблицей и t-файлом (описывает их содержимое). Например, это имя

49
или число пикселей на каждой оси и т.д. Набор дескрипторов встроен в них в виде
отдельных "шапок".
 Keywords  это глобальные переменные MIDAS-монитора, используемые для
связи между различными MIDAS программами.
 Catalogues  используются для работы с группами однородных файлов данных:
таблицами, изображениями и ASCII-файлами. Это просто ASCII-файлы, содержа-
щие списки таблиц, изображений или других ASCII-файлов. Имеют расширение
".cat".
 Fit-les  это файлы, используемые в FITTING-программах. Содержат описание
математической функции и начальных значений параметров. Имеют расширение
".t".
ВНИМАНИЕ : Внутренние типы данных в MIDAS являются перено-
симыми только в рамках одной и той же операционной системы и сильно
завязаны на hardware. Кроме того, существует несовместимость данных
между некоторыми версиями MIDAS. Для портабельности бинарные дан-
ные в MIDAS необходимо преобразовывать в FITS или ASCII форматы.
Замечание : Хочу поделиться опытом: внутренние MIDAS-данные совмес-
тимы между PC-компьютерами и Alpha-станциями, и несовместимы между
PC-компьютерами и компьютерами фирмы SUN.
6. Первый шаг: старт и выход
Итак, вернемся к тому, что я уже коротко описывал ранее. Если на компьютере уста-
новлен MIDAS, то Вы можете вызвать его, просто набрав команду inmidas. Эту работу
в конкретном MIDAS я буду называть MIDAS-сессией или просто сессией. Как только
Вы почувствуете, что Вы хотите выйти из сессии, наберите команду BYE. Вернувшись к
неоконченному после заслуженного отдыха, наберите команду gomidas, и Вы окажетесь
в том месте, на котором остановились.
ВНИМАНИЕ : Если Вы выполнили команду inmidas  стартовали
MIDAS-сессию, то ни в коем случае не исполняйте эту команду парал-
лельно второй раз  ничего хорошего не получиться. Чтобы научиться
работать в нескольких MIDAS одновременно  смотрите лекцию 2 этого
курса.
Уже после первого вызова команды inmidas Вы обнаружите в Вашей домашней
директории новую, имеющую стандартное название  /midwork. Не стирайте ее  она
все равно будет создаваться каждый раз, когда Вы будете вызывать MIDAS. В ней
MIDAS создает различные служебные файлы для текущей сессии.
Замечание : Запись  /midwork стандартно для UNIX значит, что данная
директория находится в Вашей домашней, которая иногда также обознача-
ется как ${HOME}. В этом обозначании вышесказанное записалось бы в
виде ${HOME}/midwork.

50
Эта его особенность и определяет тактику работы в MIDAS: пользователь в любом,
ему удобном месте создает новую директорию, заходит в нее копирует туда файлы дан-
ных и стартует MIDAS-сессию. Для обработки других данных он может создать другую
директорию в другом месте (главное не запутаться!). В директории же  /midwork поль-
зователь держит написанные им командные файлы и программы, которые он использует
при обработке данных, находящихся в разных директориях.
Рассмотрим теперь в качестве примера некую MIDAS-сессию, чтобы наглядно пока-
зать, насколько логически простыми являются основные команды системы MIDAS. Ее
может повторить каждый при правильно и полностью установленном MIDAS.
ВНИМАНИЕ : По умолчанию считается, что Вы работаете в X Win-
dow.
Замечание : Знак ">" в приведенном ниже примере выдает MIDAS-
монитор в качестве приглашения к работе.
inmidas  старт MIDAS-сессии.
> -COPY MID_TEST:sombrero.bdf testima.bdf  это самая непонятная строка во всем
примере, обозначающая копирование изображения галактики Sombrero в MIDAS-
формате из некоторой стандартной директории в текущую. Скопированное изо-
бражение будет иметь имя testima.bdf.
> STAT/IMAGE testima  считаем статистику по всему изображению.
> CREATE/DISPLAY  создаем image-дисплей.
> LOAD/IMAGE testima  визуализируем изображение в image-дисплее.
> DISPLAY/LUT  показываем текущую LUT-таблицу.
> LOAD/LUT rainbow  "загружаем" в дисплей новую LUT-таблицу.
> GET/CURSOR  Создаем курсор в image-дисплее.
> EXTRACT/IMAGE pice = testima[100,120:200,220]  извлекаем часть изображения
testima.bdf и переносим в другое изображение с именем pice.bdf.
> CREATE/GRAPH  создаем графический дисплей.
> PLOT/ROW testima 100  рисуем строку номер 100 из изображения.
> PLOT/COLUMN testima 100  рисуем колонку номер 100 из изображения.
> $ rm testima.bdf pice.bdf  удаляем изображения с диска.
> BYE  завершаем MIDAS-сессию.

51
Таблица 1. Возможности команды HELP
Команда Ее назначение Пример
HELP Краткий обзор всех команд
pattern? Список всех команд, начинающихся
с pattern
RE?
HELP command Список всех команд, содержащих
command, с кратким описанием на-
значения и параметров
help read
HELP command/qualif Подробный help по команде HELP READ/KEY
comnd/qualif ?? Краткое описание назначения и па-
раметров команды
READ/KEY ??
HELP/QUALIF qualif Список всех команд, имеющих ква-
лификатор qualif
HELP/QUALIF TABLE
HELP/SUBJECT Полный список тем, по которым есть
информация
HELP/SUBJECT subject Подробная информация по данной
теме
HELP/SUBJ image
HELP/CL Краткий обзор всех команд внутрен-
него языка MIDAS-монитора
HELP/CL comnd подробный help по команде языка
MIDAS-монитора
HELP/CL IF
HELP/KEY keyword описание назначения и типа ключе-
вого слова
HELP/KEY inputi
HELP [Topic] Детальное описание всех новостей и
новых возможностей
HELP [News]
HELP/APPLIC Полный список дополнительных ко-
манд
HELP/APPLIC APPLIC Подробное описание дополнительной
команды applic
HELP/APPLIC autocuts
7. On-Line Help
Как я уже указывал ранее, в MIDAS хорошо развита система HELP. Она позволяет де-
лать обзор всех команд или выделять все команды, имеющие данный квалификатор.
Я настоятельно рекомендую начать самостоятельное изучение MIDAS именно с этой
команды и полностью освоить все ее возможности. После освоения HELP регулярно ис-
пользуйте ее. Некоторые ее возможности приведены в Таблице ?? и проиллюстрированы
примерами:
ВНИМАНИЕ : Внимательно читайте подробный help по команде. Па-
раметры в квадратных скобках "[parametr]" являются необязательными.
Очень удобным, с моей точки зрения, является GUI-интерфейс Help (вызов: CREATE/GUI
HELP).

52
7.1. Разделы Tutorials
MIDAS обладает не только развитой системой help, но и многочисленным набором при-
меров. Это команды TUTORIAL. Они служат для демонстрации работы некоторых базо-
вых команд, работы с различными типами данных, работы с различными контекстами
и т.д. Напишите команду HELP TUTORIAL и посмотрите, какие команды имеются. Испол-
ните их и посмотрите на результат.
Замечание : Есть еще один замечательный способ познакомиться со мно-
гими возможностями MIDAS. Дело в том, что после инсталляции системы,
создается специальный пакет, тестирующий большую часть ее возможнос-
тей. По мере выполнения своих тестов, исполняемые команды появляются
на терминале, а в графический и image-дисплеи загружаются результаты
тестирования. Если пакет прервал свою работу  значит что-то с MIDAS на
Вашем компьютере не в порядке  зовите системщика или начинайте разби-
раться сами. Итак, чтобы выполнить этот пакет, сначала наберите команду
@ vericopy, а после того как она отработает,  команду @@ veriall и ...
сидите и смотрите.
ВНИМАНИЕ : Самая распространенная ошибка во время исполнения
этого пакета  использование терминала с разрешением меньшим, чем
1024768 точек. В один прекрасный момент исполнение прервется только
потому, что графический и image-дисплеи не умещаются на Вашем экране.
Системщик не поможет. Надо переделывать программы.
И это конец первой сказки о MIDAS.
Список литературы
Князев А.Ю., Диссертация, 1997, с.1248 (http://precise.sao.ru/Laboratory/Dis_akn/index.html)
Kniazev A.Y., Shergin V.S., Lipovetsky V.A. (1992) MIDAS on small computers: reduction of low
order echelle spectra. 4-th ESO/ST-ECF Data Analysis Workshop: 169176
MIDAS Users Guide, 1995a, Volume A
MIDAS Users Guide, 1995b, Volume B
Но эта премудрость  ничто в сравнении со вто-
рой премудростью, которую я тебе поведаю...
Леонид Соловьев. "Повесть о Ходже Насреддине"