Введение

Комплекс программ для обработки и анализа астрономических данных

IRAF (Image Reduction and Analysis Facility) – это набор программ, разработанный в Национальной оптической астрономической обсерватории (NOAO) для обработки астрономических изображений и спектров, представленных в виде массивов пикселей. В основном это данные, полученные с помощью матричных детекторов, таких как ПЗС (CCD). Программа доступна для всех основных операционных систем, включая мейнфреймы и настольные компьютеры. IRAF был разработан как кроссплатформенное решение, поддерживающее операционные системы VMS и UNIX. Использование в Microsoft Windows стало возможным благодаря Cygwin в ранних версиях, а сейчас – с помощью подсистемы Windows для Linux. В настоящее время IRAF преимущественно используется на macOS и Linux. Команды IRAF (известные как задачи) организованы в пакеты. В IRAF можно добавлять дополнительные пакеты, которые, в свою очередь, могут содержать другие пакеты. Существует множество пакетов, разработанных NOAO и сторонними разработчиками, часто ориентированных на конкретную область исследований или обсерваторию. Функциональные возможности IRAF включают калибровку потоков и позиций астрономических объектов на изображении, компенсацию изменений чувствительности между пикселями детектора, объединение нескольких изображений или измерение красного смещения линий поглощения или излучения в спектре. Несмотря на то, что IRAF по-прежнему популярен среди астрономов, его институциональная разработка и поддержка были прекращены. В настоящее время IRAF поддерживается сообществом пользователей.

История

Проект IRAF начался осенью 1981 года в Национальной обсерватории Китт-Пик. В 1982 году был завершен предварительный проект и первая версия языка команд (CL). Группа IRAF была основана. Разработчиком системы IRAF и главным программистом был Даг Тоди. В 1983 году Институт космического телескопа выбрал IRAF в качестве среды для своей системы анализа данных SDAS и портировал систему на VMS. Первый внутренний релиз IRAF состоялся в 1984 году. После ограниченного распространения среди нескольких внешних организаций, первый публичный релиз был выпущен в 1987 году. В середине 1990-х годов был запущен проект "Open IRAF" для решения проблем, которые были выявлены к тому времени. Это включало в себя языковые привязки, возможность использования компонентов IRAF без полной среды IRAF, новые типы данных и динамически загружаемый пользовательский код. Этот проект так и не был завершен. В конце 1990-х годов разработка IRAF значительно замедлилась, поскольку система считалась зрелой. Поддержка пользователей была перенесена на веб-форум в 2005 году, а разработка основной системы была официально снижена до очень низкого уровня. Однако, добровольная работа разработчиков IRAF продолжалась, и они распространяли некоторые неофициальные промежуточные версии. С 2006 по 2009 год в Институте космических и астронавтических наук Японии была предпринята первая попытка портирования IRAF на 64-битную архитектуру. Хотя эта попытка не привела к созданию новой официальной версии IRAF, она внесла значительный вклад в 64-битный порт, выполненный NOAO. NOAO возобновила разработку в 2007 году, портировав систему на 64-битную архитектуру и добавив возможности Виртуальной обсерватории. Этот этап завершился в 2013 году с выпуском версии 2.16.1. В 2017 году исходный код был передан на GitHub. В рамках усилий по упаковке программного обеспечения IRAF для Debian, он был очищен от оставшегося несвободного исходного кода и с тех пор поддерживается исключительно сообществом. После нескольких предварительных релизов, версия 2.17 была выпущена в начале 2022 года. В 2023 году NOIRLab (преемник NOAO) возобновил некоторую разработку и создал свой релиз 2.18, ограниченный поддержкой устаревшего конвейера обработки данных Gemini. Соответствующие изменения были позже объединены в релиз сообщества 2.18. +IRAF основные версииVersionRelease dateRemarks2.11984первый внутренний релиз2.2Февраль 1986 ограниченный публичный релиз2.314 августа 1986поддержка STSDAS2.419 октября 19862.58 июля 1987первый публичный релиз2.624 февраля 19882.74 декабря 19882.830 июня 19892.910 апреля 19902.107 июля 19922.1127 августа 19972.1225 января 20022.132006неофициальные релизы от добровольцев NOAO2.141 декабря 20072.1522 ноября 20102.1622 марта 2012последний крупный релиз от NOAO2.174 января 2022первый релиз сообщества2.185 апреля 2024слияние изменений NOIRLab

Лицензирование

Лицензирование IRAF обычно соответствует схеме лицензирования MIT. В более ранних версиях присутствовало некоторое несвободное программное обеспечение. В частности, графический код NCAR ограничивал распространение IRAF до его удаления в версии 2.16. Также, в старых версиях использовался код из книги "Численные рецепты", распространявшийся под другой лицензией. Этот код был удален или заменен на программное обеспечение с открытым исходным кодом в версиях после 2.16.1. Это позволило распространять пакеты IRAF в основных дистрибутивах Linux, таких как Debian или Ubuntu.

Пакеты приложений

Пакеты приложений рекурсивно структурированы на подпакеты и задачи. Они делятся на два класса: общие системные и базовые утилиты для обработки данных, и пакеты, предназначенные для обработки и анализа астрономических данных. Задачи преимущественно написаны на SPP и CL.

Задачи, определяемые пользователем

IRAF предоставляет пользователям возможность создавать собственные задачи двумя основными способами. Один из них – написание скриптов на языке процедур без компиляции (Command Language, CL). Второй – использование компилируемых программ предварительного процессора подмножества (SPP). Для обоих методов существуют обучающие материалы.

Дополнительное программное обеспечение

Для полноценной рабочей среды IRAF обычно требуется два дополнительных приложения: расширенное окно xterm с графическим отображением (называемое xgterm и распространяемое в отдельном пакете x11iraf) и программа для просмотра изображений, именуемая "сервером изображений". Два наиболее популярных сервера изображений – SAOImageDS9 (разработанная SAO) и ximtool (NOAO, также распространяется в пакете x11iraf). В качестве альтернативы xgterm и языку команд можно использовать пакет Python PyRAF. PyRAF способен преобразовывать скрипты языка команд в скрипты Python, а также предоставляет графическое окно (на базе Tk или Matplotlib). В качестве командной оболочки можно использовать либо командную оболочку Python, либо IPython, либо специальный режим, имитирующий внешний вид и функциональность командной оболочки языка команд.