Jump to content

ИРАФ

ИРАФ
Оригинальный автор(ы) Национальная оптическая астрономическая обсерватория
Разработчик(и) Волонтёры сообщества IRAF
Первоначальный выпуск 1984 год ; 40 лет назад ( 1984 )
Стабильная версия
2.18  Отредактируйте это в Викиданных / 5 апреля 2024 г .; 3 месяца назад ( 5 апреля 2024 г. )
Репозиторий
Операционная система Linux, macOS, FreeBSD, Херд
Платформа x86-64, AArch64, x86, архитектура MIPS, PowerPC, ARMv7, RISC-V, DEC Alpha, x32 ABI, Apple M1, LoongArch
Тип Астрономический анализ
Лицензия лицензия с открытым исходным кодом
Веб-сайт https://iraf-community.github.io

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

Команды IRAF (известные как задачи) организованы в структуры пакетов. К IRAF могут быть добавлены дополнительные пакеты. Пакеты могут содержать другие пакеты. NOAO и внешние разработчики предлагают множество пакетов, часто ориентированных на определенную отрасль исследований или объектов.

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

Хотя IRAF по-прежнему очень популярен среди астрономов, институциональное развитие и обслуживание были остановлены. IRAF теперь поддерживается как программное обеспечение сообщества. [1] [2]

Проект IRAF стартовал осенью 1981 года в Национальной обсерватории Китт-Пик. В 1982 году был завершен предварительный проект и первая версия командного языка (CL). Была основана группа IRAF. Разработчиком системы IRAF и главным программистом был Дуг Тоди. В 1983 году Научный институт космического телескопа выбрал IRAF в качестве среды для своей системы анализа данных SDAS и перенес систему на VMS. Первый внутренний выпуск IRAF состоялся в 1984 году. После ограниченного распространения на нескольких внешних сайтах первый публичный выпуск состоялся в 1987 году. [3]

В середине 1990-х годов был запущен проект «Открытый IRAF» для решения проблем, наблюдавшихся в то время. Сюда вошли языковые привязки, способ использования компонентов IRAF без полной среды IRAF, новые типы данных и динамически загружаемый пользовательский код. [4] Этот проект так и не был завершен.

В конце 1990-х годов развитие IRAF значительно замедлилось, поскольку система считалась зрелой. Поддержка пользователей была переведена на веб-форум в 2005 году, а новое развитие базовой системы было официально снижено до очень низкого уровня. [5] Однако добровольная работа разработчиков IRAF продолжалась и они распространяли несколько неофициальных промежуточных версий. [6]

Японии была предпринята первая попытка перенести IRAF на 64-битную версию С 2006 по 2009 год в Институте космоса и астронавтики . [7] Хотя эти усилия не переросли в новую официальную версию IRAF, они внесли значительный вклад в 64-битный порт NOAO.

NOAO возобновило усилия по развитию в 2007 году. [8] портирование системы на 64-разрядную версию и добавление к ней возможностей виртуальной обсерватории. Этот этап завершился в 2013 году выпуском версии 2.16.1.

В 2017 году исходный код был перенесен на GitHub . В попытке упаковать программное обеспечение IRAF для Debian оно было очищено от оставшегося несвободного исходного кода и с тех пор поддерживается исключительно сообществом. После нескольких предварительных выпусков в начале 2022 года была выпущена версия 2.17. [9]

В 2023 году NOIRLab (преемник NOAO) возобновил некоторые разработки и создал собственную версию 2.18, объем которой ограничен поддержкой устаревшего конвейера сжатия данных Gemini . [10] Соответствующие изменения позже были объединены в версию 2.18, выпущенную сообществом. [11]

Основные версии IRAF [12]
Версия Дата выпуска Примечания
2.1 1984 первый внутренний выпуск
2.2 февраль 1986 г. ограниченный публичный выпуск
2.3 14 августа 1986 г. поддержка STSDAS
2.4 19 октября 1986 г.
2.5 8 июля 1987 г. первый публичный релиз
2.6 24 февраля 1988 г.
2.7 4 декабря 1988 г.
2.8 30 июня 1989 г.
2.9 10 апреля 1990 г.
2.10 7 июля 1992 г.
2.11 27 августа 1997 г.
2.12 25 января 2002 г.
2.13 2006 неофициальные релизы волонтеров NOAO
2.14 1 декабря 2007 г.
2.15 22 ноября 2010 г.
2.16 22 марта 2012 г. последний крупный релиз NOAO
2.17 4 января 2022 г. первый выпуск сообщества
2.18 5 апреля 2024 г. объединение изменений NOIRLab

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

[ редактировать ]

Лицензирование IRAF обычно соответствует схеме лицензирования MIT . Старые версии содержали некоторое несвободное программное обеспечение. В частности, графический код NCAR ограничивал перераспределение IRAF до того, как он был удален в версии 2.16. [13] Кроме того, в старых версиях использовался код, взятый из книги «Числовые рецепты» , под другой лицензией. Этот код был удален или заменен на Open Source в версиях после 2.16.1. [14] Это позволило распространять пакеты IRAF в основных дистрибутивах Linux, таких как Debian. [15] или Убунту.

Проектирование системы

[ редактировать ]

Четыре основных компонента составляют действующую систему IRAF: [16]

  • Пакеты приложений представляют собой структурированный набор портативных задач для обработки и анализа научных данных, а также для системных утилит.
  • Командный язык ( CL ) — это интерактивный пользовательский интерфейс по умолчанию, а также используется в качестве языка сценариев для задач в пакетах приложений.
  • Виртуальная операционная система ( VOS ) предоставляет портативный интерфейс для выполнения прикладных задач. Он создан по образцу системных функций Unix, но с API для специального языка препроцессора подмножества IRAF ( SPP ).
  • Интерфейс хост-системы ( HSI ) — это ядро, обеспечивающее интерфейс между хост-системой и функциями VOS. Он также предоставляет инструменты, необходимые для загрузки системы из исходного кода. Компилятор SPP также является частью HSI.

Только HSI зависит от системы. Все остальные компоненты являются переносимыми благодаря использованию функций, предоставляемых HSI. Таким образом, для переноса на новую систему потребуется внести изменения только в этот компонент. Однако первоначальный проект неявно основывался на универсальном использовании 32-битных типов данных, и поэтому порт на 64-битный формат потребовал серьезных усилий не только в HSI, но и во всех компонентах системы.

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

[ редактировать ]

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

Системные пакеты

[ редактировать ]

Системные пакеты расположены в базовом пакете IRAF и предоставляют инструменты для CL, полезные утилиты операционной системы и базовые научные утилиты, например, для обработки изображений:

данные
Преобразование формата данных ( FITS , формат изображения IRAF и т. д.)
изображения
Общая растровых изображений обработка и отображение
списки
списка Обработка
сюжет
векторной графики Утилиты для построения
программные инструменты
Инструменты разработки программного обеспечения и обслуживания систем
система
Системные утилиты
коммунальные услуги
Различные утилиты, включая nttools для работы с таблицами.

Пакеты оптической астрономии

[ редактировать ]

Пакеты noao используются для анализа данных оптической астрономии. Большинство из этих задач являются общими, но пакет imred также содержит задачи по сокращению данных для конкретных инструментов. Некоторые из важных пакетов:

Имред
изображений Пакет обработки , содержащий как общие задачи по обработке астрономических данных, так и для конкретных КПНО . инструментов
данные о видах
Пакет генерации искусственных данных. Может генерировать искусственные каталоги, 2D и 2D спектры, создавать изображения искусственных звезд, галактик, шума и космических лучей и т. д. для целей тестирования.
астрометрия
Пакет астрометрии для получения астрометрических координат объектов в звездных полях
цифровик
цифровой звездной фотометрии Пакет
Сплит IRAF из пакета onedspec в работе.
онедспец
Пакет для обработки и анализа одномерных спектральных данных. Одной из важных задач в этом пакете является splot — графический инструмент для анализа спектров.
дваdspec
Пакет двумерного спектрального сокращения и анализа, те же операции для двумерных спектров ( longslit , multispec)
серфинг
изофот галактик Пакет для анализа
асткэт
астрономическому каталогу и обзорам Пакет доступа к

Внешние пакеты

[ редактировать ]

Одной из сильных сторон IRAF было наличие различных внешних пакетов, которые решали конкретные проблемы или реализовывали специализированные конвейеры сжатия данных. Среди пакетов есть

подходит
с одним и несколькими расширениями FITS Утилиты для файлов
сптабл
Пакет IRAF для табличных спектров
действие
Инструменты Межамериканской обсерватории Серро Тололо
stsdas
Программная система Научного института космического телескопа для калибровки и анализа данных космического телескопа Хаббл . Поддержка выбранных задач из пакета stsdas продолжена в пакете st4gem . Исходный пакет таблиц от STSci теперь включен как Utilities.nttables . в системные пакеты
stecf
Задачи IRAF, разработанные в Европейском координационном центре космического телескопа
рвсао
лучевых скоростей Пакет Смитсоновской астрофизической обсерватории
туалеты
от Утилиты системы мировых координат Джессики Минк
топор
Программное обеспечение для спектрального извлечения и визуализации
Близнецы
Конвейер обработки данных для обсерватории Джемини

Однако многие из этих пакетов больше не поддерживаются. [17] Портирование на 64-битную версию также потребовало значительных усилий, и не все внешние пакеты были перенесены и, следовательно, их можно было использовать только в 32-битной среде.

Пользовательские задачи

[ редактировать ]

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

Специальные языки IRAF

[ редактировать ]

Командный язык

[ редактировать ]

Командный язык (CL) служит интерфейсом, поддерживающим команды и время выполнения, между пользователем на его компьютерном терминале и прикладными программами, которые он выполняет. Пользователь вводит свои команды в CL, и он выполняет любые задачи и манипуляции с файлами, необходимые для выполнения команд. В более поздних версиях исходный CL был расширен до ECL, основным преимуществом которого является редактируемая командная строка. Также была разработана версия, обеспечивающая прямой доступ к Виртуальной обсерватории (VOCL).

CL в первую очередь выполняет роль оболочки и организует работу с системой и приложениями. Существует три типа задач, которые может выполнять CL: собственные задачи, которые являются частью скомпилированных исполняемых файлов IRAF, сценарии (задачи CL, которые представляют собой задачи, написанные на CL), и внешние задачи, внешние программы или сценарии, которые выполняются CL. Для каждой задачи может существовать файл параметров. Он содержит описание каждого параметра, используемого задачей, который должен быть известен и управляться CL. [19]

Вот простой скрипт Hello World в CL:

{print(' Hello, world !! ')}

Сценарии CL обычно имеют суффикс .cl, что может вызвать конфликты с Common Lisp файлами кода .

Подмножество языка препроцессора

[ редактировать ]

Подмножество языка препроцессора (SPP) реализует подмножество языка препроцессора IRAF , которое было запланировано на заре IRAF. Язык SPP основан на языке Ratfor . Лексическая форма, операторы и конструкции потока управления идентичны тем, которые предоставляет Ratfor. Основные различия заключаются в типах данных, форме процедуры, добавлении строк и символьных констант, использовании квадратных скобок для массивов и операторе задачи . Предоставляемые средства ввода-вывода совершенно разные. [20]

Программа xc , поставляемая с IRAF, транслирует программы SPP в Fortran 66 , а оттуда с помощью f2c в код C.

Препроцессор дополняется mkpkg , make -подобным инструментом автоматизации сборки, generic , инструментом для преобразования универсальных типов в типозависимый исходный код, и xyacc , модифицированным yacc для создания выходных данных SPP.

Вот простая программа Hello World в SPP:

task    hello                   # CL callable taskprocedure hello()               # common procedurebegin        call printf ("hello, world\n")end

Программы SPP обычно имеют суффикс .xте, которые необходимо предварительно обработать с помощью универсального инструмента, имеют .gx.

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

[ редактировать ]

Полная рабочая среда IRAF обычно требует двух других приложений: расширенного окна xterm с графическими окнами (называемого xgterm и распространяемого в отдельном пакете x11iraf) и программы отображения изображений, называемой «сервером изображений». Двумя наиболее популярными серверами изображений являются SAOImageDS9 (от SAO ) и ximtool (NOAO, также распространяется в пакете x11iraf). [21]

В качестве альтернативы xgterm и командному языку Python можно использовать пакет PyRAF. PyRAF может транслировать сценарии CL в сценарии Python. Он также предоставляет графическое окно (на основе Tk или Matplotlib ). В качестве командной оболочки можно использовать либо командную оболочку Python или IPython , либо специальный режим, во многом напоминающий по внешнему виду командную оболочку CL. [22]

См. также

[ редактировать ]
  1. ^ «Обработка данных/Программное обеспечение | NOIRLab Science» . www.noirlab.edu . Проверено 11 декабря 2022 г.
  2. ^ «ИРАФ 2.17» . Распространение в сообществе IRAF . Проверено 11 декабря 2022 г.
  3. ^ Фитцпатрик, Майк (сентябрь 2012 г.). «IRAF: Уроки для долголетия проекта» . Серия конференций ASP . 461 : 595. Бибкод : 2012ASPC..461..595F .
  4. ^ Черт возьми, Андре, изд. (2000). Обработка информации в астрономии . Springer Science+Business Media. стр. 83–85. ISBN  978-94-010-5871-1 .
  5. ^ Боросон, Тодд (сентябрь 2005 г.). «Продукты обработки данных и программное обеспечение в NOAO: грядут некоторые изменения» . Информационный бюллетень NOAO-NSO . № 83. С. 10–12.
  6. ^ Смит, Крис; Фицпатрик, Майк (сентябрь 2007 г.). «ИРАФ 2.14» . Информационный бюллетень NOAO-NSO . № 91. с. 28.
  7. ^ Ямаути, Чисато (август 2008 г.). «Портирование IRAF на ОС x86_64» . Серия конференций ASP . 394 : 666–669. Бибкод : 2008ASPC..394..666Y .
  8. ^ Фитцпатрик, Майк; Смит, Крис (декабрь 2007 г.). «Выпуски IRAF V2.14 и Ximtool» . Информационный бюллетень NOAO-NSO . № 92. С. 21–22.
  9. ^ «Примечания к выпуску IRAF 2.17 — документация IRAF 2.17» . iraf.readthedocs.io . Проверено 23 апреля 2024 г.
  10. ^ Фитцпатрик, Майкл; Плакко, Виниций; Болтон, Адам; Мерино, Брайан; Риджуэй, Сьюзен; Стангеллини, Летиция (3 января 2024 г.). «Модернизация IRAF для поддержки сокращения данных Gemini». arXiv : 2401.01982 [ астро-ф.IM ].
  11. ^ «Примечания к выпуску IRAF 2.18 — документация IRAF 2.18» . iraf.readthedocs.io . Проверено 11 апреля 2024 г.
  12. ^ «Примечания к выпуску IRAF» . Проверено 13 марта 2022 г.
  13. ^ «Примечания к выпуску IRAF V2.16» . Проверено 19 марта 2023 г.
  14. ^ «Проблемы с лицензиями в IRAF» . Распространение в сообществе IRAF . Проверено 10 декабря 2022 г.
  15. ^ «Debian — Подробная информация о пакете iraf в яблочко» . packages.debian.org . Проверено 10 декабря 2022 г.
  16. ^ Тоди, Дуг (январь 1986 г.). Кроуфорд, Дэвид Л. (ред.). «Система сокращения и анализа данных IRAF» (PDF) . Учеб. SPIE Приборы в астрономии . Приборы в астрономии VI. VI : 627–733. Бибкод : 1986SPIE..627..733T . дои : 10.1117/12.968154 .
  17. ^ «Внешние пакеты» . Распространение в сообществе IRAF . Проверено 10 декабря 2022 г.
  18. ^ «Документация IRAF — документация IRAF 2.17» . iraf.readthedocs.io . Проверено 10 декабря 2022 г.
  19. ^ «Руководство программиста CL — документация IRAF 2.17» . iraf.readthedocs.io . Проверено 11 декабря 2022 г.
  20. ^ «Справочное руководство SPP — документация IRAF 2.17» . iraf.readthedocs.io . Проверено 11 декабря 2022 г.
  21. ^ «X11IRAF – Графические инструменты для работы с IRAF» . Распространение в сообществе IRAF . Проверено 11 декабря 2022 г.
  22. ^ «Учебное пособие по PyRAF — документация PyRAF 2.2» . pyraf.readthedocs.io . Проверено 11 декабря 2022 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6a157f79e1e86244f77073f96894e7b4__1713878820
URL1:https://arc.ask3.ru/arc/aa/6a/b4/6a157f79e1e86244f77073f96894e7b4.html
Заголовок, (Title) документа по адресу, URL1:
IRAF - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)