Phases de la planète Vénus (Python)

Où l’on reconstitue l’aspect du disque vénusien d’après son angle de phase et sa distance à la Terre.

Toutes les planètes peuvent présenter des phases, vues depuis la Terre, mais c’est pour Vénus que le phénomène est le plus marqué. Pour reproduire l’aspect du disque vénusien depuis la Terre, j’ai utilisé le module Skyfield pour Python, et calculé l’angle de phase de la planète. C’est l’angle du sommet du triangle Soleil-Vénus-Terre où se trouve Vénus.

L’angle de phase est l’angle Terre – Vénus – Soleil. Il vaut ici 56.1°.

Dans ce script, j’utilise la commande ‘separation_from’ du module Skyfield qui donne l’angle séparant deux astres, vus depuis un troisième. Ici, l’angle entre le Soleil et la Terre, vus depuis Vénus. L’aspect du disque est constitué d’une partie sombre et d’une partie claire, notamment d’une ellipse, claire ou sombre selon les conditions. Le demi grand-axe de cette ellipse est le rayon du disque planétaire, et le demi petit-axe (b) se calcule facilement d’après l’angle de phase : b = R.cos(angle de phase).

Le pourcentage de la fraction éclairée du disque, vu depuis la Terre, se calcule aussi facilement :

fraction = 50. (1 + cos(angle de phase)) (entre 0 et 100 %)

On trace une ellipse de couleur claire ou sombre, de demi petit-axe b.

Le plus difficile est de trouver de quel côté vient la lumière solaire sur le disque planétaire, car la commande ‘separation_from’ renvoie un angle non algébrique. J’ai donc dû calculer les coordonnées du Soleil et de Vénus, dans le référentiel géocentrique, pour calculer la différence de longitude écliptique entre Vénus et le Soleil. Même avec ça, pas facile de traiter tous les cas, mais que crois que le script est correct.

Cela ne m’étonnerait pas qu’il existe une solution plus simple.

Pour finir, j’ai utilisé la distance Vénus-Terre pour donner un rayon normalisé au disque.

À partir d’une série d’images générées et rangées chronologiquement, j’ai fait ce gif animé :

Pour faire tourner ce script, vous aurez besoin des modules matplotlib, numpy, datetime, skyfield. Rappel : Skyfield s’appuie sur un fichier d’éphémérides (extension .bsp), qu’il faut télécharger. Le module explique comment charger ce fichier après téléchargement.

Le script Python compressé :


Pour Mercure :

Pour Mars :

Soyez le premier à commenter

Laisser un commentaire