RETOUR A LA PAGE D'ACCUEIL

CALCULS ASTRONOMIQUES POUR UN LOGICIEL D'ASTRONOMIE




Cette page est destinée aux personnes qui souhaiteraient avoir les bases de calcul astronomiques pour réaliser un petit logiciel d'astronomie qui affiche le Ciel a un moment donné dans un lieu donné.
Mais ceci n'est pas un cours d'informatique, j'ai réalisé mon logiciel en java, mais tous les langages peuvent être utilisés.

De plus, ce site n'explique pas la seule méthode pour réaliser ce genre de logiciel. Il explique simplement comment moi j'ai réalisé mon logiciel pour aider d'autres personnes qui souhaiteraient faire la même chose.




Vous pouvez voir le résutat de mon travail : mon logiciel de planétarium

Les étapes à suivre

Les formules à utiliser





L'organisation du logiciel


Peut être que vous n'êtes pas entièrement habitué au langage mathématique de l'astronomie, pour y remédier vous pouvez faire un petit tour sur ma page pour les débutants, la rubrique "vocabulaire particulier" pourra vous aider.


Les étapes à suivre

Voici les principales étapes pour réaliser mon logiciel :

  • Mettre en place un catalogue d'étoiles : Il vous faut un ensemble de données qui contiendra les éléments de bases de votre logiciel : ceci se trouve dans un catalogue d'étoile qui contient au minimum la position de l'étoile (déclinaison et ascension droite) et sa magnitude. Pour mon logiciel, je n'ai utilisé que les étoiles du "Bright Star Catalogue" ayant une magnitude plus petite que 4, et j'ai tout simplement entré ces données dans un tableau de données en java.


  • Affichage des étoiles à un moment donné (heure sidérale = 0) avec un lieu variable : ici tous les calculs du temps sont donc oubliés, on met en place tous les calculs astronomiques de projections et de changement de coordonnées pour donner une image du ciel. On passera donc des coordonnées de l'étoile du catalogue (en ascension droite et déclinaison) aux coordonnées de l'étoiles pour l'observateur (par rapport à son zénith et le nord) c'est à dire les coordonnées avec hauteur et azimut. Ceci sera effectué à partir de la latitude et de la longitude du lieu.


  • Mettre en place l'interface graphique : Ce moment me parait être idéal pour mettre en place toute votre interface graphique (bouton, champs de textes...) car vous avez déjà obtenu dans l'étape précédente une image de la carte du ciel que vous allez obtenir.


  • Prendre en compte l'heure et la date d'observation : Ici il faut faire le calcul de l'heure sidérale d'observation et intégrer ce calcul à votre logiciel.


  • Si vous êtes arrivé à cette étape, vous avez déjà un petit logiciel simple qui peut être utilisé. pour la suite, il reste à :

  • Mettre en place le dessin des constellations.


  • Afficher les planètes


  • Prendre en compte un catalogue complet, avec un peu plus d'informations sur les étoiles par exemple.




  • Les formules à utiliser :

    Notions générales :

    Il faut avant tout avoir à l'esprit tous les systèmes de coordonnées qui sont utilisés.

    Pour commencer, le catalogue d'étoiles utilise pour situer les étoiles, des coordonnées indépendantes de l'observateur : ce sont les coordonnées équatoriales. Dans ce système de coordonnées, les étoiles sont supposées être très loin de la Terre. La Terre est donc considérée comme un point minuscule au centre du repère. L'étoile est représentée par deux angles : l'ascension droite et la déclinaison comme le montre le schéma suivant. Les deux références pour la mesure de ces angles sont l'équateur Céleste (projection de l'équateur Terrestre) et le point Vernal (point d'intersection entre l'équateur et l'écliptique).


    Position d'une étoile sur la sphère Céleste


    Ensuite, il faut situer l'observateur. Pour cela, on utilise des coordonnées analogues aux coordonnées précédentes sur la sphère Terrestre. Ce sont aussi des coordonnées équatoriales. L'observateur est situé par deux angles la latitude et la longitude avec comme référence l'équateur Terrestre et le méridien de Greenwich.


    Position d'un observateur sur la sphère Terrestre


    Le but du logiciel sera donc de situer les étoiles par rapport à l'observateur. Pour cela, on utilise des coordonnées célestes horizontales qui sont très simples à utiliser pour l'observateur. Ces coordonnées utilisent deux angles : l'azimut, qui indique un angle par rapport au sud de l'observateur et la hauteur.




    Position de l'étoile pour l'observateur


    La dernière étape sera de projeter les coordonnées célestes horizontales sur un plan. Pour pouvoir dessiner notre carte du ciel à plat.

    Catalogues d'étoiles :

    Pour avoir les coordonées d'étoiles, il faut utiliser une base de données avec les informations sur les étoiles : il vous faudra au minimum : Ascension droite, Déclinaison et Magnitude pour pouvoir dessiner une carte du ciel.

    Il existe de nombreux catalogues d'étoiles disponibles sur le net.

    Par exemple : Les étoiles affichées dans notre applet sont celles du Catalogue of the Brightest Stars (catalogue des étoiles les plus brillantes). Une description détaillée de ce catalogue se trouve à http://vizier.u-strasbg.fr/viz-bin/Cat?V/53A . Il contient les 1628 étoiles les plus brillantes, ce qui était suffisant pour notre usage.

    Le catalogue peut être chargé dans son format original --> ftp://cdsarc.u-strasbg.fr/cats/V/53A

    Le service VizieR permet aussi d'interroger le catalogue en ne demandant que certaines colonnes, et d'obtenir divers formats de sortie (HTML, ASCII, XML ...) --> http://vizier.u-strasbg.fr/viz-bin/VizieR?-source=V/53A .

    Dans le cas de notre applet, on lit un fichier au format TSV (Tab-Separated-Value, valeurs séparées par des tabulations) qui est relativement aisé à utiliser. A noter que VizieR permet d'interroger et d'obtenir les données de plus de 3000 catalogues astronomiques.

    Les formules :

    Notations utilisées :

    Calcul de la Hauteur :

    La hauteur est un angle compris entre -90° et +90°, la hauteur s'obtient donc simplement par : Calcul de l'Azimut :

    L'azimut est un angle compris entre 0 et 360°, nous avons donc besoin d'un calcul intermédiaire : Si sinazimuth > 0 alors : Sinon : Calcul du jour julien:

    Pour la date, il faut utiliser un système de référence plus simple que le système jour-mois-année traditionnel, on utilise en général le JOUR JULIEN : ce calendrier est très simple, il ne fait que compter les jours à partir d'une date de référence. La date de référence est le 1er janvier de l'an -4712 à 12H00 (par exemple le 1er janvier 2OOO à 00H00 correspond au jour julien 2451544.5).
    L'utilisateur a donc entré une Année, un Mois, un Jour, une Heure et une Zone, nous en déduisons par le calcul le nombre de jour depuis le 1er janvier 2000 auquel il correspond. L'heure donnée est l'heure locale, la zone correspond au décalage par rapport à Greenwich.

    [ Par convention : la fonction Int est la fonction qui rend la partie entière d'un nombre ]

  • Si le mois est inférieur à 3 :
      alors Mois = Mois + 12 et Année = Année - 1
      sinon on ne fait rien


  • Puis on fait les calculs suivants :
  • A = Int( Année / 100 )
  • B = 2 - A + Int( A / 4 )

  • ( les termes A et B sont des termes correctifs qui doivent être utilisés pour les dates à partir du 15 octobre 1582, date de la reforme du calendrier julien en calendrier grégorien. Dans mon logiciel, j'ai supposé que l'utilisateur tape toujours une date apres celle-ci )
  • C = Int( 365.25 * Année )
  • D = Int( 30.6001 * ( Mois + 1 ) )
  • Jour Julien :JJ = B + C + D + jour + 1720994.5


  • Calcul de l'heure sidérale:

    L'heure sidérale va nous permettre de calculer un angle qui dépend de l'heure d'observation et de la date.
    Nous connaissons le jour julien, nous en déduisons le nombre de siècle depuis le 01/01/2000 grâce à la formule suivante :
    On en déduit l'heure sidérale en seconde grâce à la formule suivante :
    en heure l'heure sidérale est donc : Mais il faut ramener cette heure dans un intervalle de 0 à 24H et ne garder que la partie fractionnaire de ce nombre d'où : Calcul du décalage dû à l'heure sidérale

    Sachant que la Terre tourne sur elle-même en 23H56min4s, on en déduit l'angle auquel correspond l'heure sidérale Calcul du décalage dû à l'heure

    Il depend de l'heure en temps universelle, c'est à dire l'heure à Greenwich, d'où le paramètre "-zone", il est compté à partir de 12H (car l'heure sidérale est comptée à midi) d'où le paramètre "-12", ce décalage dépend aussi de la rotationde la Terre en 23H56min4s. Projection sur un plan :

    Pour obtenir une représentation des étoiles, il ne reste plus qu'à projeter ces coordonnées sur un plan.
    Il ne faut pas oublier que seul les étoiles donc la hauteur (hau) est positive sont visibles ! (les autres sont au-dessous de nos pieds).
    Au départ, on pourrait penser faire une projection de la carte avec un cos(hau) comme on le ferait classiquement pour projeter une sphère sur un plan en mathématique, en fait une projection linéaire donne un meilleur résultat et une carte moins déformée sur les bords. Nous utilisons donc :
    (le paramètre - permet de placer le Nord en haut de la carte, le coeff permet de déterminer la taille de la carte et peut varier a volonter) Sur les axes X et Y, on a donc :

    Ajouter les planètes :

    Pour les planètes, les formules à utiliser sont beaucoup plus complexes, je vous conseillerais le livre de calculs astronomiques de Jeau Meeus que vous trouverez dans ma sélection de livres de calculs astronomiques.
    Vous donner la liste des formules sur ce site serait très long et reviendrait à recopier une partie du livre de Jean Meeus, je ne me le permetrait donc pas.

    Sur le net, je n'ai trouvé qu'un seul lien :http://www.cpod.com/monoweb/mabboux/astronomie.html, sur ce site vous aurez un logiciel de calculs astronomiques avec ses sources toutes les formules nécessaires s'y trouvent donc.

    L'organisation du logiciel

    A mon avis, faire ce logiciel est plus adapté dans un langage qui utilise une conception objet (java, C++, Delphi ...) C'est pourquoi j'ai mis en place cette petite rubrique, pour aider dans la conception objet, pour ceux qui n'ont pas beaucoup d'expériences en informatique. Voici donc la liste des objets (classes en java) que j'ai utilisée :

  • Un objet BrighStars qui contient uniquement une structure avec 3 tableaux de données : l'un contenant l'ascension droite en radian de chaque étoile, l'autre contient leur déclinaison et le troisième leur magnitude.


  • Un objet Etoile qui contient les coordonnées d'une étoile. Pour le moment, j'utilise un mini catalogue qui contient déjà mes angles en radian et uniquement les infos nécessaires, dans des versions supérieures du logiciel, cette classe traduira les informations des différents catalogues d'étoiles.


  • Un objet Lieu qui contient les coordonnées du lieu d'observation en radian. Mais qui à partir des angles en degrés peut les traduire en radian. Dans des versions supérieures du logiciel, il pourra aussi déduire les coordonnées à partir de certaines grandes villes ...


  • Un objet Position qui à partir des objets Lieu et Etoile en déduit les coordonnées de l'étoile pour l'observateur. (en azimut et hauteur)


  • Un objet DessinCiel qui est un objet héritant d'un objet standard de dessin qui dessine le ciel. Pour chaque étoile il calcule la projection de l'étoile sur notre carte à partir des informations d'un objet Position. Il dessine pour chaque étoile un cercle à la position calculée avec un rayon proportionnel à la luminosité de l'étoile. Dans des versions supérieures du logiciel, cet objet dessinera tous les autres objets ....


  • Un objet Ciel qui est la programme principal de mon logiciel, qui gère toute l'interface graphique du logiciel.






  • Vous pouvez voir le résutat de mon travail : logiciel de planétarium. Nous sommes deux a travailler sur cette carte du ciel : Thomas et moi. Vous avez des remarques, des commentaires, des conseils à nous donner : n'hésitez pas à nous contacter.
    Si vous préférez apprendre dans un livre, n'hésitez pas à consulter ma sélection de livres de calculs astronomiques.



    Allez aussi visiter la page de liens.
    Vous pouvez laisser un message dans mon livre d'or ou posez vos questions dans le forum.

    RETOUR A LA PAGE D'ACCUEIL