Ccds-oan. Nuevo paquete de programas para la adquisición de imágenes de CCD en el OAN.

Leonel Gutiérrez

(manual preliminar, junio de 2002)


  1. Introduccion.


Desde hace varios años se han usado en el Observatorio cámaras con CCD fabricadas por Photometrics (ahora Roper), así como sus respectivos controladores y programa de adquisición (PMIS). Este último, aunque muy versátil tiene varios defectos, entre los que destacan el hecho de que mantiene congelada la computadora durante la lectura de la imagen y la necesidad de usar una llave de hardware en cada computadora en que se vaya a usar. Esto, aunado a la reciente estandarización que se está llevando a cabo en el Observatorio para que las computadoras personales en uso directo con el usuario operen con el sistema operativo Linux, ha motivado el desarrollo de un nuevo programa para la lectura de las imágenes que funcione precisamente bajo este sistema operativo. El resultado es el programa que aquí se describe que, aunque en una fase preliminar, ya está operativo. Por lo pronto, su uso se ha restringido al telescopio de 1.5 m, no por otra cosa sino por cuestiones económicas y de tiempo pues necesitamos adquirir y configurar 2 computadoras de tipo industrial para instalarlas en los otros dos telescopios. Debo hacer énfasis en que sólo se ha cambiado el programa; la tarjeta de adquisición (AT200) sigue siendo la misma, así como el controlador. Espero que un día no lejano también podamos cambiarlos.


  1. Descripción general del sistema de adquisición.

El sistema de adquisición consta de lo siguiente:


  1. Descripción general de los programas.

  1. El programa en la PC embebida

En esta computadora se ha instalado el sistema operativo Linux con un Kernel versión 2.2.16 tomado de una distribución Slackware. Allí se ha instalado un programa ejecutable compilado de fuentes escritas en C que se llama ccds_acq. Este programa se inicia cuando por un socket tcp/ip se recibe el mando expone. No es posible dar mandos al programa directamente desde el teclado.


  1. El programa en la PC del usuario.

En la computadora del usuario (agua en el telescopio de 1.5 m) se encuentra el programa ccds-oan, que es basicamente un script de Tcl/tk. Para llamar a este programa solo se necesita activar el icono que se encuentra en el panel de instrumentos de la computadora.


Ventana inicial

Al iniciar, aparece la ventana que se muestra en la figura 1, en la que se debe seleccionar el CCD que va a usarse, asi como el telescopio (este debera aparecer correctamente, pues existe un archivo de configuracion que incluye este dato, pero en caso de error es posible actualizar este campo). El instrumento y el nombre del observador son opcionales pero se recomienda actualizarlos para que en los encabezados de las imagenes aparezcan de manera correcta. Una vez completos los datos de esta ventana, puede procederse oprimiendo el boton Continue.



Figura 1



Origen y tamaño de la imagen

En seguida aparecerá la ventana que se muestra en la figura 2. En esta ventana se podrán definir el origen de la región que se desea adquirir, usando las ventanas de edición que se encuentran junto a los botones identificados con xorg y yorg; también se podrá definir el tamaño de la región usando las ventanas identificadas como xsize y ysize. Por defecto, el origen es 0, 0 y el tamaño es igual al tamaño del CCD. Por lo pronto, estos números representan pixeles físicos, pero pronto se convertirán en pixeles lógicos (un pixel lógico es el que se obtiene después del proceso de binning; así, si el binning es 2, el número de pixeles lógicos será igual a la mitad del numero de pixeles físicos). Los botones xorg y yorg cuentan con algunos valores predefinidos que podrán seleccionarse directamente.

Usando el botón "Full frame" los valores regresarán a los correspondientes para obtener un campo completo.


Figura 2



Ganancia

Existen en los controladores dos modos de ganancia, los cuales puedes seleccionarse con el botón gain. Los valores de estos factores son 1 y 4. Cabe mencionar que estos valores de ganancia afectan directamente a los amplificadores previos a la conversión analógica-digital, no al detector mismo. Así, por ejemplo, si con un factor de ganancia igual a 1 se tienen 15 microvolts por electrón, con un factor igual a 4 se tendrán 60 microvolts por electrón, afectando de manera inversamente proporcional a la ganancia dada en términos de e-/ADU.


Binning

Aquí también puede seleccionarse el factor de binning. Los valores posibles son 1, 2, 3 y 4. Este factor afecta de la misma manera en las direcciones horizontal y vertical. Recuérdese que el binning es el proceso en el cual se juntan 2 o más pixeles (y 2 o más renglones) directamente en el CCD, antes de la lectura y, por supuesto, de la conversión. Esto significa que, por ejemplo, leer 4 pixeles adyacentes y sumarlos externamente, producirá un pixel con el doble de ruido de lectura que si se suman internamente mediante el binning y luego se leen como un solo superpixel. Además, el tiempo de lectura es prácticamente proporcional al número de pixeles que se leen del CCD, ya que el tiempo dominante es el tiempo que tarda la conversión analógico-digital. (Para un cálculo exacto, no debe olvidarse el tiempo que tarda en transferirse un pixel a su localidad vecina.)


Objeto y filtro

Los campos object y filter tienen sólo carácter informativo y también se escriben en el encabezado de las imágenes. Pronto el campo filter se llenará de manera automática cuando se esté usando una de las ruedas de filtros.


Adquiriendo una imagen

Tiempo de exposición

El tiempo de exposición puede definirse usando uno de los valores preestablecidos en el botón "Exposure time" o tecleándolo directamente en la ventana de edición que lo acompaña. El tiempo debe estar en segundos.


Exponer

Para iniciar una exposición, simplemente oprímase el botón Expose. En este caso, este botón cambiará su identificación por Cancel y los demás botones quedarán inhibidos hasta que la exposición haya concluido. Si se oprime el botón cuando presenta la identificación Cancel, la exposición se cancelará, pero la imagen sí será leída; el único problema es que no se sabrá exactamente cuánto tiempo fue expuesta la imagen. Cuando el tiempo de exposición sea mayor de 5 segundos aparecerá la ventana que se muestra en la figura 3, indicando de manera gráfica el grado de avance de la exposición.



Figura 3



Dark

Usando el botón Dark podrá obtenerse una imagen con el mismo tiempo de exposición que cuando se usa el botón Expose, pero el obturador del CCD no se abrirá, produciéndose una imagen obscura (dark).


Bias

Con el botón Bias se obtendrá también una imagen obscura pero con un tiempo de exposición igual a cero. Esto permite leer sólo el bias electrónico.


Movie

El botón "Start movie" permite iniciar un proceso de exposición continua. Para evitar el uso inútil del obturador en caso de que el sistema se quede desatendido, se ha limitado el uso de esta opción a 500 exposiciones.


Salvando automáticamente una imagen

Si el botón "automatic save" está activado, cuando se adquiera una imagen se guardará automáticamente en el disco de la computadora. Se recomienda desactivar este botón cuando se use la opción "Start movie".


  1. Visualización de las imágenes

Si el botón "display in IRAF" está activado, al adquirir una imagen se desplegará en una ventana de IRAF. Si el botón "display in IRAF" está desactivado, se desplegará en una ventana como la que se muestra en la figura 4. Allí aparecerán también 5 botones a la derecha. Uno de ellos está identificado con la leyenda Palette, el cual sirve precisamente para cambiar la paleta de colores del despliegue. Para esto, al activar este botón aparecerá la ventana que aparece en la figura 5 donde se podrá elegir la paleta de más agrado para el usuario. La que despliega por defecto es la paleta "b & w1".

Para entender el funcionamiento de los botones restantes de la figura 4, explicaremos a continuación la manera como se calculan los umbrales de despliegue de la imagen. Al adquirir una imagen, se calcula la media de todos los valores, así como el máximo y el mínimo. El máximo no es el máximo absoluto sino la suma de la media más la desviación estándar de todos los valores multiplicada por un factor que por defecto es 2. En el caso del mínimo se trata de la resta de la media menos la desviación estándar multiplicada por otro factor multiplicativo que por defecto es 3. Estos valores mínimo y máximo se hacen corresponder a 0 y 256, respectivamente, quedando todos los demás valores interpolados linealmente dentro de dicho intervalo.

Así, los botones "U. Th. +" y "U. Th. -" modifican el valor máximo de referencia, incrementado o disminuyendo en 0.2 el factor multiplicativo correspondiente. Lo mismo hacen los botones "L. Th. -" y "L. Th. +" con el valor mínimo de referencia. Esto no afecta a la imagen misma; sólo permite modificar su despliegue.


Figura 4




Figura 5




La intensidad de los pixeles

Oprimiendo el botón izquierdo del mouse con el cursor en algún punto de la imagen es posible leer en la parte inferior de la ventana las coordenadas del punto, así como la intensidad del mismo.


  1. Los directorios y los nombre de los archivos

En la ventana de la figura 2 existen dos campos adicionales, uno de los cuales define el directorio donde se salvarán las imágenes. Se recomienda crear un directorio dentro del directorio /home/observa/imagenes a fin de que los datos del usuario en turno queden debidamente identificados. Debido a que el directorio imágenes es, por lo pronto, un directorio remoto, es probable que el tiempo que tarde en salvarse una imagen sea hasta de varios segundos, por lo que, en ese caso, podría utilizarse un directorio dentro de /home/observa/ debidamente identificado a fin de que el usuario pueda localizar luego sus datos sin dificultad. Consulte sobre esto al astrónomo residente en turno.

El otro campo, identificado como "Base name" define el prefijo que se le asignará al nombre de las imágenes. Se recomienda usar un prefijo que le permita identificar cada imagen posteriormente. El nombre de la imagen estará formado, entonces, por el prefijo asignado más un número secuencial compuesto por 4 cifras, empezando con 0001. Así, si el prefijo fue OrionHaN1, los nombre correspondientes serán OrionHaN10001.fit, OrionHaN10002.fit y así, sucesivamente.


  1. Mensajes

En el campo inferior de la izquierda se desplegarán algunos mensajes alusivos a la operación del programa y en el de la derecha aparecerá el nombre de la última imagen adquirida y almacenada.


  1. Macros

Existe un botón adicional identificado como Macros. Al activar este botón aparecerá un menú con el nombre de algunos macros predeterminados, pero el usuario podrá construir sus propios macros. La sintaxis de éstos se explica en la sección correspondiente. La única limitante es que no existan más de 15 macros definidos en el archivo macros.ccd y que todas las instrucciones obedezcan a la sintaxis correspondiente. El archivo macros.ccd que se carga al iniciar es generado por el mismo programa en caso de que no exista en el directorio /home/observa. Si el archivo ya existe se mantendrá inalterado, de manera que el usuario puede editar el archivo que existe en /home/observa e ir agregando sus propios macros. En el futuro existirá la opción de usar otros archivos de macros.


  1. Los programas auxiliares.

Existen una serie de programas auxiliares que se encuentran en la computadora, algunos de los cuales forman parte de este paquete, y que son necesarios para la operación del sistema. Estos son los siguientes:

afits Almacena la imagen en formato fits.

appm Genera la imagen que se despliega en la ventana mostrada en la figura 4.

pixel Programa auxiliar que permite calcular la intensidad en un punto de la imagen.

despliega_iraf Script que envia al IRAF la imagen que se desplegara.

edotel Programa del sistema de control que proporciona las coordenadas del telescopio, que debidamente formateadas son almacenadas en el encabezado del archivo fits.

  1. Iniciando operaciones

Para iniciar una sesión de trabajo es necesario cuidar algunos detalles. El CCD ya debe estar instalado, así como su controlador y el usuario no deberá preocuparse de esto. Pero sí es importante que averigüe cuál CCD se ha instalado a fin de pueda darlo de alta correctamente en el programa. Los datos que obtenga pueden ser inservibles si da de alta un CCD de manera equivocada.

Existe una computadora industrial que ya el grupo técnico deberá haber encendido usando el botón de encendido correspondiente y que se encuentra en la parte trasera de dicha computadora. Después de encenderla, habrá que esperar un par de minutos a que el sistema operativo inicie correctamente. Ya que la computadora no tiene monitor ni teclado, la única manera de verificar que ya está operativa es mediante un comando remoto. Por ejemplo, puede dar el mando

> ping 192.168.0.76

En el caso del telescopio de 1.5 m, el número 192.168.0.76 es la dirección IP que corresponde a la computadora embebida.

Si la respuesta es parecida a lo siguiente

> PING 192.168.3.67 (192.168.3.67): 56 octets data

> 64 octets from 192.168.3.67: icmp_seq=0 ttl=255 time=0.1 ms


entonces, la computadora está lista. De lo contrario, habrá que esperar un instante.

Una vez que la computadora está lista, desde la computadora del usuario (agua) puede activarse el programa usando el ícono correspondiente en el panel de instrumentos o puede teclear ccds-oan en una ventana de mandos. El programa dará inicio desplegando la ventana de la figura 1 y el usuario podrá empezar a realizar las observaciones que ha planeado.

Si la computadora se encuentra fuera de línea (esperando un login), entre como el usuario observa. La contraseña es "00.observa" en la actualidad, pero verifíquela con el astrónomo residente en turno. El ambiente gráfico se iniciará automáticamente.

Todo este proceso de arranque seguramente sólo será necesario la primera noche de la temporada de observación, y sólo si el usuario anterior no utilizó el CCD.


  1. Al terminar.

Al concluir una temporada de observación, si el siguiente usuario no va a usar el CCD, es recomendable cerrar el programa y apagar la computadora embebida. Para esto, oprima el botón Exit, después de lo cual aparecerá la ventana de la figura 6. En esta ventana oprima el botón Yes. Luego, en una ventana de comandos teclee el mando apaga_ccd. Esto cerrará todos los programas en la computadora remota y deberá esperar 2 minutos, después de los cuales podrá apagarse la computadora con el botón correspondiente ubicado en su propio gabinete. Hay que hacer notar que la computadora remota no cuenta con la opción de apagado automático de su fuente de alimentación, por lo que deberá apagarse físicamente una vez transcurridos los 2 minutos.


Figura 6



  1. Construyendo sus propios macros

Para la construcción de macros existen las siguientes instrucciones válidas:


variable var nn - define la variable var y le pone el valor inicial nn. El nombre de una variable no deberá ser ninguno de los nombres de las instrucciones.

incr var nn - incrementa la variable var nn unidades

decr var nn - decrementa la variable var nn unidades

delay nn - solicita un retardo de nn milisegundos

loop nn - inicia un ciclo de instrucciones que se ha de repetir nn veces

endloop - concluye un ciclo de instrucciones

nbase base - define el prefijo base para las imágenes que se salvarán de allí en adelante

saveima - inicia el salvado automático de las imágenes

source nombre - define la fuente de las imágenes que se han adquirido y se guardará en el encabezado de la imagen con la clave IMAGETYP. Acepta cualquier palabra de 8 o menos caracteres, pero se recomiendan las siguientes: object, dark, bias, arc, flat.

type nombre - define el tipo de exposición que se va a realizar y las palabras aceptadas son: obj, dark y bias. Esto es necesario para que el sistema sepa que tiene que abrir el obturador o no y, en este caso, si debe poner el tiempo de exposición en cero o no.

tint nn - define el tiempo de exposición en nn milisegundos.

expon - inicia una exposición


Las instrucciones se ejecutan en orden secuencial, de manera que en un macro deberán ponerse en el orden que se desea que se ejecuten. Las instrucciones delay y tint aceptan variables como argumento, pero deberá definirse de antemano la variable a usar. Cada macro deberá iniciarse con la palabra nombre seguida del nombre del macro y deberá concluir con la palabra fin.

Los macros que se encuentran definidos por defecto son: obj (equivale a oprimir el botón Expose), arc (igual que obj poniendo type arc), bias (igual que el botón Bias), 5obj (5 veces el mando obj) y 5bias (5 veces el macro bias). A continuación se muestran algunos ejemplos de macros que servirán de guía para que el usuario construya los suyos. Los macros no aceptan comentarios, sólo se han puesto en los ejemplos para explicar cada renglón.


nombre 5obj ; nombre del macro

nbase o ; la primera imagen se llamará o0001.fits

type obj ; abrir el obturador y exponer el tiempo determinado en la IDU

source object ; el IMAGETYP será object

loop 5 ; lo que sigue se repetirá 5 veces

expon ; hacer una exposición

delay 5000 ; se recomienda un retardo de 5 segundos entre exposiciones para minimizar la posibilidad de falla en la tarjeta de lectura

endloop ; termina el ciclo

fin ; termina el macro



nombre 5arc ; nombre del macro

nbase a ; la primera imagen se llamara a0001.fits

type obj ; abrir el obturador y exponer el tiempo determinado en la IDU

source arc ; el IMAGETYP será arc

loop 5 ; lo que sigue se repetirá 5 veces

expon ; hacer una exposición

delay 5000 ; retardo de 5 segundos

endloop ; termina el ciclo

fin ; termina el macro



nombre 5bias ; nombre del macro

variable tiempo 5000 ; define la variable tiempo y la inicializa con 5000 milisegundos

nbase b ; la primera imagen se llamara b0001.fits

type bias ; no abrir el obturador y el tiempo de exposición debe ser cero

source bias ; el IMAGETYP sera bias

loop 5 ; lo que sigue se repetirá 5 veces

expon ; hacer una exposición

delay tiempo ; retardo de 5 segundos, definidos en la variable tiempo

endloop ; termina el ciclo

fin ; termina el macro



nombre lineal ; nombre del macro

variable delta 500 ; define la variable delta y la inicializa con el valor 500

nbase lineal ; la primera imagen se llamara lineal0001.fits

type obj ; abrir el obturador y el tiempo de exposición se define abajo

source object ; el IMAGETYP sera bias

saveima ; asegura que se salvarán automáticamente las imágenes

loop 20 ; lo que sigue se repetirá 20 veces

tint delta ; pone el tiempo de integración igual al valor de delta (500 milisegundos la primera vez)

delay 500 ; retardo de 500 milisegundos

expon ; hacer una exposición

delay 5000 ; retardo de 5 segundos

incr delta 500 ; incrementa la variable delta en 500 cada vez

endloop ; termina el ciclo

fin ; termina el macro


Este manual todavía está en proceso. Esperamos sus comentarios y sugerencias tanto para el manual como para el programa. La versión final saldrá en octubre de 2002.

Si tiene comentarios o sugerencias, por favor escriba a Leonel Gutiérrez.