Conversión de formatos de datos


Centro de Ciencies de la Materia Condensada
UNAM
Noemi Abundiz Cisneros,
Javier Salinas Luna,
Joaquín Bohigas (IA-UNAM)
y Roberto Machorro

Índice

Como convertir una imagen Andor a ASCII
Como convertir una imagen fits a ASCII desde Iraf
Hacer la traza de una imagen en fits a ASCII desde Iraf
Ver una imagen en Fits en una consola Xgterm con utilizando en programa Ds9
Como convertir una imagen de extensión sif-asc y de asc-fits
Como convertir una imágen de 10MB a 10 imágenes de 256x1024 píxeles de extensiónsif-ascii y ascii-fits


Ir a Índice
Sección 4. Como convertir una imagen fits a ASCII desde Iraf*

Para convertir un espectro ya calibrado con extensión ms.fits a ASCII se tiene que usar la rutina scopy que se encuentra en el conjunto de rutinas onedspec, sirve para separar las aperturas y grabarlas en extensión fits, es decir de un espectro multidimensional con el que contamos lo convierte en un espectro unidimensional. También con la función scopy puedes elegir el número de apertura que necesites o todas las aperturas, el programa te graba el nombre del archivo el cual quieres convertir y le añade el número de la apertura. En el siguiente listado se muestra los comandos de los cuales esta formada la rutina de scopy.

Comandos scopy
Parametros de scopy

apertur --> Si eliges esta opción tan sólo te da la apertura que quieres.
apmodul --> Si es esta opción te hace todas las aperturas.

Para crear los archivos de @entrada y @salida se utilizan los siguientes comandos:

files *ms.fits > entrada (se crea un archivo con el nombre de entrada en donde se guardan todos las imágenes con extensión ms.fits) !cp entrada salida
!cp entrada salida (Graba todos los datos que contengan el archivo entrada a otro archivo nuevo con el nombre de salida)
!gedit salida (Edita el archivo salida, en donde aquí en todos los datos se tienen que borrar la extensión, por ejemplo: 59l400.ms.fits 59l400, es muy importante hacer esto porque al correr automáticamente este programa añade la extensión fits con el número de apertura. )


Ya que se tengan creados los archivos entonces ya se puede correr el programa, pero es importante destacar que se tiene que poner antes de cada nombre un @, si no el programa lo tomará como un error y no funcionará.

on> scopy (instrucción para correr el programa)

Una vez convertidos los multiespectros a un solo espectro ya se puede utilizar el programa que también se encuentra en onedspec, que es wspectext , para convertirlos en formato ASCII y así ya se pueden utilizar para identificar las líneas espectrales.

Para utilizarlo se tiene que crear nuevamente un archivo con el nombre entrada y otra salida, no sin antes borrar los anteriores ó bien puedes poner el nombre que uno quiera.

files *ms.fits > entrada (se crea un archivo con el nombre de entrada en donde se guardan todos las imágenes con extensión fits)
!cp entrada salida (Graba todos los datos que contengan el archivo entrada a otro archivo nuevo con el nombre de salida)
!gedit salida (Edita el archivo salida, en donde aquí en todos los datos se tienen que borrar la extensión fits y cambiarla por asc, por ejemplo: 59l400.0013.fits 59l400.0013.asc)

Y con la siguiente instrucción se puede correr el programa, pero entes de eso hay que modificar el epar wspectext.

I R A F
Image Reduction and Analysis Facility
PACKAGE = onedspec
TASK = wspectext

input = @entrada Input list of image spectra
output = @salida Output list of text spectra
header = no) Include header?
wformat= %0.2f) Wavelength format
mode = ql)

en donde wformat te da la opción de elegir el número de decimales que vas a utilizar, en este caso son dos.
on> wspectext @entrada @ salida (instrucción para correr el programa)


Ir a Índice
Sección 6. Ver una imagen con extensión Fits por medio de una consola Xgterm utilizando el programa Ds9

Para instalar el programa Ds9 en Suse 9.3 hay que bajar la versión 4.0b8 de la página de internet: http://hea-www.harvard.edu/RD/ds9/, para Linux ya que si se baja la versión 3.0.3 no tiene la opción de maximizar la pantalla y versiones posteriores a esta no funcionan. El procedimiento para instalarlo en Suse 9.3 es el siguiente:

Ventandas Andor
Figura 25. Muestra como se convierte una imagen con extensión .sif a .asc por el programa Andor

Bajar la versión 4.0b8 para Linux en http://hea-www.harvard.edu/RD/ds9/
Grabarlo como superusuario en: /usr/local/bin.
Descomprimirlo con la instrucción: tar -zxvf ds9.linux.4.0b8.tar.gz
Enseguida aparecerá un ejecutable y ya se puede correr desde una consola Xgterm.
Y para correrlo desde la pantalla de Xgterm es necesario escribirlo de esta forma:!ds9

Al instalarlo en Suse y correrlo lo más probable es que el formato de las letras no sea adecuado y poco legible, por eso para cambiar el formato de debe ir al menú de Edit al estar ahí ir a Preferences y después en Default Menu Font, estando ahí hay que selecionar el tipo de letra Helvetica y tamaño 18; una vez que ya se hicieron los cambios es muy importante seleccionar Save Preferences para que haga los cambios, de ahí hay que cerrar el programa y volverlo a abrir.

Nota: El programa acepta una sola modificación a la vez, es decir, cada vez que se selecciona algo en el menú este se cierra entonces hay que volverlo a abrir.


Ir a Índice
Sección 4. Hacer la traza de una imagen en fits a ASCII desde Iraf*
Aquí se busca el seleccionar una parte de la gráfica de un espectro, para poder graficar en XY y meter en el programa de selección de líneas.
Para hacer el entresacado de un traza de una imagen usar el mando listpixels en la siguiente forma:

cl>listpixels arg500obs7.fits[1005,308:651] > arg500obs7.dat

listpixels es el mando de IRAF
arg500obs7.fits es el archivo de donde se hará la traza
[1005,308:651] es la linea a muestrear, en pixeles
308,651 es el rango de y que se muestrea
> indica que moverá los datos al archivo de salida
arg500obs7.dat nombre del archivo de salida



Ir a Índice
Sección 7. Como convertir una imagen de extensión sif-asc y asc-fits

Aunque esta sección está casi al final de este manual es uno de los pasos más importante de todos ya que si no se hacen estas conversiones no se podrá utilizar Iraf*. Entonces al tomar una imagen con el espectrógrafo automáticamente esta se guarda con la extensión .sif, y sólo se puede ver en Windows y leer por el programa Andor, que es el programa que utiliza el espectrógrafo para manejarlo. Ver figura 25.

El primer paso para convertir el programa es abrir la imagen a la cual se le quiere cambiar la extensión, ver figura 25, después abrir el menú File e irse a Export As como se muestra en el paso 1. En el paso 2 aparecerá una pantalla para poner el nombre a la imagen, el cual deberá ser el mismo nada más con extensión ASCII, y por último el paso 3 te da a elegir si quieres que los datos los separe por una coma, tabulación ó un espacio, para que funcione con el programa que la va a convertir a fits se tiene que dejar como tabulación y si uno está de acuerdo con todo se selecciona OK.
Una vez que ya se tengan las imágenes convertidas hay que recortarlas y convertirlas en Fits para empezarlas a utilizar en Iraf, entonces se utiliza un programa que desarrollo el Dr. Javier Salinas y cuyo nombre del programa es: nuevoasciiafits1, este programa funciona bien para Linux pero para Suse 9.3 el programa no corre nada más con el ejecutable en este caso se tiene que grabar una versión del ejecutable en el archivo: usr/local/bin, para que se pueda llamar desde la consola, y grabar desde cualquier equipo de computo que contenga linux un archivo con el nombre de: libg2c.so.0 que se encuentra en carpeta: usr/lib y grabarla en esta misma carpeta pero en Suse todo esto se debe hacer como super usuario. Tan solo es suficiente hacerlo la primera vez que se va a utilizar el programa de recortador de imágenes.
Una vez que se hace el procedimiento anterior se debe crear un archivo de texto con el nombre de: ¨archivos1.par¨ , este archivo se puede crear de la siguiente manera:

Si el sistema operativo que se utiliza es de Linux, entonces desde la consola se utiliza la instrucción de: gedit archivos1.par.
si el sistema operativo que se utiliza es Suse entonces la instrucción que se usa es: kate archivos1.par. a instrucción de gedit y kate mandan a llamar procesadores de texto que tanto como Linux y Suse tienen por default.

Entonces una vez que el procesador de texto se abrió se introducen los nombres de las imagenes con su extensión acomodados en una columna, hay que tener cuidado de abrir el archivo de texto en la misma ubicación de las imágenes. Ya una vez que se tiene el texto de archivos1.par con la información necesario tan sólo basta con escribir el nombre del archivo ejecutable ( nuevoasciiafits1) en la consola y esté se encargará de hacer el resto.

ota: El programa convierte y recorta una imágen ascii a una imagen con extensión fits y guarda a esta imágen con el mismo nombre y extensión pero le añade al final la extensión de fits.


Ir a Índice
8. Como convertir una imagen de 10MB a 10 imágenes de 256x1024 pixeles de extensión sif-asc y asc-fits

Para convertir una imagen de 10MB a 10 imágenes de 256x1024 pixeles de extensión sif a ascii, se hace el mismo procedimiento que en la sección número siete, pero con una sola diferencia y es que antes de convertir en ascii se tiene que cambiar las unidades con que se encuentran las imágenes, es decir tener cuidado de que las imágenes a convertir estén en pixeles y no en longitud de onda (nm, A, etc.), la calibración de los ejes coordenados se hace de la siguiente manera:

Conversio SIF a ASC Figura 26. Muestra como se convierte una imagen de 10Mb con extensión .sif a .asc por el programa Andor

Como se muestra en la figura 26 primero se abre la imágen, después se va al menú de Calibrate, luego al submenú de ¨ Change Units, al seleccionar esta opción aparecerá un cuadro en donde da a elegir las unidades de la imágen, donde en nuestro caso se tiene que elegir pixeles. Ya una vez que los ejes se encuentran en pixeles, se pueden convertir en ascii con el mismo procediento de la sección 7. Nota: La acción de convertir de sif a ascii es más lenta por que se tiene que tomar en cuenta lo grande de los archivos (más de 10 MB).

Ahora ya que se tiene la imagen en ascii, el programa que en este caso se tiene que utilizar es ¨10asciiafits¨ y para que funcione en Suse y poder llamar el programa ejecutable desde la consola se tiene que guardar una versión del programa en la carpetas de usr/local/bin. También aquí hay que tener en cuenta que el programa debe estar en donde se encuentren las imágenes a convertir. Ahora bien para utilizarlo tan sólo se debe escribir el nombre de este en la consola, ver siguiente ejemplo:

mimi@plasma:~/Documents/Directory> 10asciiafits
Numero de imagenes
10
Nombre del archivo ASCII
53H-VD.ASC
Prefijo para las imagenes
53H-VD
prox imagen 53H-VD001.fits
prox imagen 53H-VD002.fits
prox imagen 53H-VD003.fits
prox imagen 53H-VD004.fits
prox imagen 53H-VD005.fits
prox imagen 53H-VD006.fits
prox imagen 53H-VD007.fits
prox imagen 53H-VD008.fits
prox imagen 53H-VD009.fits prox imagen 53H-VD010.fits

Y para verificar que lo hizo correctamente se pueden ver con el ¨ds9¨.

Referencias

Review of Scientific Instruments, 75, 455-461 (2004), Bidimensional multiple spectra acquisition using fiber optics, E. Pérez-Tijerina, Roberto Machorro, and J. Bohigas
* Image Reduction and Analysis Facility, IRAF, de National Optical Astronomy Observatories (NOAO), URL: iraf.noao.edu
** Physical Reference Data, NIST, URL: physics.nist.gov/PhysRefData/contents.html
*** PEN ? RAY Rare Gas Lamp Spectra de Ultra Violet Products, UVP, URL: http://www.uvp .com