Timeseries de spectres en 3D avec Python

Posted on
Timeseries 3D

Afin de suivre l’évolution des spectres d’un objet quelconque, il est parfois intéressant de visualiser une série temporelle en trois dimensions. Cet article présente un exemple de ce type de visualisation avec Python.


Pour cet exemple, j’ai utilisé trois librairies connues et performantes :

Astropy et Specutils , que j’ai déjà présentées ici : Python pour l’astronomie et la spectroscopie : Analyse rapide d’un spectre, et qui sont utilisés ici pour la lecture des fichiers FITS et la préparation du spectre.

Plotly qui est utilisé ici pour avoir une visualisation en 3 dimensions dynamique.

Les spectres utilisés ici ont été effectués par E. Bertrand, que je remercie au passage pour me permettre d’utiliser ses données à des fins d’illustrations. L’objet concerné est NovaPer2020 et les spectres ont été acquis avec un Lhires III.

Voici le code et la sortie générée, on retrouve la longueur d’onde sur l’axe X, la date d’observation récupérée dans le header de chaque FITS sur l’axe Y et le flux sur l’axe Z.

La librairie Plotly permet d’avoir une interactivité avec le spectre qui est très appréciable sur ce genre de visualisation, vous pouvez ainsi rester cliquer sur le graphe pour tourner la caméra avec votre souris.


Pour aller plus loin, voici quelques liens :

Code source et données sur mon Gitlab

https://gitlab.com/chronosastro/aspyt/-/blob/master/notebooks/3d_spec_timeseries.ipynb

Pour exécuter et voir le résultat de ce code en ligne via Binder

Documentation Plotly

Plotly

Sources et références

1 Astropy
2 Specutils
3 Plotly
4 Astronomia Spectro – E. Bertrand

Faites comme moi, partagez !