Vous êtes sur la page 1sur 9

Universidad Simón Bolivar

Departamento de Computación y TI
CI-3815: Organización del computador
Septiembre-Diciembre 2007

Proyecto 2: Base de datos estelar

1. Introducción y conceptos básicos


En este proyecto, se requiere que implemente un programa que lea la infor-
mación de un catálogo estelar y permita, en base a ella, calcular la posición que
tendrá una estrella en el cielo en una fecha y desde una ubicación geográfica
determinada.

1.1. Catálogos estelares


Un catálogo estelar es una lista de estrellas y de información asociada a cada
estrella, como su posición, magnitud, color, entre otros. Estos catálogos son el
producto de algún tipo de sondeo astronómico, es decir, de observar y registrar
los objetos que se desean recopilar. Un catálogo asocia también a cada estrella
un número de catálogo, lo cual permite que distintas personas se referieran a las
estrellas utilizando una nomenclatura común.
La mayoría de los catálogos estelares actuales se encuentran en formato
digital y pueden ser obtenidos libremente a través de Internet. Mientras que
algunos catálogos se enfocan en registrar cierto tipo particular de estrella, como
estrellas variables o estrellas cercanas, otros se proponen registrar todas las
estrellas del cielo. No obstante, existen cientos de millones, o hasta billones de
estrellas que pueden ser observadas con un telescopio, por lo tanto esa tarea no
es del todo posible. Un enfoque que por lo tanto se aplica es registrar todas las
estrellas más brillantes que cierta magnitud.

1.2. Posición de las estrellas


La esfera celeste es una esfera ideal, sin radio definido, concéntrica en el
globo terrestre, en la cual aparentemente se mueven los astros. El movimiento
de todos los astros se puede pensar como que transcurre sobre esta esfera. El
movimiento aparente de las estrellas en la esfera celeste es relativamente fácil de
describir y predecir, en comparación por ejemplo con la dificultad de expresar el
movimiento aparente de la Luna o de los planetas. Para explicar esto, imagínese
que se desea predecir el movimiento aparente de un planeta en la esfera celeste.

1
Para esto, es necesario tomar en cuenta la órbita elíptica de los planetas, y
calcular el movimiento relativo de un planeta respecto a la Tierra. Esto no es
fácil de expresar, y en general no existe una fórmula sencilla para calcular el
movimiento aparente que tendrá un planeta en el cielo.
En el caso de las estrellas y otros objetos lejanos, el problema es mucho más
sencillo. La distancia de la Tierra a este tipo de objetos es generalmente tan
grande en comparación con el radio de la órbita terrestre, que el movimiento de
traslación de la Tierra en este caso se puede despreciar. En otras palabras, la
posición de la tierra se puede considerar un punto, y se puede hacer la afirmación
aproximada de que el movimiento aparente de las estrellas sólo es causado por
la rotación de la Tierra sobre su eje. Esto facilita considerablemente los cálculos
para determinar la posición que tendrá una estrella en el cielo en determinado
momento.

1.3. Sistemas de coordenadas celestes


El sistema de coordenadas geográficas permite representar la posición de un
punto en la superficie de la Tierra a través de dos coordenadas, denominadas
latitud y longitud. Por ejemplo, las coordenadas geográficas del edificio MYS
son 10°240 3200 N, 66°520 5900 O. Existen sistemas de coordenadas similares para
representar la posición de un punto en la esfera celeste. Para este proyecto
se estudiarán dos sistemas de coordenadas celestes: el sistema de coordenadas
ecuatoriales y el sistema de coordenadas horizontales.

Coordenadas ecuatoriales
La posición de una estrella en el cielo depende de la fecha y hora así como del
lugar en el cual se encuentra el observador. Así, por ejemplo, mientras que en
Caracas la estrella Altair se encuentra cerca del cénit a las 6:30 pm, simultánea-
mente en París se encuentra ocultándose en el horizonte Oeste. Sería conveniente
un sistema de coordenadas que permitiera referirse a la posición de una estre-
lla de manera universal, independientemente de la posición del observador. El
sistema de coordenadas ecuatoriales sirve esta función.
En el sistema de coordenadas ecuatoriales, la posición de una estrella se re-
presenta mediante dos coordenadas llamadas declinación y ascensión recta, que
son líneas imaginarias sobre la esfera celeste análogas a la latitud y longitud,
respectivamente. Por ejemplo, Altair tiene declinación +08°520 0600 y ascensión
recta 19h50m47s. Estos valores son fijos, independientes de la posición del ob-
servador y de la fecha.
Todo sistema de coordenadas necesita un origen, en otras palabras, un punto
de referencia que se considera el cero. Imagínese que se proyecta el ecuador
geográfico sobre la esfera celeste. Esta línea imaginaria se denomina el ecuador
celeste, y representa la declinación 0°. Existe una línea imaginaria que representa
la ascensión recta 0h, análoga al meridiano de Greenwich (sin embargo, esta es
sólo una analogía y no existe relación geográfica entre ellas, como en el caso del
ecuador). Esta línea se define como aquella que pasa por el punto de intersección

2
Ilustración: Francisco Javier Blanco González

Figura 1: Ilustración de la posición de un objeto de acuerdo con el sistema de


coordenadas ecuatoriales.

entre el ecuador celeste y el plano de la órbita terrestre; por razones históricas


este punto se denomina el Primer Punto de Aries. La figura 1 ilustra el sistema
de coordenadas ecuatoriales.
En síntesis, la importancia de las coordenadas ecuatoriales es que permiten
especificar un punto en la esfera celeste independientemente de la posición del
observador. En los catálogos estelares, la posición de una estrella se especifica
en coordenadas ecuatoriales, es decir, se indica su declinación y ascensión recta.

Coordenadas horizontales
En el sistema de coordenadas horizontales, a diferencia del anterior, las coor-
denadas de un objeto en el cielo dependen de la posición del observador. En este
sistema, la posición de un objeto se representa mediante dos coordenadas lla-
madas altura y azimut, muy similares a la declinación y ascensión recta. La
diferencia radica en el origen del sistema de coordenadas.
Si se proyecta el horizonte del observador sobre la esfera celeste, se obtiene
una línea imaginaria denominada el horizonte celeste. Esta línea representa la
altura 0°. Por otra parte, el azimut toma como referencia el Norte geográfico
del observador, y se mide en sentido positivo hacia el Este. Una estrella que
coincide con el Norte del observador tendrá azimut 0°.
Una ventaja de este sistema de coordenadas es que se adecúa para la ob-
servación estelar. Si queremos determinar la altura de una estrella en el cielo,
basta con estimar qué ángulo de elevación tiene respecto al horizonte.

Conversión entre sistemas de coordenadas


Una tarea común en astronomía consiste en determinar qué posición tendrá
una estrella en el cielo, conociendo la ubicación geográfica del observador y la
fecha y hora actual, a partir de la información contenida en un catálogo de

3
estrellas. Se asume que el catálogo contiene las coordenadas ecuatoriales, es
decir, la ascensión recta y declinación de la estrella.
Como se dijo anteriormente, el sistema de coordenadas ecuatoriales expresa
la posición de una estrella de acuerdo a una referencia fija. En contraparte,
las coordenadas horizontales expresan la posición de una estrella respecto a
un observador. El problema que se desea resolver, es decir, hallar la posición
de una estrella respecto a un observador, equivale a convertir la posición de la
estrella de coordenadas ecuatoriales a coordenadas horizontales. Realizando esta
operación, es posible determinar qué posición tendrá cualquier estrella contenida
en un catálogo, dadas cualesquiera coordenadas geográficas y la fecha y hora de
observación.
Dadas la latitud ϕ del observador, y la ascensión recta α y declinación δ de
una estrella, se desea calcular su altura a y azimut A.
Como paso previo, es necesario calcular el ángulo horario local H de la
estrella. El ángulo horario local es igual a la diferencia de la hora sidérea local
(HSL) menos la ascensión recta. En la siguiente subsección se explica cómo
obtener la hora sidérea.
H = HSL − α
Una vez obtenido el ángulo horario local, es posible calcular la altura y
azimut, mediante las siguientes fórmulas:

sin(a) = sin(δ) sin(ϕ) + cos(δ) cos(ϕ) cos(H)


− sin(H) cos(δ)
sin(A) =
cos(a)
Aplicando la función arcoseno se obtienen los valores de la altura y azimut.

Hora sidérea
Supongamos que en una mañana despejada enterramos un palo verticalmente
en el suelo y observamos su sombra. La sombra se hará cada vez más corta, y
luego comenzará a hacerse cada vez más larga. El momento en que la sombra
es más corta es el mediodía. Un día solar mide (aproximadamente) el tiempo
promedio que transcurre entre dos mediodías.
El día de una estrella es unos 4 minutos más corto que el día solar. Esto se
debe a que a lo largo de un día, la Tierra se desplaza en su órbita alrededor del
Sol, por lo tanto el Sol debe “moverse” un poco más para alcanzar el siguiente
mediodía. El día de una estrella se denomina día sidéreo.
Por lo tanto, para el cálculo de las posiciones de las estrellas se debe utilizar
la hora sidérea en lugar de la hora solar. Hay distintas páginas en Internet que
ofrecen un reloj con la hora sidérea local (ver la sección 5).

1.4. Unidades de medida


A continuación se describen varias unidades de medida que resulta útil cono-
cer para la realización de este proyecto.

4
Unidad Símbolo Descripción
Radianes rad1 Unidad de ángulo. Un radián es igual a
180/π grados.
Horas h Al ser utilizada para medir ángulos o
una posición en un círculo, una hora es
igual a 15°.
Grados ° Unidad de ángulo que representa 1/360
de una rotación completa.
0
Minutos de arco Unidad de ángulo igual a un sesentavo
de grado.
00
Segundos de arco Unidad de ángulo igual a un sesentavo
de minuto de arco.
Milisegundos de arco mas Unidad de ángulo igual a una milésima
de segundo de arco.
La latitud y otras magnitudes se expresan generalmente en grados con sus
subdivisiones. Por ejemplo, la latitud de Caracas es 10°290 4600 N. También es po-
sible expresarlas en sistema decimal, es decir, utilizando subdivisiones decimales
del grado. Representada de esta manera, la latitud de Caracas es 10,4961°.

1.5. Series para aproximar funciones trigonométricas


Las siguientes series se pueden utilizar para obtener un valor aproximado de
las funciones trigonométricas.

x3 x5 x7 x9
sen(x) = x − + − + − ···
3!
π
5! 7! 9!
cos(x) = sen −x
2  3 
1 · 3 x5 1 · 3 · 5 x7
  
1 x
arcsen(x) = x + + + + ···
2 3 2·4 5 2·4·6 7

Note que en todas estas expresiones los ángulos se miden en radianes y no


en grados.

1.6. Magnitud de una estrella


Una propiedad comúnmente conocida y registrada de las estrellas es su mag-
nitud, que se refiere a cuán brillante es la estrella. Menor magnitud significa que
el objeto es más brillante. La magnitud del Sol es -26,7, y aquella de la Luna
llena es aproximadamente -12. Sirio, la estrella más brillante, tiene magnitud
-1,47, y la magnitud menos brillante observable a simple vista es 6.
1 Generalmente el símbolo se omite.

5
2. Descripción del proyecto
2.1. Requerimientos del programa
Se requiere que desarrolle un programa que lea la información de un catálogo
estelar representada en un archivo de texto, y que permita realizar distintas
funciones relacionadas con esta información. En específico, el programa deberá
proveer las siguientes funciones:

1. Determinar la posición de una estrella. Esta opción permitirá al


usuario indicar el número de catálogo de una estrella, así como la hora
sidérea, e imprimirá la altura y azimut de la estrella en Caracas en la hora
sidérea especificada.

2. Determinar la posición de una estrella en una latitud especifica-


da. Esta opción permitirá el usuario indicar el número de catálogo de una
estrella, así como la latitud del punto de observación y la hora sidérea,
e imprimirá la altura y azimut de la estrella a esa hora desde la latitud
especificada.

3. Listar las estrellas más brillantes que cierta magnitud. Esta opción
pedirá al usuario un valor de magnitud e imprimirá una lista de las estrellas
en el catálogo más brillantes que esa magnitud (es decir, cuya magnitud
sea menor que el valor especificado).

4. Mostrar la información de una estrella. Esta opción le permitirá al


usuario introducir el número de catálogo de una estrella y mostrará la
información asociada a ella. Se deberán imprimir el número de catálogo,
nombre, ascensión recta, declinación y magnitud de la estrella.

La interfaz del programa consistirá en un menú que presente estas opciones


(además de una opción para salir del programa) y permita realizar las funciones
especificadas.

2.2. Estructuras de datos


Con el fin de hacer eficiente la operación de búsqueda de una estrella, se
requiere que almacene las estrellas en una tabla de hash, utilizando como cla-
ve el número de catálogo de la estrella. Usted debe elegir una función de hash
(así como un tamaño de tabla) que considere adecuados para el problema. Im-
plemente la estrategia de resolución de colisiones por encadenamiento (listas
enlazadas).
El resto de las estructuras de datos utilizadas deberán ser elegidas por usted.

2.3. Estructura del programa


En este proyecto, se requiere que utilice subrutinas (procedimientos y fun-
ciones) para estructurar el código. Diseñe los procedimientos y funciones que

6
encuentre necesarios para lograr una buena reutilización del código y simplificar
el desarrollo del programa. Un programa estructurado correctamente requiere
menos esfuerzo en líneas de código y permite manejar mejor su complejidad.

2.4. Formato del catálogo


El catálogo estará representado en un archivo de texto que tendrá el siguiente
formato.
Bytes Formato Unidades Campo
0-3 Entero positivo - Número de catálogo (Har-
vard Revised Number, tam-
bién conocido como Bright
Star Number). El número es-
tará en el rango [1, 9110].
4-13 Cadena de caracteres - Nombre de la estrella (ge-
neralmente en los sistemas
Flamsteed o Bayer).
14-15 Entero positivo h Horas ascención recta
16-17 Entero positivo min Minutos ascención recta
18-21 F4.1 s Segundos ascención recta
22 Caracter - Signo declinación
23-24 Entero positivo Grados Grados declinación
25-26 Entero positivo Minutos de arco Minutos de arco declinación
27-28 Entero positivo Segundos de arco Segundos de arco declinación
29-33 F5.2 mag Magnitud
Todos los campos están en representación de cadena de caracteres y no en
representación aritmética.
Cada estrella estará en una línea del archivo, y tendrá todos los campos
indicados en la tabla. Los campos tienen longitud fija. Si el dato representado
ocupa menos caracteres que la longitud del campo, se completa con espacios a
la izquierda. Note que no necesariamente habrá un espacio entre dos campos.
La nomenclatura Fa.b indica que el número tendrá b decimales, y que en
total el campo ocupa a bytes.
En http://ldc.usb.ve/~cgomez/catalogos/ encontrará un ejemplo de un
catálogo de tres estrellas.

3. Informe
La entrega deberá incluir un informe que explique los siguientes puntos de
manera concisa:
Estructuras de datos utilizadas. Incluya en esta sección la función de hash
y el tamaño de tabla utilizados, y explique el por qué de su elección.
Decisiones de diseño que tuvieron importancia o que considera interesantes
u originales.

7
Estado de funcionamiento del programa.

Indicaciones para correr el programa. Especifique aquí cualquier informa-


ción necesaria para correr su programa, como por ejemplo, el formato de
entrada de la latitud y otros valores.

4. Indicaciones
El proyecto debe ser entregado el lunes 19/11 (lunes de semana 10) a las
12:00 pm. Debe entregar el informe a su profesor de taller, y enviar el
código del programa en un archivo comprimido (en formato zip o tgz) a
la dirección eduardo@ldc.usb.ve.

Las subrutinas deben seguir las convenciones vistas en clase. Este será uno
de los aspectos de importancia en la evaluación.

El código debe estar documentado correctamente, de acuerdo con las prác-


ticas de documentación vistas en clase y en otras asignaturas. No comente
todas las líneas de su programa, sino que agregue comentarios donde sea
necesaria una explicación.

Cada función y procedimiento debe estar encabezado con un comentario


que indique su propósito, parámetros, valor de retorno y planificación de
registros.

Para verificar si su programa calcula correctamente la altura y azimut,


compare sus resultados con otra aplicación de astronomía. En la próxima
sección encontrará referencias a varios programas.

5. Referencias
Converting RA and DEC to ALT and AZ. http://www.stargazing.net/
kepler/altaz.html

Understanding Celestial Coordinates (artículo de la revista Sky & Telesco-


pe). http://www.skyandtelescope.com/howto/basics/3305886.html?
page=1&c=y

Positional Astronomy (notas de un curso universitario). http://star-www.


st-and.ac.uk/~fv/webnotes/index.html

Local Sidereal Time Clock. http://www.jgiesen.de/astro/astroJS/siderealClock/

Thomas H. Cormen et al. “Chapter 11: Hash tables” en Introduction to


Algorithms, Second Ed., MIT Press, 2001

Programas de astronomía:

8
XEphem (Linux y Mac). http://www.clearskyinstitute.com/xephem/

Cartes du Ciel (Windows). http://www.stargazing.net/astropc/

KStars (Linux). http://edu.kde.org/kstars/

Vous aimerez peut-être aussi