IRAF

IRAF
IRAF
원본 작성자국립광천문대
개발자IRAF 지역사회 자원봉사자들
초기출시1984;39년전 (1984)
안정적 해제
2.17.1 / 2023년 7월 15일; 50일(2023년 7월 15일)
저장소
운영체제리눅스, macOS, FreeBSD, Hurd
플랫폼x86_64, ARMv8, x86, MIPS 아키텍처, PowerPC, ARMv7, RISC-V, DEC Alpha, x32 ABI, Apple M1
유형천문학적 분석
면허증.오픈 소스 소프트웨어
웹사이트https://iraf-community.github.io

IRAF(Image Reduction and Analysis Facility)는 픽셀 어레이 형태의 천문학적 이미지와 스펙트럼을 줄이기 위해 국립 광학 천문대(NOAO)에서 작성된 소프트웨어 모음입니다.이것은 주로 CCD와 같은 이미징 어레이 디텍터에서 가져온 데이터입니다.메인프레임 및 데스크톱 컴퓨터의 모든 주요 운영 체제에서 사용할 수 있습니다.IRAF는 VMS와 유닉스 계열 운영 체제를 지원하는 크로스 플랫폼으로 설계되었습니다.마이크로소프트 윈도우 사용은 이전 버전에서 Cygwin에 의해 가능해졌으며, 오늘날 리눅스용 윈도우 서브시스템으로 가능합니다.오늘날 주로 macOS와 Linux에서 사용됩니다.

IRAF 명령(태스크로 알려짐)은 패키지 구조로 구성됩니다.IRAF에 추가 패키지가 추가될 수 있습니다.패키지에는 다른 패키지가 포함되어 있을 수 있습니다.NOAO와 외부 개발자들은 종종 특정 분야의 연구나 시설에 초점을 맞추어 많은 패키지를 이용할 수 있습니다.

IRAF에서 사용할 수 있는 기능에는 영상 내 천체의 플럭스와 위치 보정, 검출기 픽셀 간의 감도 변화 보정, 여러 영상의 조합 또는 스펙트럼 내 흡수선 또는 방출선의 적색 이동 측정 등이 포함됩니다.

IRAF는 천문학자들 사이에서 여전히 매우 인기가 있지만, 제도 개발과 유지는 중단되었습니다.IRAF는 현재 커뮤니티 [1][2]소프트웨어로 유지되고 있습니다.

역사

IRAF 프로젝트는 1981년 가을에 Kitt Peak National Observatory에서 시작되었습니다.1982년에 예비 설계와 명령어(CL)의 첫 번째 버전이 완성되었습니다.IRAF 그룹이 설립되었습니다.IRAF 시스템의 설계자이자 수석 프로그래머는 Doug Tody였습니다.1983년 우주망원경과학연구소는 SDAS 데이터 분석 시스템의 환경으로 IRAF를 선정하여 VMS에 이식하였습니다.최초의 내부 IRAF 출시는 1984년이었습니다.몇 개의 외부 사이트를 제한적으로 배포한 후 첫 번째 [3]공개는 1987년이었습니다.

1990년대 중반, 당시의 문제점을 해결하기 위해 "열린 IRAF" 프로젝트가 시작되었습니다.여기에는 언어 바인딩, 완전한 IRAF 환경 없이 IRAF 구성 요소를 사용하는 방법, 새로운 데이터 유형 및 동적으로 로드 가능한 사용자 [4]코드가 포함되었습니다.이 프로젝트는 결코 완성되지 않았습니다.

1990년대 말, IRAF의 발전은 시스템이 성숙하다고 여겨지면서 상당히 느려졌습니다.2005년 웹 포럼으로 사용자 지원이 이관되어 코어 시스템의 새로운 개발이 공식적으로 매우 낮은 [5]수준으로 축소되었습니다.그러나 IRAF 개발자들의 자발적인 작업은 계속되었고 그들은 몇몇 비공식적인 중개판을 배포했습니다.

2006년부터 2009년까지 우주 [6] 우주 과학 연구소에서 IRAF를 64비트로 이식하기 위한 첫 번째 노력이 이루어졌습니다.이러한 노력이 새로운 공식 IRAF 버전으로 진화하지는 않았지만, NOAO에 의해 64비트 포트에 상당한 부분을 기여했습니다.

NOAO는 2007년 [7]개발을 재개하여 시스템을 64비트로 포팅하고 Virtual Observatory 기능을 추가했습니다.이 단계는 2013년 버전 2.16.1의 출시와 함께 종료되었습니다.

2017년, 소스 코드는 깃허브로 이전되었습니다.데비안을 위한 IRAF 소프트웨어를 패키지화하기 위한 노력으로, 그것은 남아있는 무료 소스 코드로부터 정리되었고, 그 이후로 커뮤니티에 의해서만 유지됩니다.2022년 초에 버전 2.17이 출시되었습니다.

IRAF 주요[8] 버전
버전 출고일자 언급
2.1 1984 첫 내부 출시
2.2 1985
2.3 1986년2월 한정 공개
2.4 1986년8월16일
2.5 1987년7월8일 첫 공개
2.6 1988년2월24일
2.7 1988년12월4일
2.8 1989년6월30일
2.9 1990년4월10일
2.10 1992년7월7일
2.11 1997년8월27일
2.12 2002년1월25일
2.13 2006 NOAO 자원봉사자들의 비공식 석방
2.14 2007년12월1일
2.15 2010년11월22일
2.16 2012년3월22일 NOAO의 마지막 메이저 발매
2.17 2022년1월4일 첫 번째 커뮤니티 공개

라이센싱

IRAF의 라이선스 상태는 일반적으로 MIT 라이선스 제도를 따릅니다.이전 버전에는 무료가 아닌 소프트웨어가 일부 포함되어 있었습니다.특히 NCAR 그래픽스 코드는 버전 2.16에서 [9]IRAF가 제거되기 전에 IRAF의 재배포를 제한했습니다.또한, 구 버전은 다른 라이선스 하에 Numerical Recipes book에서 가져온 코드를 사용했습니다.2.16.1 이후 버전에서는 [10]이 코드가 제거되거나 오픈 소스로 대체되었습니다.이를 통해 데비안이나[11] 우분투와 같은 주류 리눅스 배포판에서 IRAF 패키지를 배포할 수 있었습니다.

시스템설계

런타임 IRAF [12]시스템은 다음과 같은 네 가지 기본 구성 요소로 구성됩니다.

  • 응용프로그램 패키지는 과학적 데이터 축소 및 분석을 위한 휴대용 작업의 구조화된 모음이며 시스템 유틸리티를 위한 것이기도 합니다.
  • 명령어(CL)는 기본 대화형 사용자 인터페이스이며 응용 프로그램 패키지의 태스크에 대한 스크립팅 언어로도 사용됩니다.
  • VOS(Virtual Operation System)는 애플리케이션 작업을 위한 휴대용 인터페이스를 제공합니다.이것은 유닉스 시스템 기능을 본떠서 만들어졌지만, IRAF 특정 SPP(Subset Preprocessor language)를 위한 API를 가지고 있습니다.
  • HSI(Host System Interface)는 호스트 시스템과 VOS 기능 간의 인터페이스를 제공하는 커널입니다.또한 소스에서 시스템을 부트스트래핑하는 데 필요한 도구를 제공합니다.SPP 컴파일러도 HSI의 일부입니다.

HSI만 시스템에 종속됩니다.다른 모든 구성 요소는 HSI가 제공하는 기능을 사용하여 휴대할 수 있습니다.이렇게 하면 새 시스템으로 포팅하려면 이 구성 요소의 변경 사항만 필요합니다.그러나 초기 설계는 32비트 데이터 유형의 보편적인 사용에 기반을 두었기 때문에 64비트 포트에는 HSI뿐만 아니라 시스템의 모든 구성 요소에 상당한 노력이 필요했습니다.

응용 프로그램 패키지

응용 프로그램 패키지는 하위 패키지 및 작업에서 재귀적으로 구조화됩니다.일반 시스템과 기초 데이터 처리 유틸리티, 천문학적 데이터 축소 및 분석에 특화된 패키지 등 두 가지 클래스로 나눌 수 있습니다.과제는 주로 SPP와 CL로 작성됩니다.

시스템 패키지

시스템 패키지는 IRAF의 기본 패키지에 위치하며 CL을 위한 도구, 유용한 운영 체제 유틸리티 및 이미지 처리를 위한 기본 과학적 유틸리티를 제공합니다.

dataio
데이터 형식 변환(FITS, IRAF 이미지 형식 등)
이미지들
일반 비트맵 이미지 처리 및 디스플레이
리스트들
리스트처리
줄거리.
벡터 그래픽스 플롯팅 유틸리티
소프트툴
소프트웨어 개발 및 시스템 유지보수 도구
시스템.
시스템 유틸리티
공익 사업
테이블을 처리하는 nt툴을 포함한 기타 유틸리티.

광천문학 패키지

노아오 패키지는 광학 천문학 데이터 분석에 사용됩니다.이러한 작업의 대부분은 일반적이지만 imed 패키지에는 특정 계측기에 대한 데이터 축소 작업도 포함되어 있습니다.중요한 패키지는 다음과 같습니다.

담금질한
천문학적 데이터 감소 및 특정 KPNO 기기에 대한 일반 작업을 모두 포함하는 이미지 감소 패키지
미술자료
인공 데이터 생성 패키지.인공 카탈로그, 2D 및 2D 스펙트럼을 생성할 수 있으며, 테스트 목적으로 인공 별, 은하, 소음 및 우주선 등으로부터 이미지를 생성할 수 있습니다.
측도법
항성장에 있는 물체에 대한 측성 좌표를 얻기 위한 측성학적 패키지
디지팟
디지털 항성 측광 패키지
IRAF는 작업 중인 원스펙 패키지에서 추출되었습니다.
원스펙
1차원 스펙트럼 데이터 축소 및 분석 패키지.이 패키지에서 중요한 작업 중 하나는 스펙트럼 분석을 위한 그래픽 도구인 spot입니다.
투스펙
2차원 스펙트럼 축소 및 분석 패키지, 2차원 스펙트럼에 대해 동일한 작업(롱슬릿, 멀티스펙)
서핑포토
갤럭시 이소포탈 분석 패키지
으스스한 고양이
천문 카탈로그 및 측량 액세스 패키지

외부 패키지

IRAF의 강점 중 하나는 특정 문제를 해결하거나 전문화된 데이터 축소 파이프라인을 구현하는 다양한 외부 패키지의 존재였습니다.패키지 중에는

적합한
단일 및 다중 확장 FITS 파일을 위한 유틸리티
스패터블한
표 스펙트럼용 IRAF 패키지
ctio
세로 톨롤로 미주 천문대를 위한 도구
stsdas
허블 우주 망원경의 데이터를 보정 및 분석하기 위한 우주 망원경 과학 연구소의 소프트웨어 시스템(STSci의 원래 테이블 패키지는 시스템 패키지에 utilities.ntable로 포함됨).
스테프
우주망원경 유럽조정시설에서 개발된 IRAF 과제
rvsao
스미스소니언 천체물리 관측소의 방사속도 패키지
wcstools
이미지 월드 좌표계 유틸리티 by Jessica Mink
도끼
스펙트럼 추출 및 시각화 소프트웨어
쌍둥이자리의
제미니 천문대용 데이터 축소 파이프라인

그러나 이러한 패키지의 대부분은 [13]더 이상 유지관리되지 않습니다.또한 64비트로 포팅하려면 상당한 노력이 필요했으며 모든 외부 패키지를 포팅한 것은 아니므로 32비트 환경에서만 사용할 수 있습니다.

사용자 정의 태스크

IRAF는 사용자가 자신의 작업을 크게 두 가지 방식으로 작성할 수 있도록 합니다.하나는 컴파일되지 않은 프로시저(명령어, CL) 스크립트를 작성하는 것입니다.두 번째는 컴파일된 SPP(Subset Pre-Processor) 프로그램을 통해서입니다.[14]방법 모두 튜토리얼 문서가 존재합니다.

IRAF 특정 언어

명령어

명령어(CL)는 컴퓨터 터미널에 있는 사용자와 실행 중인 응용 프로그램 사이의 명령 및 런타임 지원 인터페이스 역할을 합니다.사용자는 CL에 자신의 명령을 입력하고 명령을 수행하는 데 필요한 모든 작업과 파일 조작을 수행합니다.이후 버전에서는 편집 가능한 명령줄을 주요 장점으로 하는 ECL로 원래 CL이 확장되었습니다.VOCL(Virtual Observatory)에 직접 액세스할 수 있는 버전도 개발되었습니다.

CL은 주로 셸의 역할을 하며 시스템 및 애플리케이션과 함께 작업을 구성합니다.CL이 실행할 수 있는 작업에는 컴파일된 IRAF 실행 파일의 일부인 네이티브 작업, 스크립트(CL에서 작성된 작업인 CL 작업), CL이 실행하는 외부 작업, 외부 프로그램 또는 스크립트의 세 가지 유형이 있습니다.작업별로 매개변수 파일이 존재할 수 있습니다.여기에는 [15]CL이 알고 관리해야 할 작업에서 사용하는 각 매개 변수에 대한 설명이 포함되어 있습니다.

CL의 간단한 Hello World 스크립트는 다음과 같습니다.

{ 활자로 찍어내다(' 안녕하세요., 세계 !! ') } 

CL 스크립트에는 대개 접미사가 있습니다..cl, Common Lisp 코드 파일과 충돌이 발생할 수 있습니다.

부분 집합 전처리기 언어

서브셋 전처리 언어(SPP)는 IRAF 초기에 계획된 IRAF 전처리 언어의 서브셋을 구현합니다.SPP 언어는 Rat for language를 기반으로 합니다.어휘 형식, 연산자 및 제어 흐름 구성은 Ratfor에서 제공하는 것과 동일합니다.주요 차이점은 데이터 유형, 프로시저 형식, 인라인 문자열 및 문자 상수 추가, 배열에 대괄호 사용 및 작업 문입니다.제공되는 I/O 설비는 상당히 다릅니다.[16]

IRAF와 함께 제공되는 xc 프로그램은 SPP 프로그램을 포트란 66으로 변환하고, 거기서 f2c를 C 코드로 변환합니다.

전처리기는 mkpkg, make like build automation tool, generic, generic을 type dependent source code로 변환하는 도구, 그리고 SPP 출력을 생성하기 위해 수정된 yacc인 xyacc로 보완됩니다.

다음은 SPP의 간단한 Hello World 프로그램입니다.

작업    안녕하세요.                   # CL 호출 가능 태스크 절차. 안녕하세요.()               # 통상적인 절차 시작한다.         불러 활자로 찍어내다 ("안녕, 세상이여\n") 끝. 

SPP 프로그램은 보통 접미사를 갖습니다..x, 일반적인 도구를 사용하여 전처리해야 하는 것들은.gx.

보조 소프트웨어

완전한 IRAF 작업 환경에서는 일반적으로 그래픽 창이 있는 확장 xterm 창(xgterm이라고 불리며 별도의 x11iraf 패키지에 배포됨)과 "이미지 서버"라고 불리는 이미지 디스플레이 프로그램이 필요합니다.가장 인기 있는 두 개의 이미지 서버는 SAO image DS9(SAO 기준)와 ximtool(NOAO, x11iraf [17]패키지에도 배포됨)입니다.

xgterm과 명령어의 대안으로 파이썬 패키지 PyRAF를 사용할 수 있습니다.PyRAF는 CL 스크립트를 파이썬 스크립트로 변환할 수 있습니다.또한 그래픽 창(Tk 또는 Matplotlib 기준)을 제공합니다.명령 셸로는 Python 또는 IPython 명령 셸을 사용하거나 CL 명령 [18]셸의 모양과 느낌을 많이 닮은 특수 모드를 사용할 수 있습니다.

참고 항목

참고문헌

  1. ^ "Data reduction / Software NOIRLab Science". www.noirlab.edu. Retrieved 2022-12-11.
  2. ^ "IRAF 2.17". IRAF Community Distribution. Retrieved 2022-12-11.
  3. ^ Fitzpatrick, Mike (September 2012). "IRAF: Lessons for Project Longevity". ASP Conference Series. 461: 595.
  4. ^ Heck, Andre, ed. (2000). Information handling in astronomy. Springer Science+Business Media. pp. 83–85. ISBN 978-94-010-5871-1.
  5. ^ Boroson, Todd (September 2005). "Data Products and Software at NOAO — Some Changes Coming". NOAO-NSO Newsletter. No. 83. pp. 10–12.
  6. ^ Yamauchi, Chisato (August 2008). "Porting the IRAF to x86_64 OS". ASP Conference Series. 394: 666–669.
  7. ^ Fitzpatrick, Mike; Smith, Chris (December 2007). "IRAF V2.14 and Ximtool Releases". NOAO-NSO Newsletter. No. 92. pp. 21–22.
  8. ^ "IRAF Release Notes". Retrieved 2022-03-13.
  9. ^ "IRAF V2.16 Release Notes". Retrieved 2023-03-19.
  10. ^ "License problems in IRAF". IRAF Community Distribution. Retrieved 2022-12-10.
  11. ^ "Debian -- Details of package iraf in bullseye". packages.debian.org. Retrieved 2022-12-10.
  12. ^ Tody, Doug (January 1986). "The IRAF Data Reduction and Analysis System" (PDF). Proc. SPIE Instrumentation in Astronomy. VI: 627–733.
  13. ^ "External packages". IRAF Community Distribution. Retrieved 2022-12-10.
  14. ^ "IRAF documentation — IRAF 2.17 documentation". iraf.readthedocs.io. Retrieved 2022-12-10.
  15. ^ "CL Programmer's Manual — IRAF 2.17 documentation". iraf.readthedocs.io. Retrieved 2022-12-11.
  16. ^ "SPP Reference Manual — IRAF 2.17 documentation". iraf.readthedocs.io. Retrieved 2022-12-11.
  17. ^ "X11IRAF – Graphical tools to work with IRAF". IRAF Community Distribution. Retrieved 2022-12-11.
  18. ^ "The PyRAF Tutorial — PyRAF 2.2 documentation". pyraf.readthedocs.io. Retrieved 2022-12-11.

외부 링크