1 of 38

Astronomía Práctica II

Lauren Flor Torres, PhD

1

​

​

2 of 38

IRAF (Image Reduction and Analysis Facility)

  • Un paquete de uso común en la astronomía.
  • IRAF es usado para desarrollar procedimientos de análisis y reducción de datos (imágenes, espectros) astronómicos.
  • Presenta una estructura de paquetes dentro de los cuales hay tareas (tasks) o programas que realizan procedimientos específicos.
  • No es la única, ni la mejor, ni la peor herramienta pero si nos guiamos por el tiempo de desarrollo de esta herramienta (desde 1984) se ha convertido en una herramienta conocida y la más cómoda de usar.
  • Dentro de sus actualizaciones se han incorporado paquetes nuevos, incluso asociado a instrumentos y/o telescopios. P. ej. STDAS (paquete de análisis del Space Telescope Science Institute) o paquetes del GEMINI.
  • ¡Aún es un software libre!

3 of 38

IRAF (Image Reduction and Analysis Facility)

  • El sistema consiste de cuatro piezas básicas que son:
    • Lenguaje de comandos - (CL, interfaz del usuario con el sistema)
    • Paquetes de aplicación - (Algoritmos para analizar datos reales)
    • Sistema operativo virtual - (VOS Interfaz del sistema huésped)

​

  • CL (Command Language) - La función básica de cl es proporcionar una interfaz entre el usuario y todos los paquetes de aplicación de IRAF. Muchos de los programas en los paquetes son funciones estándar para análisis de datos, de los cuales la mayoría son iterativos. La ejecución se controla con parámetros que el usuario puede modificar.

4 of 38

IRAF (Image Reduction and Analysis Facility)

5 of 38

IRAF (Image Reduction and Analysis Facility)

Paquetes y tareas

Un paquete es un conjunto de tareas o comandos que están lógicamente conectados. Para cargar o tener acceso a un paquete únicamente se necesita teclear su nombre y dar.

​

Para cargar o tener acceso a las tareas del paquete plot se teclea esa palabra y mostrará las tareas del paquete:

6 of 38

IRAF (Image Reduction and Analysis Facility)

Representación de archivos de imágenes

​

Un archivo de imagen es una matriz de número que representa tripletas (x, y, I) donde (x, y) son las coordenadas espaciales de un punto sobre la imagen e I es la intensidad.

​

En el caso de imágenes digitales, las imágenes están representadas por un número fijo finito de elementos de imagen, o píxeles. Los píxeles definen una discretización en un sistema de coordenadas cartesiano que referencia un punto sobre la imagen. Cada píxel está caracterizado por sus coordenadas e intensidad. Cuando se realizan operaciones sobre la imagen, realmente se opera sobre cada uno de los píxeles de la misma.

7 of 38

IRAF (Image Reduction and Analysis Facility)

Representación de archivos de imágenes

​

  • FITS (Flexible Image Transport System)
    • Este es el formato de archivo más utilizado comúnmente en el mundo de la astronomía.
    • Si bien el formato FITS es conocido por su uso en el almacenamiento de imágenes, también se utiliza a menudo para almacenar datos que no son imágenes, como espectros, listas de fotones, cubos de datos, tablas y muchos más.
    • Siendo un formato de almacenamiento binario, un archivo FITS puede contener varios bloques de datos, y cada uno de ellos podrı́a contener distintos datos (imágenes) de un objeto.
      • Por ejemplo, es posible almacenar en un mismo archivo FITS imágenes en varias bandas de un mismo objeto.

8 of 38

IRAF (Image Reduction and Analysis Facility)

Representación de archivos de imágenes

​

  • FITS (Flexible Image Transport System)
    • Una de las mayores ventajas del formato FITS para su uso en ciencia, y que es lo que lo ha hecho particularmente útil en astronomía, es que asociado a cada archivo (o bloque de datos en el archivo) hay una cabecera con información que es legible en formato ASCII. Esto hace que un usuario pueda examinar las cabeceras de un archivo para investigar su procedencia y contenidos y determinar así su origen y demás información característica útil. Esta particularidad resulta bastante útil al momento de manipular grandes cantidades de datos, administrar los archivos en bases de datos, o transportar los datos y hacerlos durables y usables en el tiempo.

9 of 38

IRAF (Image Reduction and Analysis Facility)

Representación de archivos de imágenes

​

  • FITS (Flexible Image Transport System)
    • Cada archivo FITS consiste en una o varias cabeceras (headers) y su respectivo bloque de datos en formato binario. Cada header contiene secuencias de 80 cadenas de caracteres fijos que llevan pares de valores en la forma de un keyword y su valor asociado. Cada par de valores provee información importante en la forma de metadatos, como son el tamaño, origen, formato binario de los datos, comentarios, historia de los datos y cualquier otra información que el creador desee. Aunque se cuenta con algunas palabras restringidas para el header de los archivos en formato FITS, el estándar permite el uso arbitrario de cualquier palabra.

10 of 38

IRAF (Image Reduction and Analysis Facility)

ANTES DE SEGUIR

​

  • El archivo login.cl contiene todos los aspectos específicos asociados al funcionamiento de la sesión de IRAF del usuario. Puede resultar conveniente editar este archivo para conseguir un comportamiento más cómodo del programa.

​

  • (iraf27) lauren@lauren-VirtualBox:~/iraf$ gedit login.cl
  • ó
  • (iraf27) lauren@lauren-VirtualBox:~/iraf$ vi login.cl

​

Por ejemplo, editar los parámetros a continuación,

​

set editor = emacs

set stdimage = imt8192

set imtype = ”fits”

​

11 of 38

IRAF (Image Reduction and Analysis Facility)

INICIANDO

​

  • Para abrir la terminal xgterm,

​

  • (iraf27) lauren@lauren-VirtualBox:~/iraf$ xgterm&

​

  • (iraf27) lauren@lauren-VirtualBox:~/iraf$ xgterm -sbr&

​

  • Y en él escribimos otra vez:

(base) lauren@lauren-VirtualBox:~/iraf$ source activate iraf27

​

  • Luego escribimos:

​

(iraf27)lauren@lauren-VirtualBox:~/iraf$ ds9&

  • Finalmente escribimos:

​

(iraf27)lauren@lauren-VirtualBox:~/iraf$ cl

​

​

​

12 of 38

IRAF (Image Reduction and Analysis Facility)

INICIANDO

​

  • Lea detenidamente el mensaje de bienvenida de la consola de IRAF. El usuario familiarizado con paquetes como gnuplot notará cierta similitud con la consola de IRAF. Como notará, IRAF atiende a instrucciones ingresadas por la linea de comandos del prompt y se ejecuta directamente sobre la consola xgterm. Cerrar la consola xgterm implicará cerrar la aplicación de IRAF.

​

  • Para cerrar una sesión IRAF bastará con ejecutar el comando

​

cl>logout

​

​

​

13 of 38

IRAF (Image Reduction and Analysis Facility)

Al ejecutar cl, automáticamente carga varios paquetes y con el comando siguiente podemos saber que paquetes ya están cargados:

​

​

​

14 of 38

IRAF (Image Reduction and Analysis Facility)

Al ejecutar cl, automáticamente carga varios paquetes y con el comando siguiente podemos saber que paquetes ya están cargados:

​

​

¡cl - distingue entre las letras mayúsculas y minúsculas para el nombre de un comando o los argumentos!

15 of 38

IRAF (Image Reduction and Analysis Facility)

Para volver al prompt básico de IRAF (cl>) se puede hacer

​

cl>bye

​

El comando bye descarga el paquete que se encuentre cargado en su instancia mas inmediata. Note que se puede navegar a través de los paquetes hacia adelante usando el nombre del paquete, y hacia atrás con el comando bye.

16 of 38

IRAF (Image Reduction and Analysis Facility)

Una lista de todos los paquetes y sus respectivas tareas se obtiene al teclear "??" y con "?" se lista únicamente los nombres de las tareas del paquete activo o con "?nombre-del_paquete" listará las tareas del paquete especificado, siempre que haya sido cargado previamente. Los nombres de los paquetes y tareas pueden darse de forma abreviada (los primeros tres o cuatro caracteres, evitando la ambigüedad). Si la abreviatura no es única se tendrá un mensaje de error.

17 of 38

IRAF (Image Reduction and Analysis Facility)

En la parte superior central de la ayuda aparece la ruta de la tarea, que en este caso será noao.astutil. Para ejecutar la tarea precess, se deberá cargar este paquete tecleando:

​

​

​

​

​

​

​

​

​

​

​

Notar que en nuestro caso la tarea noao ya se encuentra cargada, de no ser así, se tendría que cargar antes del paquete astutil.

​

18 of 38

IRAF (Image Reduction and Analysis Facility)

Comando Generales de Ayuda

​

  • Para saber en qué paquete se encuentra una tarea, el comando help proporciona esta información. Por ejemplo, si deseamos saber donde esta la tarea precess, se debe de teclear:
  • plot> help precess

​

​

​

19 of 38

IRAF (Image Reduction and Analysis Facility)

Comando Generales de Ayuda

​

  • Otro comando de ayuda particularmente poderoso es el comando refer. El comando refer busca en la documentación de todos los paquetes una palabra en particular. Por ejemplo, si se quiere ver cuales paquetes hacen alusión al término fft se ejecuta

​

  • cl>refer fft

​

​

​

20 of 38

IRAF (Image Reduction and Analysis Facility)

Comando Generales de Ayuda

​

  • Ahora, suponga que usted está en el interior de un paquete, pero ya perdió de la vista la lista de tasks y paquetes contenidos en el. Para ver que paquetes y tasks hay disponibles en el nivel actual, se usa el comando ?

​

  • cl>?

​

​

​

21 of 38

IRAF (Image Reduction and Analysis Facility)

Comando Generales de Ayuda

​

  • Si además se quiere ver que hay contenido dentro de cada uno de los paquetes que hay instalados en IRAF, sin tener que cargarlos, se puede ejecutar

​

  • cl>??

​

​

​

22 of 38

IRAF (Image Reduction and Analysis Facility)

Comando Generales de Ayuda

​

  • Si se quiere recuperar un comando que se ha ejecutado anteriormente, se puede usar las flechas del teclado hacia arriba o hacia abajo (como en el shell del sistema operativo linux). Otra forma es usar el comando history. Este comando recupera la lista de últimos comandos ejecutados. Si se ejecuta sin argumentos, history recuperará los últimos 10 comandos (numero por defecto) pero si se quieren recuperar los últimos 23 comandos ejecutados en el shell de IRAF se puede ejecutar

​

  • cl>history 23

​

​

​

23 of 38

IRAF (Image Reduction and Analysis Facility)

Comando Generales de Ayuda

​

  • Para mostrar la lista de parámetros necesarios para el funcionamiento de un task se utiliza la tarea lpar. Por ejemplo,

​

  • cl>lpar imheader

​

lista los parámetros de funcionamiento del task imheader.

​

​

​

24 of 38

IRAF (Image Reduction and Analysis Facility)

Comando Generales de Ayuda

​

  • El task imheader lee el header de un archivo fits y lo imprime en pantalla. lpar nos ha mostrado que hay varios parámetros que se pueden pasar al task imheader para su ejecución.

​

  • cl>imheader dev$pix

​

​

​

​

​

25 of 38

IRAF (Image Reduction and Analysis Facility)

Comando Generales de Ayuda

​

  • Es decir, ejecutando el task imheader con los valores por defecto, esta es toda la información que se provee, que claramente no es toda la información contenida en el header de la imagen. Si se modifica uno de los parámetros del task, especı́ficamente el parámetro longheader=yes se obtendrá mucha mas información. Ası́ entonces la ejecución pra ver el header competo de la imagen deberı́a ser

​

  • cl>imheader dev$pix longheader=yes

​

​

​

​

​

26 of 38

IRAF (Image Reduction and Analysis Facility)

Comando básicos de tratamiento de imágenes

​

  • Para visualizar la imagen hay que usar una herramienta auxiliar, ds9. El ds9 es un paquete creado por el Smithsonian Astrophysical Observatory, y aunque es una herramienta que funciona independientemente de IRAF, se puede usar en conjunto con este como la herramienta de visualización de las imágenes.

​

  • cl>!ds9&
  • Para abrir una imagen desde IRAF se utiliza el comando display. display abrirá la imagen especificada como argumento en la linea de comandos (o en el conjunto de valores de sus parámetros) con las opciones que se le entreguen. Por ejemplo, la ejecución del comando :

​

  • cl> display dev$pix 1

​

  • abrirá la imagen de M51 empacada por defecto con IRAF en el frame 1.

​

​

​

​

​

​

27 of 38

IRAF (Image Reduction and Analysis Facility)

Comando básicos de tratamiento de imágenes

​

  • Como podrán explorar, ds9 permite el uso de más de un frame (hasta 16) simultáneamente. En un segundo frame se puede abrir la misma imagen pero con su intensidad mapeada en una escala logarítmica.

​

  • cl>display dev$pix 2 ztrans=log

​

Note que la imagen anterior desapareció y ahora hay una presentación diferente de los mismos datos. Si se presiona la tecla Tab teniendo activa la ventana del ds9 se puede saltar de un frame al otro.

​

​

​

28 of 38

IRAF (Image Reduction and Analysis Facility)

Comando básicos de tratamiento de imágenes

​

  • IRAF tiene sus propios comandos de copiado y eliminación de imágenes imcopy e imdelete.

​

  • En particular, imcopy puede resultar mas conveniente, por que permite copiar segmentos de imagen, por ejemplo, para copiar la región localizada entre las columnas 180 y 320 y las filas 200 y 310 y guardar el resultado en el archivo de imagen segment.fits se puede hacer uso de la siguiente instrucción,

​

cl>imcopy dev$pix[180:320,200:310] segment.fits

​

cl> display segment.fits 3

​

​

​

29 of 38

IRAF (Image Reduction and Analysis Facility)

Otros comando básicos para operar en imágenes

​

  • Imstatistics:

​

  • El task imstatistics produce estadı́sticos básicos de una imagen o sección de imagen. Por ejemplo la ejecución
  • cl>imstat dev$pix fields= ‘‘image,mean,midpt,mode,stddev’’

​

  • calculará la media, mediana, punto medio, moda y desviación estándar para la distribución de pı́xeles en toda la imagen dev$pix imprimiendo el resultado en la pantalla con cinco columnas y cada uno de los campos en comillas en una columna.

​

30 of 38

IRAF (Image Reduction and Analysis Facility)

​

​

  • imexamine:

​

cl>imexamine segments.fits 2

​

​

31 of 38

IRAF (Image Reduction and Analysis Facility)

​

​

  • imexamine:

​

cl>imexamine segments.fits 2

​

​

32 of 38

IRAF (Image Reduction and Analysis Facility)

​

​

  • imexamine:

​

cl>imexamine segments.fits 2

​

​

33 of 38

IRAF (Image Reduction and Analysis Facility)

Otros comando básicos para operar en imágenes

​

  • imarith:

El task imarith ejecuta operaciones aritméticas entre imágenes. imarith: funciona según la sintaxis

cl>imarith imagen1 operación imagen2 resultado

​

donde imagen1 y imagen2 son los operandos, es decir, dos archivos de imagen preexistentes, mientras que resultado será un archivo de imagen nuevo que se creará como resultado de la operación operación. Las operaciones que se pueden realizar con imarith son suma (+), resta (-), multiplicación (*) y división (/), además de las operaciones “min” y “max”.

​

34 of 38

IRAF (Image Reduction and Analysis Facility)

Otros comando básicos para operar en imágenes

​

  • imcombine:

​

El task imcombine combina un conjunto de imágenes a través de una operación especificada: promedio, mediana, sumas pesadas, cuadraturas, cuadraturas pesadas. Este task es extremadamente útil durante los procesos de reducción, para hacer, por ejemplo, la combinación de archivos de calibración como superdarks o superbias.

​

35 of 38

IRAF (Image Reduction and Analysis Facility)

Otros comando básicos para operar en imágenes

​

  • imshift:

​

Si se necesita desplazar una imagen, por ejemplo para alinear un conjunto de imágenes tomadas en diferentes bandas para hacer una combinación de colores, el task indicado es imshift. imshift hace desplazamientos horizontales y verticales en una imagen un conjunto dado de pı́xeles. Por ejemplo la ejecución

cl>imshift imagenI imagenO 5 5

inducirá un shift de 5 pí́xeles a la derecha y 5 pí́xeles hacia arriba en la imagen imagenI y producirá como resultado una nueva imagen imagenO (con las nuevas posiciones desplazadas).

​

36 of 38

IRAF (Image Reduction and Analysis Facility)

Otros comando básicos para operar en imágenes

​

  • imtranspose:

​

Este task hace una transposición de la o las imágenes de entrada. Recordando que una imagen bidimensional se puede ver como una matriz, imtranspose intercambia filas por columnas en la imagen de entrada y como resultado produce una nueva imagen con la transposición. Su sintaxis es como sigue

​

cl>imtranspose imagenI imagenO

​

37 of 38

IRAF (Image Reduction and Analysis Facility)

Otros comando básicos para operar en imágenes

​

  • rotate:

​

Este task es una versión mas completa que imshift en el sentido que induce rotaciones y traslaciones arbitrarias sobre una imagen.

​

38 of 38

IRAF (Image Reduction and Analysis Facility)

​

​

  • implot:
  • Otro task importante, y que puede ser usado en modo interactivo es implot. La función básica de implot es graficar líneas y columnas de una imagen, ası́ por ejemplo, si se quiere graficar toda la columna 50 (x = 50) de la imagen expuesta en el visor ds9, entonces

​

cl>implot dev$pix[50,*]

​

donde de nuevo se usa la sintaxis de bloque de imagen. Ası́ como con imcopy, en general, IRAF puede trabajar con secciones de imagen delimitadas por la sintaxis [xmin:xmax, ymin:ymax]. Es ası́ como en el ejemplo anterior, indicando el rango en y con * libera todos los posibles valores de y en la gráfica.

Note que la ejecución de implot le quita el control al prompt de IRAF y se lo entrega al cursor sobre la ventana de ximtool. Las opciones básicas en esta consola interactiva son

​

:c # (grafica la columna #)

:l # (grafica la linea #)

q finaliza la ejecución del modo interactivo

:o mantiene la gráfica (overplot)

:i <filename> nuevo archivo para graficar

​

​