Contribuciones del Instituto Copérnico
Vol. 2, No. 7, Julio 1993
Impreso en Argentina
Software para la generación del programa de observación de un telescopio robótico [i]
INSTITUTO COPERNICO
Casilla de Correos 51 Suc.48B, 1448 Buenos Aires, Argentina
e-mail: leo@icoper.edu.ar
In this paper we describe a new software which main function is to generate the observation program for a robotic telescope. This allows the analysis of the visibility of the astronomical objects and also determines the best conditions for making the scientific measurements. From these data the software builds the schedule for the telescope, optimizing the observing conditions and the time of telescope's use.
El software para generación del programa de observación de un telescopio robótico consta de dos partes. La primera de ellas consiste en un programa que determina, para un cierto período de tiempo preestablecido, durante qué intervalos será visible el objeto. La segunda toma estos datos y genera el programa de observación del telescopio con los objetos indicados por el astrónomo.
Dado que los datos generados por el programa son utilizados luego para la ubicación del objeto en cuestión por parte del telescopio robótico, estos deben ser lo más precisos posible. Para lograr esto se utilizaron, en todos los casos, las constantes astronómicas y físicas recomendadas por la Unión Astronómica Internacional. Para el cálculo de posiciones planetarias, lunares y solares se usaron procedimientos sugeridos por Montenbruck y Pfleger (1991) y por Goffin, Meeus y Steyaert (1986), mientras que para la corrección de coordenadas se siguieron los
procedimientos modernos explicados en el Astronomical Almanac (1993) y otros tomados de Mueller (1977). Se estima que de esta manera se obtiene una precisión del orden de 5 a 10 segundos de arco, en las posiciones finales.
En cuanto al lenguaje de programación se utilizó el C++, debido a dos principales motivos: facilidades de diseño y programación por un lado y la perfomance del programa resultante. La primer ventaja se debe fundamentalmente a la utilización de la metodología de orientación a objetos (1987), con la cual se puede mapear objetos en el dominio de la realidad con objetos (o clases en la terminología de C++) en el dominio del programa con relativa sencillez (de acuerdo a la experiencia del programador con esta metodología). Además la reutilización de objetos hace mas rápido el desarrollo, pudiendo reutilizar objetos ya existentes de muy fácil uso como es el caso de ventanas o menúes, u objetos desarrollados por el programador. No menos importante es el conjunto de operaciones que C provee sobre los punteros y la posibilidad de redefinir (sobrecargar) operadores y funciones con lo cual el código se hace mucho más legible y fácil de corregir o modificar. En cuanto a la perfomance es una de las características de C tanto hacer un buen uso de la memoria como generar un ejecutable de tamaño aceptable. A estas dos ventajas se debe agregar el ambiente de desarrollo muy amigable que provee la versión de C++ (Swam, 1993) utilizada.
La segunda parte se encuentra en este momento en su etapa de desarrollo, mientras que la primera ya está en la etapa de prueba.
El programa de visibilidad tiene por objetivo fundamental el mostrar al usuario las condiciones de observación de un objeto en particular. Un menú principal le permite ingresar los datos necesarios. Estos consisten en:
coordenadas geográficas del observador,
intervalo de tiempo en el que se desea estudiar el objeto,
el objeto, el cual se puede elegir de entre los que se encuentran en la base de datos del software o bien ser agregado, introduciendo los datos necesarios (por ejemplo, coordenadas en el sistema FK4-B1950 o FK5-J2000, movimiento propio, paralaje y velocidad radial, en el caso de una estrella),
diferencia entre el Tiempo Dinámico Terrestre (TDT) o el Tiempo de Efemérides (ET), según sea el caso, y el Tiempo Universal Coordinado (UTC),
condiciones bajo las cuales el objeto se considera visible, las cuales pueden ser, por ejemplo, la mínima altura sobre el horizonte que debe alcanzar el objeto para poder hacer una buena observación, la necesidad, o no, de trabajar entre el fin del crepúsculo astronómico y su comienzo, al día siguiente, la elongación mínima tolerable entre el objeto y el Sol o la Luna, o la máxima iluminación de la Luna permitida.
Una vez ingresados los datos, el programa realiza los pasos necesarios para obtener, a partir de ellos, las coordenadas topocéntricas horizontales del objeto para una sucesión de épocas separadas entre sí por 0.025 días julianos, dentro del intervalo de tiempo especificado. Estos pasos consisten, en el caso de una estrella, en aplicar las correcciones de movimiento propio, paralaje, aberración de la luz, retardo gravitacional, precesión, nutación y refracción a las coordenadas de los catálogos FK4 o FK5. En el caso del Sol, la Luna o un planeta se calcula su posición heliocéntrica referida al equinoccio y ecuador medios de J2000 primero y luego se aplican las correcciones de aberración de la luz, light-time[ii], paralaje, precesión, nutación y refracción.
Luego de realizado esto el programa calcula, para dichas épocas, si se cumplen o no los requisitos y, por interpolación, el instante en que ellos comienzan a cumplirse o dejan de hacerlo. El astrónomo puede optar luego por una salida numérica o una salida gráfica. La primera consiste en las posiciones del objeto en las épocas mencionadas más los intervalos en que se cumplen todas y cada una de las condiciones especificadas. La segunda es un gráfico de posición del objeto en la esfera celeste, en coordenadas horizontales, destacando mediante distintos colores y sombreados el cumplimiento, o no, de las condiciones.
Este programa está aún en vias de desarrollo, por lo cual se comentarán brevemente los lineamientos generales de su diseño.
Para preparar el programa de observación de una noche, el astrónomo debe ingresar los nombres de los objetos que desea observar, y las mediciones que desea hacer de los mismos, por ejemplo, fotometría UBV, imágenes del objeto, etc. Deberá además dar los datos pertinentes a cada medición en particular (estrellas de comparación, número de mediciones, secuencia de medición). Los datos de visibilidad son tomados del programa anterior. A partir de ellos, este calcula la secuencia de observaciones, usando para ello algún criterio seleccionado por el observador. Los criterios podrían ser, por ejemplo, dar prioridad a ciertos objetos, hacer ciertas observaciones en instantes determinados, repetirlas cada cierto intervalo de tiempo, minimizar la distancia zenital de cada observación, ordenarlas por ascensión recta, entre otros. Una vez determinado el instante de inicio de cada medición, recalculará las coordenadas del objeto para ese instante y determinará los movimientos a hacer por el telescopio y la utilización de filtros y detectores, con lo que se obtendrá la serie precisa de pasos a seguir por el telescopio esa noche, es decir, su programa de observación.
O.Montenbruck y T.Pfleger, Astronomy on the personal computer, Springer-Verlag, Berlin, 1991.
E.Goffin, J.Meeus y C.Steyaert, An accurate representation of the motion of Pluto, As.Ap. 155, 323, 1986.
Astronomical Almanac 1993, U.S.Government Printing Office, Washington, Her Majesty's Stationery Office, London, 1993.
I.I.Mueller, Spherical and practical astronomy as applied to geodesy, Frederick Ungar Publishing Co., New York, 1977.
B.Cox, Object-Oriented Programming, Addison-Wesley, Reading, 1987.
T.Swam, Mastering Borland C++, Prentice Hall, Carmel, 1992.
[ii]
light-time: atraso en la recepción de la luz proveniente de un objeto
debido a que la velocidad de la luz es finita. Es por esto que la posición
observada del objeto en un instante no es igual a su posición real