DISEÑO DE SOFTWARE EN PYTHON, PARA EL PROCESAMIENTO AUTOMATICO DE IMÁGENES ASTRONOMICAS FITS Y CALCULO DE FOTOMETRIA DE ESTRELLAS
Por
Juan Carlos Martinez Yepes
Medellín, Colombia.
RESUMEN
El presente articulo presenta el diseño, puesta a punto y pruebas, de un software programado en el lenguaje de programación Python, para el procesamiento automático de imágenes astronómicas de extensión fits.fz, las cuales tienen información lumínica de estrellas a las cuales se desea calcular la magnitud aparente.
INTRODUCCIÓN
El software llamado Lucero Martinez Fotometrías JC, toma un conjunto imágenes astronómicas de la extensión fits.fz de una región del cielo y mediante un algoritmo experto, reconoce las estrellas dentro una imagen inicial. Luego el usuario selecciona cuales de estas estrellas son de estudio y cuales son estrellas de referencia. Y por último el programa procesa todas las imágenes faltantes entregando como resultado la magnitud aparente de las estrellas de estudio.
El objeto del diseño de este software es permitir acortar el tiempo de procesamiento de datos al hacer la fotometría de un paquete de imágenes de forma automática dándole a los algoritmos ciertos parámetros para que reconozca las estrellas a analizar en las imágenes y que este haga el conteo de fotones en los pixeles de cada estrella. Esto facilitaría el procesamiento de datos en proyectos como análisis de variabilidad de estrellas, búsqueda de exoplanetas por método de tránsito o el estudio de eventos transitorios de estrellas, entre otros.
ANTECEDENTES
El análisis fotométrico en astronomía es la práctica que permite a partir de una imagen, antes placas fotográficas y actualmente digitales, medir la cantidad de luz o fotones que nos llega de un objeto astronómico de interés. Esto se hace con el fin
de reunir información científica acerca del objeto, hacer estudios de luminosidad con curvas de luz o simplemente con intereses académicos.
Para realizar la fotometría de un cuerpo astronómico se debe contar con varias herramientas, tanto observacionales como programas informáticos. Para realizar las observaciones se puede utilizar desde unos prismáticos hasta un telescopio robótico profesional. Lo siguiente es una cámara digital para capturar la luz. Estas dependiendo de nuestro telescopio puede ser una cámara réflex o una cámara astronómica refrigerada monocromática. Luego se debe contar con un programa informático que capture los datos tomados por nuestra cámara o sensor y lo traduzca a un protocolo de visualización de imágenes. En astronomía se cuenta con el formato de imágenes FITS(Flexible Image Transport System)(1), el cual es un archivo donde están guardados los datos lumínicos de cada pixel del sensor y también contiene toda la información tanto de la toma como del equipo que hizo la captura.
Ahora que se tienen las imágenes digitalizadas en un archivo que podemos leer, se utiliza algún software que entienda este formato de archivos y los procese. Actualmente existen muchos programas que hacen esto, desde solo abrir las imágenes, hacer cambios de contraste, apilar imágenes, hacer mosaicos, hasta analizar perfiles luminosos y calcular la fotometría del objeto de interés. Algunos de estos que podemos hacer referencia, están Aladin(2), Siril(3), Fitswork(4) y Salsa J(5).
En estos programas el usuario debe procesar cada imagen e indicarle al software los parámetros puntuales de ubicación del objeto astronómico a analizar, ya sea una estrella o un área determinada. Ninguno de estos puede reconocer morfología o estructura de forma inteligente y aplicar esto sobre un conjunto de imágenes similares.
En el caso en el que se requiere hacer la fotometría de varias estrellas de un banco de imágenes, es necesario que el usuario analice el perfil luminoso por cada estrella, determine el radio de la estrella y calcule la fotometría. Esto se debe hacer por cada imagen, por lo que en un proyecto científico donde se quiere analizar 100 o mil imágenes se hace un trabajo tedioso y dispendioso de tiempo. Esto además del gasto de tiempo, se puede introducir errores humanos dentro de nuestros datos y por ende al resultado final.
Imagen 1: Perfil Luminoso de una estrella utilizando el Software Salsa J.
Imagen 2: Utilización de Salsa J para determinación del radio de la estrella y el cálculo de fotometría.
PROPUESTA
Para mejorar el proceso de análisis fotométrico en un conjunto de imágenes astronómicas se desarrolló el software llamado Lucero Martinez Fotometrías JC, programado en el lenguaje Python versión 3.10.
Para esto se utilizaron las librerías Numpy, Astropy y Tkinter. A continuación, se describe el funcionamiento del programa.
Antes de iniciar el programa se debe copiar a las carpetas de trabajo todos los datos con los que se va trabajar. Específicamente en la carpeta imagenes_fz se pegan los archivos de extensión fits.fz los cuales contienen los datos lumínicos de cada imagen. Y en la carpeta imágenes_jpg se copian las imágenes en formato jpg, esto solo es necesario para realizar el reconocimiento de las estrellas y capturar las coordenadas de cada una.
Imagen 3: Carpetas de trabajo
Al arrancar el programa, este nos pregunta por el tipo de imágenes a procesar. En fotometría nos podemos encontrar con imágenes enfocadas o desenfocadas, estas últimas son muy útiles cuando se desean hacer tiempos de exposición altos y que no queden saturadas las estrellas, generando un patrón de dona el cual esparce los fotones en un área mayor de pixeles.
Imagen 4: Ventana de inicio, se pregunta por el tipo de enfoque de las imágenes.
Para comenzar con nuestro análisis, se debe elegir primero una imagen de referencia, la cual nos va a ser útil para elegir los parámetros que se le entregarán en nuestro sistema experto el cual reconocerá las estrellas dentro de la imagen.
Imagen 5: Selección de imagen de referencia.
Para hacer el reconocimiento de las estrellas se utiliza un algoritmo de similitud y acotado con un valor de umbral, el cual con una imagen modelo, detecta en que coordenadas se encuentra una estrella que esté por encima de este umbral de similitud.
Imagen 6: Modelos de estrellas para realizar la comparación por similitud. Respectivamente estrella enfocada y estrella desenfocada.
Imagen 7: Detección de estrellas dentro de la imagen utilizando un umbral de 0.8
Si se utiliza un umbral mayor, el algoritmo es menos sensible y detectará menos estrellas en la imagen. Véase la imagen 8.
Imagen 8: Detección de estrellas dentro de la imagen utilizando un umbral de 0.9
Luego de realizar la detección de estrellas utilizando el umbral más adecuado, se le indica al programa a cuáles de estas estrellas se debe realizar la fotometría. Se indica cuales son de estudio y cuales son estrellas de referencia o patrón, en estas últimas se debe digitar el valor de magnitud conocida, para esto se puede consultar bases de datos como Simbad o Aladin. Aquí el programa calculará los radios internos y externos para cada estrella como muestra la imagen 9.
Imagen 9: Se calcula los radios de las estrellas para hacer la fotometría
Imagen 10: Vista de cerca de los radios calculados para esta estrella.
Para determinar el radio de la estrella, el sistema experto tiene un algoritmo que calcula el perfil luminoso de la estrella mediante un histograma (imagen 11), y busca el anchor de media altura FWHM. Con este valor calculamos el radio de la estrella que no debe superar Pi/2 veces el FWHM(6).
Imagen 11: Histograma del perfil luminoso de una estrella enfocada.
Ya encontrado el radio de todas las estrellas dentro de la imagen, el programa escoge el radio mayor y ejecuta el cálculo de la fotometría para cada una. Esto se hace tomando todos los pixeles dentro del radio y sumando todos los valores de intensidad. Después se calcula el valor de intensidad del cielo, para determinar el ruido de la imagen en cada estrella, esto se hace tomando los pixeles en un área comprendida entre el radio de la estrella y un radio exterior que es raíz cuadrada de 2, veces el radio de la estrella, y se suman las intensidades de estos pixeles. Por último, se resta a la intensidad de la estrella, la intensidad del cielo. Este sería el valor absoluto de la intensidad de cada estrella dentro de la imagen.
Este proceso se realiza secuencialmente con todas las imágenes de interés y por último el software arroja un archivo de texto con las magnitudes calculadas para las estrellas de estudio. Estos datos se pueden tabular para elaborar las gráficas o modelos deseados dentro de nuestro proyecto científico.
RESULTADOS
Para la puesta a punto de este software se calibra utilizando imágenes astronómicas obtenidas en los talleres de investigación de la metodología de aprendizaje basado en proyectos, perteneciente al grupo Helios GTTP(7), el grupo obtiene las imágenes de la red de telescopios robóticos del LCO(8) (Las Cumbres Observatory). Se realiza la prueba del programa con 196 imágenes de un objeto astronómico situado en la constelación del centauro, la estrella variable MyCen, la cual ya se sabía con anterioridad su curva de luz. Por lo tanto, se espera que la curva de luz que se elabore con los datos de salida del software sea parecida a la información que se tiene en la literatura sobre esa estrella.
Imagen 12: Resultados de la fotometría de las 196 imágenes, el archivo de texto contiene la magnitud de la estrella de estudio.
La carpeta de trabajo del programa arroja varia información, un archivo de texto con la magnitud calculada de las estrellas de estudio en todas las fotos. También una imagen extensión JPG y un archivo de texto con información de las detecciones de cada foto.
Este ejercicio se escogió un umbral de detección de 0.6, el cual fue probado con varas de las imágenes del conjunto, y se determinó que era el que más se ajustaba para la mayoría de las imágenes sin perder las estrellas que se desean analizar. Luego al analizar los datos de la carpeta de resultados se encuentra que de las 196 imágenes solo en 18 de ellas la detección de las estrellas fue equivocada y en la gráfica final se traduce en datos dispersos de la media esperada.
Imagen 13: Curva de fase de la estrella MYcen, según la ASAS-SN Variable Stars Database(9)
Imagen 14: Imagen de la fase de Mycen(10), obtenida con los datos de salida del programa luego del reconocimiento de las estrellas
CONCLUCIONES
Se concluye que, para este ejercicio, el cual consta de muchas imágenes extensión FITS.FZ donde se desea terminar la curva de luz en el tiempo, y realizar la fotometría de las estrellas de manera automática, el programa lo hizo de manera bastante eficiente. Se calcula que en un 91.81% de las imágenes, el software detectó correctamente las estrellas deseadas. Por lo tanto, puede trabajar con un gran volumen de datos y disminuir el tiempo invertido en realizar la fotometría de cada estrella en cada foto que es como se venía realizando hasta el momento.
También observando la curva de fase construida con los datos fotométricos de salida, se concluye que los algoritmos para el conteo de fotones y la determinación de los radios de las estrellas están ajustados adecuadamente ya que el error obtenido por exactitud es de 0.18% y en el error de precisión tenemos una desviación estándar de 0.02 en unidades de Magnitud lo cual indica que, llevado a 5 sigmas, se puede detectar variaciones de luminosidad de más de 0.1 magnitudes.
En futuras versiones de este programa se debe ajustar aún mas el algoritmo de reconocimiento de estrellas, teniendo en cuenta el desplazamiento del centroide de cada imagen con respecto a la imagen de referencia inicial.
BIBLIOGRAFIA
- Aladin. https://aladin.u-strasbg.fr/
- Siril. https://siril.org/
- Dr David Galadi Enríquez. Fundamentos de fotometría Astronomica. Agrupación astronómica de Madrid. Video Youtube. https://youtu.be/r53jL9vD52o?list=PLZXeMDUYaSX9olwWYOup5IQcUKQXx57WC&t=2688
- Helios GTTP. https://helios-gttp.webnode.com.co/
- LCO. https://lco.global/
- ASAS-SN Variable Stars Database. https://asas-sn.osu.edu/variables/083ba979-8eff-5bb2-bf84-6a47f203f822
- Helios GTTP. https://helios-gttp.webnode.com.co/