Ce stage a été réalisé lors de ma première année de BTS SIO option SLAM
Le stage a été réalisé pour la société Vaonis, qui est start’up basée à Clapiers (34) en télétravail. Vaonis fabrique et commercialise des télescopes tout-en-un abordable permettant de prendre des photos des objets célestes.
Le projet
Lors de la prise de photos astronomiques, il est nécessaire de faire de longue pose, pour recevoir beaucoup de lumière provenant des objets célestes très peu lumineux. Comme les poses sont longues, il faut compenser la rotation de notre planète, sinon, les étoiles s’étirent très rapidement. C’est pourquoi les instruments de prise de photo astronomique sont motorisés. Cependant, la mécanique, aussi précise soit-elle, n’est jamais fiable. Il est donc nécessaire de corriger l’erreur périodique inhérente à toute mécanique.
Lors de ce stage, ma mission était de créer entièrement une application permettant de visualiser cette erreur périodique à l’aide de graphiques.
J’ai codé cette application en C++ avec l’aide du Framework Qt sous Linux Ubuntu et selon le modèle MVC.
L’interface de lancement
J’ai tout d’abord mis en place la page de lancement de l’application. Cette fenêtre portant les couleurs de Vaonis dispose de deux champs qu’il faut renseigner de la longitude et la latitude où ont été prises les photos. Puis, en cliquant sur le bouton « ouvrir », l’explorateur se lance afin d’aller chercher l’ensemble de la série de photo dont l’on souhaite connaitre l’erreur périodique.
La première chose que doit faire l’application est de déterminer les coordonnées des objets présents dans le champ de l’image, au format équatorial. Cette application existe déjà sous Linux : solve-filed.

Solve-field
Dans un premier temps, il fallait intégrer cette solution qui fonctionne sous Linux à mon application
Je l’ai intégrée grâce à un script shell que j’ai appelé « callsolvefield ». Pour le bon fonctionnement de ce script, il est nécessaire de télécharger et placer les index astrométriques correspondant.

J’ai défini un script par défaut, qu’il est possible de modifier selon ses besoins.
L’appel du script dans le contrôleur à l’aide d’un QString
Le flux
Le programme appelle « solve-field » sur chaque image qui lui retourne les coordonnées équatoriales de chaque objet de chaque image dans un flux unique qu’il a fallu décortiquer. Pour cela, j’ai utilisé les signaux et slots de Qt. Dans la capture suivante, le contrôleur analyse le flux et cherche uniquement les coordonnées (ascension droite (RA) et déclinaison(Dec)) ainsi que la rotation d’angle que l’on a placé dans un tableau.

Mais, il me manquait la date et l’heure de l’observation, Stellina les enregistre dans l’entête de chaque photo.
Les Fits
Le format utilisé par Stellina pour ses photographies est un format spécifique développé par la NASA : le format Fits.
Le contrôleur doit donc également chercher la date et l’heure dans l’entête de chaque photo.

La conversion
Toutes ces données réunies au format « string », il a fallu les extraire et les convertir au format « int ». C’est le contrôleur qui s’en occupe. Je récupère toutes les variables issues de « solve-field » en découpant les chaines stockées dans mon QByteArray.

Puis, je sauvegarde chaque point de coordonnée dans un vecteur (QVector), puis, je réinitialise les variables pour créer un nouveau vecteur, et ainsi de suite.

Une fois tous les vecteurs créés, le contrôleur procède à la conversion du format équatorial au format alt-azimutale. Je n’affiche dans la capture suivante qu’une partie de cette conversion.

Chaque résultat de conversion est stocké dans un QPoint.
Les graphiques
Tous les QPoints étant créés, il fallait les afficher dans un graphique. J’ai mis en place trois affichages différents que j’ai commenté dans le code.
La plus intéressante affiche les trois droites dans le même graphique.
Le code pour la partie azimutale



et le resultat

En lien, le rapport d’activité au format « pdf » : https://portefolio.site-en-vrac.com/rapports/stage_Vaonis.pdf
