stringtranslate.com

Fuerza Aérea de Irán

IRAF (Image Reduction and Analysis Facility) es una colección de software escrito en el Observatorio Nacional de Astronomía Óptica (NOAO) orientado a la reducción de imágenes astronómicas y espectros en forma de matriz de píxeles. Se trata principalmente de datos tomados de detectores de matriz de imágenes como CCD . Está disponible para todos los principales sistemas operativos para mainframes y computadoras de escritorio. IRAF fue diseñado para ser multiplataforma, compatible con VMS y sistemas operativos similares a UNIX . Su uso en Microsoft Windows fue posible gracias a Cygwin en versiones anteriores, y hoy se puede hacer con el Subsistema de Windows para Linux . Hoy en día, se utiliza principalmente en macOS y Linux .

Los comandos IRAF (conocidos como tareas) están organizados en estructuras de paquetes. Se pueden agregar paquetes adicionales a IRAF. Los paquetes pueden contener otros paquetes. Hay muchos paquetes disponibles de NOAO y desarrolladores externos que a menudo se centran en una rama de investigación o instalación en particular.

La funcionalidad disponible en IRAF incluye la calibración de los flujos y posiciones de los objetos astronómicos dentro de una imagen, la compensación de las variaciones de sensibilidad entre los píxeles del detector, la combinación de múltiples imágenes o la medición de los desplazamientos al rojo de las líneas de absorción o emisión en un espectro .

Aunque IRAF sigue siendo muy popular entre los astrónomos, se detuvo el desarrollo y el mantenimiento institucionales. IRAF ahora se mantiene como software comunitario. [1] [2]

Historia

El proyecto IRAF comenzó en el otoño de 1981 en el Observatorio Nacional de Kitt Peak. En 1982, se completó un diseño preliminar y la primera versión del lenguaje de comandos (CL). Se fundó el Grupo IRAF. El diseñador del sistema IRAF y programador jefe fue Doug Tody. En 1983, el Instituto de Ciencia del Telescopio Espacial seleccionó IRAF como el entorno para su sistema de análisis de datos SDAS y adaptó el sistema a VMS. La primera versión interna de IRAF se publicó en 1984. Después de una distribución limitada en algunos sitios externos, la primera versión pública se publicó en 1987. [3]

A mediados de los años 90, se inició el proyecto "Open IRAF" para abordar los problemas que se observaban en ese momento. Esto incluía enlaces de lenguaje, una forma de usar componentes IRAF sin el entorno IRAF completo, nuevos tipos de datos y código de usuario cargable dinámicamente. [4] Este proyecto nunca se completó.

A finales de los años 90, el desarrollo de IRAF se ralentizó considerablemente, ya que el sistema se consideraba maduro. El soporte a los usuarios se trasladó a un foro web en 2005 y el nuevo desarrollo del sistema central se redujo oficialmente a un nivel muy bajo. [5] Sin embargo, el trabajo voluntario de los desarrolladores de IRAF continuó y distribuyeron algunas versiones intermedias no oficiales. [6]

Entre 2006 y 2009, se realizó un primer esfuerzo para portar IRAF a 64 bits en el Instituto de Ciencias Espaciales y Astronáuticas de Japón. [7] Si bien este esfuerzo no evolucionó hasta convertirse en una nueva versión oficial de IRAF, contribuyó con partes significativas al puerto de 64 bits de NOAO.

NOAO reanudó sus esfuerzos de desarrollo en 2007, [8] adaptando el sistema a 64 bits y agregándole capacidades de Observatorio Virtual. Esta fase finalizó en 2013 con el lanzamiento de la versión 2.16.1.

En 2017, el código fuente se transfirió a GitHub . En un esfuerzo por empaquetar el software IRAF para Debian , se limpió del código fuente no libre restante y, desde entonces, lo mantiene únicamente la comunidad. Después de algunos lanzamientos previos, se lanzó la versión 2.17 a principios de 2022. [9]

En 2023, NOIRLab (sucesor de NOAO) reanudó parte del desarrollo y creó su propia versión 2.18 con un alcance limitado para respaldar el antiguo proceso de reducción de datos de Gemini . [10] Los cambios relevantes se fusionaron posteriormente en la versión comunitaria 2.18. [11]

Licencias

La licencia de IRAF generalmente sigue el esquema de licencias MIT . Las versiones anteriores contenían algún software no libre. En particular, el código gráfico NCAR restringía la redistribución de IRAF antes de que fuera eliminado en la versión 2.16. [13] Además, las versiones anteriores usaban código tomado del libro Numerical Recipes bajo una licencia diferente. Este código fue eliminado o reemplazado por código abierto en versiones posteriores a la 2.16.1. [14] Esto permitió la distribución de paquetes de IRAF en distribuciones de Linux convencionales como Debian [15] o Ubuntu.

Diseño del sistema

Cuatro componentes básicos conforman el sistema IRAF en tiempo de ejecución: [16]

Sólo el HSI es dependiente del sistema. Todos los demás componentes son portables mediante el uso de las funciones proporcionadas por el HSI. De esta manera, la portabilidad a un nuevo sistema requiere sólo cambios en este componente. Sin embargo, el diseño inicial se basaba implícitamente en el uso universal de tipos de datos de 32 bits y, por lo tanto, la portabilidad a 64 bits requirió grandes esfuerzos no sólo en el HSI sino en todos los componentes del sistema.

Paquetes de aplicaciones

Los paquetes de aplicación se estructuran recursivamente en subpaquetes y tareas. Se pueden dividir en dos clases: utilidades generales de sistema y de procesamiento de datos básicos, y paquetes específicos para la reducción y el análisis de datos astronómicos. Las tareas se escriben predominantemente en SPP y CL.

Paquetes del sistema

Los paquetes del sistema se encuentran en el paquete base de IRAF y proporcionan herramientas para el CL, utilidades útiles del sistema operativo y utilidades científicas básicas, por ejemplo, para el procesamiento de imágenes:

datosio
Conversión de formato de datos ( FITS , formato de imagen IRAF, etc.)
imágenes
Procesamiento y visualización de imágenes de mapa de bits en general
liza
Procesamiento de listas
trama
Utilidades para trazar gráficos vectoriales
Herramientas blandas
Herramientas de desarrollo de software y mantenimiento de sistemas
sistema
Utilidades del sistema
utilidades
Utilidades varias, incluyendo nttools para manejar tablas.

Paquetes de astronomía óptica

Los paquetes noao se utilizan para el análisis de datos astronómicos ópticos. La mayoría de estas tareas son generales, pero el paquete imred también contiene tareas de reducción de datos para instrumentos específicos. Algunos de los paquetes importantes son:

Imred
Paquete de reducción de imágenes que contiene tanto tareas generales para la reducción de datos astronómicos como para instrumentos específicos de KPNO
datos de arte
Paquete de generación de datos artificiales. Puede generar catálogos artificiales, espectros 2D y 2D, crear imágenes a partir de estrellas artificiales, galaxias, ruido y rayos cósmicos, etc., para fines de prueba.
astrometría
Paquete de astrometría para obtener coordenadas astrométricas de objetos en campos estelares
foto digital
Paquete de fotometría estelar digital
Partícula IRAF del paquete onedspec en funcionamiento.
especificación única
Paquete de análisis y reducción de datos espectrales unidimensionales. Una tarea importante de este paquete es splot , una herramienta gráfica para el análisis de espectros.
dosdspec
Paquete de análisis y reducción espectral bidimensional, las mismas operaciones para espectros bidimensionales ( longslit , multispec)
foto de surf
Paquete de análisis isofótico de galaxias
gato astuto
Paquete de acceso a catálogos y sondeos astronómicos

Paquetes externos

Una de las fortalezas de IRAF era la existencia de varios paquetes externos que resolvían problemas específicos o implementaban canales especializados de reducción de datos. Entre los paquetes se encuentran:

encaja útil
Utilidades para archivos FITS de extensión simple y múltiple
mesa de juego
Paquete IRAF para espectros tabulares
cio
Herramientas para el Observatorio Interamericano de Cerro Tololo
Días de San Valentín
Sistema de software del Space Telescope Science Institute para calibrar y analizar datos del telescopio espacial Hubble . El soporte de tareas seleccionadas del paquete stsdas continúa en el paquete st4gem . El paquete de tablas original de STSci ahora se incluye como utilities.nttables en los paquetes del sistema.
stecf
Tareas del IRAF desarrolladas en la Instalación Coordinadora Europea del Telescopio Espacial
rvsao
Paquete de velocidad radial del Observatorio Astrofísico Smithsoniano
taburetes de baño
Utilidades del sistema de coordenadas de Image World por Jessica Mink
hacha
Software de extracción y visualización espectral
Géminis
Proceso de reducción de datos para el Observatorio Gemini

Sin embargo, muchos de estos paquetes ya no reciben mantenimiento. [17] La ​​migración a 64 bits también requirió un esfuerzo significativo y no todos los paquetes externos fueron trasladados y, por lo tanto, solo se pueden usar en un entorno de 32 bits.

Tareas definidas por el usuario

IRAF permite a los usuarios escribir sus propias tareas de dos formas principales. Una es escribiendo scripts de procedimientos no compilados (lenguaje de comandos, CL). La segunda es a través de programas de preprocesador de subconjuntos compilados (SPP). Existen documentos tutoriales para ambos métodos. [18]

Idiomas específicos de IRAF

Lenguaje de comandos

El lenguaje de comandos (CL) sirve como interfaz de soporte de comandos y tiempo de ejecución entre el usuario en su terminal de computadora y los programas de aplicación que está ejecutando. El usuario escribe sus comandos en el CL y este realiza todas las tareas y manipulaciones de archivos que sean necesarias para ejecutar los comandos. En versiones posteriores, el CL original se amplió a ECL, que tiene una línea de comandos editable como su principal ventaja. También se desarrolló una versión que permitía el acceso directo al Observatorio Virtual (VOCL).

El CL sirve principalmente como un shell y organiza el trabajo con el sistema y las aplicaciones. Hay tres tipos de tareas que el CL puede ejecutar: tareas nativas, que son parte de ejecutables IRAF compilados, scripts (tareas CL que son tareas escritas en CL) y tareas foráneas, programas externos o scripts que son ejecutados por el CL. Para cada tarea, puede existir un archivo de parámetros. Contiene una descripción de cada uno de los parámetros utilizados por la tarea que el CL debe conocer y administrar. [19]

Aquí hay un script simple de Hola Mundo en CL:

{ print ( ' Hola , mundo !! ' ) }    

Los scripts CL normalmente tienen el sufijo .cl, lo que puede causar conflictos con los archivos de código Common Lisp .

Lenguaje de preprocesador de subconjunto

El lenguaje de preprocesador de subconjuntos (SPP) implementa un subconjunto del lenguaje de preprocesador IRAF que se planeó en los primeros días de IRAF. El lenguaje SPP se basa en el lenguaje Ratfor . La forma léxica, los operadores y las construcciones de flujo de control son idénticos a los proporcionados por Ratfor. Las principales diferencias son los tipos de datos, la forma de un procedimiento, la adición de cadenas en línea y constantes de caracteres, el uso de corchetes para matrices y la declaración de tarea . Las facilidades de entrada/salida proporcionadas son bastante diferentes. [20]

El programa xc , proporcionado con IRAF, traduce programas SPP a Fortran 66 , y desde allí con f2c a código C.

El preprocesador se complementa con mkpkg , una herramienta de automatización de compilación similar a make , generic , una herramienta para traducir tipos genéricos en código fuente dependiente del tipo, y xyacc , un yacc modificado para producir salida SPP.

Aquí hay un programa simple de Hola Mundo en SPP:

tarea  hola #  procedimiento de tarea invocable CL hola () # procedimiento común inicio llamada printf ( "hola, mundo \n " ) fin     

Los programas SPP normalmente tienen el sufijo .x, aquellos que necesitan ser preprocesados ​​con la herramienta genérica.gx tienen .

Software complementario

Un entorno de trabajo IRAF completo normalmente requiere otras dos aplicaciones: una ventana xterm extendida con una ventana gráfica (llamada xgterm y distribuida en un paquete x11iraf independiente) y un programa de visualización de imágenes denominado "servidor de imágenes". Los dos servidores de imágenes más populares son SAOImageDS9 (de SAO ) y ximtool (NOAO, también distribuido en el paquete x11iraf). [21]

Como alternativa a xgterm y al lenguaje de comandos, se puede utilizar el paquete PyRAF de Python , que es capaz de traducir scripts de CL a scripts de Python. También proporciona una ventana gráfica (basada en Tk o en Matplotlib ). Como shell de comandos, se puede utilizar el shell de comandos de Python o IPython , o un modo especial que se asemeje en gran medida al shell de comandos de CL. [22]

Véase también

Referencias

  1. ^ "Reducción de datos / Software | NOIRLab Science" www.noirlab.edu . Consultado el 11 de diciembre de 2022 .
  2. ^ "IRAF 2.17". Distribución comunitaria de IRAF . Consultado el 11 de diciembre de 2022 .
  3. ^ Fitzpatrick, Mike (septiembre de 2012). "IRAF: lecciones para la longevidad de los proyectos". Serie de conferencias de la ASP . 461 : 595. Código Bibliográfico :2012ASPC..461..595F.
  4. ^ Heck, Andre, ed. (2000). Manejo de información en astronomía . Springer Science+Business Media. pp. 83–85. ISBN 978-94-010-5871-1.
  5. ^ Boroson, Todd (septiembre de 2005). "Productos de datos y software en NOAO: se avecinan algunos cambios". Boletín informativo NOAO-NSO . N.º 83. págs. 10-12.
  6. ^ Smith, Chris; Fitzpatrick, Mike (septiembre de 2007). "IRAF 2.14". Boletín NOAO-NSO . N.º 91. pág. 28.
  7. ^ Yamauchi, Chisato (agosto de 2008). "Portar el IRAF al sistema operativo x86_64". Serie de conferencias de la ASP . 394 : 666–669. Código Bibliográfico :2008ASPC..394..666Y.
  8. ^ Fitzpatrick, Mike; Smith, Chris (diciembre de 2007). "Versiones de IRAF V2.14 y Ximtool". Boletín NOAO-NSO . N.º 92. págs. 21-22.
  9. ^ "Notas de la versión de IRAF 2.17 — Documentación de IRAF 2.17". iraf.readthedocs.io . Consultado el 23 de abril de 2024 .
  10. ^ Fitzpatrick, Michael; Placco, Vinicius; Bolton, Adam; Merino, Brian; Ridgway, Susan; Stanghellini, Letizia (3 de enero de 2024). "Modernización de IRAF para respaldar la reducción de datos de Gemini". arXiv : 2401.01982 [astro-ph.IM].
  11. ^ "Notas de la versión de IRAF 2.18 — Documentación de IRAF 2.18". iraf.readthedocs.io . Consultado el 11 de abril de 2024 .
  12. ^ "Notas de la versión de la IRAF" . Consultado el 13 de marzo de 2022 .
  13. ^ "Notas de la versión IRAF V2.16" . Consultado el 19 de marzo de 2023 .
  14. ^ "Problemas de licencia en IRAF". IRAF Community Distribution . Consultado el 10 de diciembre de 2022 .
  15. ^ "Debian -- Detalles del paquete iraf en bullseye". packages.debian.org . Consultado el 10 de diciembre de 2022 .
  16. ^ Tody, Doug (enero de 1986). Crawford, David L. (ed.). "El sistema de análisis y reducción de datos IRAF" (PDF) . Proc. SPIE Instrumentación en Astronomía . Instrumentación en Astronomía VI. VI : 627–733. Bibcode :1986SPIE..627..733T. doi :10.1117/12.968154.
  17. ^ "Paquetes externos". Distribución comunitaria de IRAF . Consultado el 10 de diciembre de 2022 .
  18. ^ "Documentación de IRAF — Documentación de IRAF 2.17". iraf.readthedocs.io . Consultado el 10 de diciembre de 2022 .
  19. ^ "Manual del programador de CL — Documentación de IRAF 2.17". iraf.readthedocs.io . Consultado el 11 de diciembre de 2022 .
  20. ^ "Manual de referencia de SPP — Documentación de IRAF 2.17". iraf.readthedocs.io . Consultado el 11 de diciembre de 2022 .
  21. ^ "X11IRAF – Herramientas gráficas para trabajar con IRAF". Distribución comunitaria de IRAF . Consultado el 11 de diciembre de 2022 .
  22. ^ "El tutorial de PyRAF: documentación de PyRAF 2.2". pyraf.readthedocs.io . Consultado el 11 de diciembre de 2022 .

Enlaces externos