On illustre le déplacement de l’étoile Polaire et de Véga au fil des millénaires, avec un script Python et le module Skyfield.
Les étoiles sont animées d’un mouvement par rapport au repère équatorial. Ce mouvement, désigné par « précession des équinoxes », ne peut se percevoir que sur une longue échelle de temps ; sa période est d’environ 26000 ans.
L’étoile Polaire, actuellement très proche du pôle céleste nord, s’en éloigne lentement. Au contraire, l’étoile Véga se rapproche peu à peu du pôle céleste, et pourra être considérée comme une nouvelle étoile indicatrice du pôle, dans environ 12000 ans. C’est ce que montre le graphique suivant.
Les positions des deux étoiles sont placées tous les millénaires, les flèches indiquant les années. Le centre du graphique est le pôle céleste nord. L’échelle de temps choisie ici couvre 26000 ans ; au bout de cette durée les étoiles retrouvent à peu près la même position. Le phénomène de nutation accompagne la précession ; il explique que ces étoiles ne retrouvent pas exactement la même position après 26000 ans.
On remarque que Polaris a entamé un rapprochement du pôle depuis l’an -10000. Véga est actuellement à plus de 50° du pôle mais s’en rapprochera à environ 6° vers l’an 13000.
Pour obtenir ce graphique, j’utilise le module Skyfield d’éphémérides astronomiques. Il charge les coordonnées des étoiles choisies dans le catalogue Hipparcos, et les coordonnées de la Terre. Ceci entraîne le téléchargement automatique (uniquement à la première exécution du script) de deux fichiers (hip_main.dat et de431t.bsp). Ce dernier est assez lourd (3.1GB) car il comporte les données d’éphémérides pour une période allant de -13200 à 17191, nécessaire pour montrer la période de 26000 ans.
#Chargement des coordonnées du catalogue Hipparcos :
with load.open(hipparcos.URL) as f:
df = hipparcos.load_dataframe(f)
# Rechercher le numéro d'une étoile dans le catalogue Hipparcos :
# https://vizier.u-strasbg.fr/viz-bin/VizieR?-source=1239/hip_main
# Insérer ce numéro entre crochets :
polaris = Star.from_dataframe(df.loc[11767])
vega = Star.from_dataframe(df.loc[91262])
Chargement du fichier d’éphémérides (le chemin défini par ‘load’ est à adapter selon votre répertoire de destination personnel) :
load = Loader('../skyfield-ephemerides')
planets = load('de431t.bsp') # 3.1GB fichier d'éphémérides (-13200 to 17191)
# lieu d'observation :
earth = planets['earth']
Une fonction calcule les coordonnées équatoriales (ascension droite RA et déclinaison dec) des étoiles, puis trace leurs positions. Il faut veiller à calculer prendre en compte la précession et la nutation avec les lignes suivantes :
equinoxe = ts.J(annees)
position = earth.at(periode).observe(star)
ra, dec, distance = position.radec(equinoxe)
Le script Python compressé :
Le script exporte les coordonnées calculées dans un fichier csv, ce qui permet de les utiliser avec un autre outil informatique (tableur, autre logiciel de graphiques…).
annee ra_polaris_deg dist_polaris_deg ra_vega_deg dist_vega_deg
-12000 259.65221802631135 48.21239814586712 124.88937009099622 5.956147963007737
-11000 268.6385824860586 48.64083177437118 158.60868880439935 9.506072487962328
-10000 277.1022373056809 48.337632467528586 176.38004217826392 14.225870373379877
-9000 285.1549922634584 47.28765942363181 188.32586317704033 19.331656899964415
-8000 292.87020160641316 45.50863720468526 197.91957085840974 24.512079052423744
-7000 300.29549022528533 43.035594794474235 206.43525818601333 29.570937955937545
-6000 307.48380859329853 39.91574935954552 214.4484457948723 34.35780755223031
...
Voici le fichier csv :
Love these calculations and scripts you are posting! (Adding comment because I mean it, but also to get notified of new posts!)