Éphémérides des planètes

Où l’on dresse un tableau annuel des coordonnées des planètes, avec un script Python.

Comme de nombreux documents sur mon site, ce script utilise les modules matplotlib (graphiques), numpy (gestion de listes de données), skyfield (éphémérides astronomiques), pandas (gestion de tableaux de données) et datetime (création de dates).

Plusieurs instruments astronomiques anciens permettent de prévoir la position du Soleil pour une date donnée, voire de certaines étoiles (cartes du ciel, astrolabes, sphère armillaire). Puisque les planètes ont un mouvement sur la sphère céleste, lorsque l’on souhaite utiliser de tels instruments pour prévoir les positions, visibilité, heures de lever/coucher des planètes, il est nécessaire de faire appel à des éphémérides des planètes. Avec des outils numériques, le logiciel Stellarium est très efficace dans ce but.

Pour disposer d’éphémérides imprimées, utilisables lors d’ateliers par exemple, j’ai voulu concevoir un tableau rassemblant les coordonnées équatoriales des planètes, sur une année.

Les positions des planètes sont données ici pour le 1er jour et le 15e jour du mois. En 15 jours, Mercure se déplace très rapidement, alors que les planètes gazeuses ne se déplacent que faiblement.

Il suffit de modifier l’année en début de script pour générer les valeurs pour une autre période. Le module Skyfield s’appuie sur un fichier d’éphémérides qui est téléchargé. Le fichier utilisé ici s’étend jusqu’à l’année 2050, mais en consultant la documentation de Skyfield, vous trouverez comment choisir d’autres époques.

La liste des planètes est très facile à modifier. Il faudra alors prévoir d’ajuster les positions horizontales du texte, voire la taille de la police de caractères. Même si vous êtes peu familiarisé.e avec Python et les modules utilisés, il vous sera facile de modifier le script pour ajuster les dates choisies pour les calculs.

Remarque : en guise d’alternative à Skyfield, on pourrait se servir des formulaires d’éphémérides de l’IMCCE pour obtenir les valeurs souhaitées.


Quelques commentaires sur le script :

Je crée une liste de dates avec le module datetime. D’abord une liste des 1ers jours de chaque mois de l’année, puis une liste des 15e jours de l’année. Ensuite je concatène les deux listes, enfin je les classe dans l’ordre.

# création de la liste de dates (1er et 15e jour du mois) :
premier = np.array([dt.datetime(annee, i, 1,tzinfo=utc) for i in range(1,13)])
quinze = np.array([dt.datetime(annee, i, 15,tzinfo=utc) for i in range(1,13)])
liste_dates = np.concatenate((premier,quinze))
liste_dates = np.sort(liste_dates) # classement dans l'ordre

Le module Skyfield retourne les valeurs d’ascension droite et de déclinaison sous un format qui lui est propre. Je crée deux fonctions qui formatent ces données pour retourner des chaînes de caractères insérables dans le tableau.

def formatage_AD(AD):
    # renvoie un string de l'ascension droite'
    AD_str = str(AD)
    AD_str = AD_str.split()
    AD_str =AD_str[0] + ' ' +AD_str[1]
    return AD_str

def formatage_decl(decl):
    # renvoie un string de la déclinaison
    decl_str = str(round(decl.degrees,1)).replace('.', ',')
    return decl_str

Extrait du code pour créer les objets « planètes » :

# (Télé)chargement du fichier d'ephémérides de421.bsp (16 MB, période 1849-2050)
eph = load('../skyfield-ephemerides/de421.bsp')# si le fichier est déjà chargé sur le disque (chemin à adapter).
# eph=api.load('de421.bsp')# pour télécharger automatiquement le fichier, dans le dossier du fichier Python

mercure = eph['mercury']
venus = eph['venus']
terre= eph['earth']
mars = eph['mars']
jupiter = eph['jupiter barycenter']
saturne = eph['saturn barycenter']
uranus = eph['uranus barycenter']
neptune = eph['neptune barycenter']

liste_planetes = [mercure, venus, mars, jupiter, saturne, uranus, neptune]
N_planetes = len(liste_planetes) # nombre de planetes

Pour la figure, le script crée un graphique par planète, avec le nom de la planète en titre. Une fonction formate ces graphiques par une itération.

Enfin, le script produit un fichier csv externe qui rassemble toutes les valeurs calculées, en colonnes comme dans la figure.

Ces données peuvent ainsi être réutilisées dans un autre logiciel. Le fichier csv peut être ouvert avec un tableur comme LibreOffice :

Le script Python :


J’ajoute un script donnant cette fois les coordonnées écliptiques géocentriques des planètes :

Le script Python :

Soyez le premier à commenter

Laisser un commentaire