specINTI & specINTI Editor

7 : Le traitement par le détail des spectres à haute résolution spectrale


Nous avons décrit précédemment quelques principes de fonctionnement de specINTI et nous avons rapidement montré un exemple de traitement. Ici nous entrons plus dans le détail sur la constitution des fichiers d’observation et de configuration, qui sont au coeur du principe de l’application, tout en délivrant des astuces d’acquisition et d’exploitation des spectres, plus précisément dans l’optique de la spectrographie à haute résolution spectrale. Comme support, nous conservons la session « starex213 », déjà utilisée précédemment.


On rappelle que l’ensemble des données attachées à l’exemple peut être téléchargé sous la forme d’une archive ZIP en cliquant sur ce lien : starex213.zip



7.1 : Comment bien remplir le fichier d’observation


Pour faciliter l’apprentissage, nous allons nous contenter au début de décrire le traitement d’un seul objet, les spectres de la brillante étoile Altair, centrés sur la fameuse raie rouge H-alpha de l’hydrogène. Notre archive propose 6 images du spectre brut de cet objet avec les noms altair-1, altair- 2, …., altair-6. Ces images ont été acquises en séquence ,les unes après les autres. Le temps de pose individuel est de 45 secondes.


Note : ce sont des fichiers images au format FITS, mais on ignore volontairement l’extension « .fits » car specINTI va l’ajouter pour vous.


Un autre fichier image associé est présent, discret, le fichier « altair_neon-1 ». C’est l’image du spectre de la lumière émise par une lampe spectrale à gaz néon (précisément, une lampe à décharge contenant du gaz néon, comme on en trouve parfois dans les installations électriques). On verra plus tard son utilité.


Ouvrons l’onglet « Observations » de l’interface specINTI Editor.


En premier, vous devez indiquer dans quel dossier on trouve les images à traiter, c’est-à-dire le chemin du répertoire de travail. Nous avons déjà parlé de ce sujet à la section précédente : tout en haut de l’onglet, cliquez sur le bouton «Parcourir», puis à partir de la boîte de dialogue qui s’ouvre, localisez votre dossier de travail, puis sélectionnez-le.


Précisez ensuite le nom en clair de l’objet à traiter dan le champ «Liste objets», ici «Altair» (majuscules ou minuscules, cela n’a pas d’importance). Ce nom n’est pas choisi au hasard : il rappelle le nom générique des images brutes et il est reconnu par SIMBAD.


Au point où vous en êtes, specINTI Editor offre un mécanisme d’automatisation. Cliquez sur le bouton «Auto». Le logiciel rempli alors pour vous de nombreux champ. Il trouve automatiquement le nom générique de vos fichiers bruts («altair-»), le nombre d’images dans la séquence (6), la présence de l’image d’étalonnage spectral «altair_neon-1»  (le logiciel comprend aussi qu’il n’y a qu’une image de ce type disponible).


Astuce : remarquez l’usage du «- » entre le nom générique et le numéro d’index. Il permet de ne pas confondre ce dernier avec le numéro catalogue. Comme on a déjà pu l’indiquer; Il est vivement recommandé d’utiliser ce tiret lorsque vous construisez une liste d’objet (même s’il n’y a qu’un seul objet dans cette liste).


Remarque : pour que le mécanisme d’automatisation aille jusqu’au bout, specINTI Editor doit connaître le type de séparateur entre le nom générique et le numéro d’index (le «postfix»). Compte tenu de notre manière de nommer les fichiers (y compris les fichiers d’étalonnage spectral), vous devez définir les «postfix» de la manière suivante (ces réglages sont conservés lorsque vous quittez le programme, il n’est plus nécessaire de les définir lors du prochain usage de specINTI Editor) :

Il faut aussi s’occuper des images d’offset, de dark et de flat-field, nécessaires pour bon pré-traitement des images brutes. Nous sommes ici dans le classique du traitement des images astronomiques.


Deux manières de faire se présentent avec specINTI. La première consiste à fournir le nom générique de séquences d’images correspondantes et le nombre d’images (ce nombre est trouvé automatiquement en cliquant sur le bien nommé bouton « Auto »). Supposons que vous avez à disposition 20 images brutes du signal d’offset, nommées o-1, o-2, … o-20, 14 images brutes du signal d’obscurité (poses longues dans l’obscurité), nommées n-1, n-2,…, n-14, et enfin 6 images flat-field d’une lampe à spectre continu (on verra par la suite comment faire l’acquisition de celles-ci), nommées tung-1, tung-2, …, tung-6. Dans ce cas, entrer les éléments suivants dans la zone dédiée de l’onglet « Observations » :

La seconde façon de faire vient du fait qu’après avoir fait un premier traitement avec le nom générique des images de pré-traitement, fournies comme ci-devant, specINTI écrit automatiquement dans le dossier de travail des images aux noms réservés : _offset, _dark, _flat. Ce sont les images maîtres traitées du signal d’offset, de dark et de flat-field, respectivement. Traités signifie que par exemple une moyenne des 20 images d’offset a été calculée, que le signal d’offset a été soustrait des 14 images de dark pour obtenir une vraie carte du signal thermique pour la température et le temps de pose utilisés, etc. Du coup lors d’un prochain traitement vous pouvez parfaitement écrire (ce qui sera un peu plus rapide au niveau calcul) :

Notez que le nombre d’images fourni est 0 car _offset, _dark et _flat ne sont pas des noms génériques de séquences, mais des noms de fichiers simples.


Il est encore possible de réaliser du panachage entre des images maîtres pré-calculées et des images d’étalonnages brutes sous forme de listes. C’est la situation pour notre observation « starex213 »  où on propose d’utiliser les images pré-calculées _offset et _dark, et une séquence brute de 6 images flat-field ayant le nom générique « tung- », ce qui donne au final :

Remarque : une question est souvent posée à propos du temps d’exposition à choisir pour les images dark (ou noir). Faut-il utiliser la même durée de pose que pour les images des cibles astronomiques ? Fort heureusement, la réponse est non ! Dans notre cas, la durée d’exposition pour chacune de nos 14 images élémentaires du dark est de 900 secondes (1/4 d’heure). Si vous êtes conduit à traiter un spectre exposé 60 secondes, il n’est absolument pas utile de calculer un dark généré à partir d’images élémentaires exposées 60 secondes, car specINTI ajuste le dark maître de base de 900 secondes pour simuler un dark de 60 secondes. Moralité, faite des images du dark avec un temps au moins aussi long que le plus long temps de pose pratiqué sur les cibles, et c’est tout (ne jamais traiter un spectre posé 600 secondes avec un « noir » posé 60 secondes, car alors le bruit devient très fort). Le point très important est que la température du détecteur soit toujours être la même, par exemple ici -12°C (au besoin, pour vous en souvenir, vous pouvez nommer vos « dark » : n900_12-1, n900_12-2, …, une bonne astuce pour s’y retrouver, car certains logiciels d’acquisition n’écrivent pas la température du capteur dans l’en-tête FITS).


Pour parachever l’édition de l’onglet «Observations», pensez à donner un nom au fichier d’observation. En cliquant sur le bouton «Sauver», specINTI Editor sauvegarde votre fichier d’observation dans le dossier de travail courant (obligatoirement). C’est un fichier respectant l’architecture YAML, au format texte. Vous êtes libre pour le nom. Ici nous avons choisi «obs_altair» (avec le sous entendu que nous traitons une observation de l’étoile Altair). En double-cliquant sur le nom de ce même fichier (ou un autre), qui apparait alors dans le liste de droite, vous affichez son contenu dans l’onglet «Observations». Ceci est très pratique pour retrouver la façon d’avoir traité d’anciennes données.


7.2 : Comment afficher l’image d’un spectre ?


Vous êtres peut-être curieux de savoir à quoi ressemble une image brute du spectre de l’étoile Altair ? C’est fort simple. Rendez-vous sur l’onglet «Visu Image», cliquez sur le bouton «Ouvrir», sélectionnez le fichier altair-1.fits (par exemple) dans le répertoire de travail, et l’image du spectre s’affiche alors immédiatement :

Vous ne voyez ici qu’un extrait de l’image saisie. Pour vous déplacer à l’intérieur de celle-ci, glissez avec le bouton gauche de la souris enfoncée. Apprenez aussi à utiliser les curseurs horizontaux en bas de l’onglet, qui permettent d’ajuster le contraste et la luminosité. Pour connaître l’intensité d’un point de l’image, positionner le pointeur de souris, puis faire un click gauche.


L’image globale montre elle-même seulement une portion du spectre de l’étoile Altair, dans la partie rouge, approximativement centrée sur la raie H-alpha. Elle est typique d’un spectre haute-résolution acquis avec le spectrographe Star’Ex, ou tout autre spectrographe de la même catégorie : le spectre proprement dit de l’astre est le fin trait horizontal. La raie H-alpha est la large échancrure en absorption de l’on peut apercevoir un peu sur la gauche de l’image. Cette largeur inhabituelle pour ce type d’étoile vient du fait que l’étoile tourne ici très vite autour de son axe, ce qui produit un élargissement Doppler-Fizeau très significatif de la raie de l’hydrogène et de toutes les autres raies stellaires dans le spectre de cet objet. Les raies fines sont des raies telluriques, c’est-à-dire des raies qui apparaissent lorsque la lumière de l’étoile traverse la fine couche de notre atmosphère terrestre. Les raies en question proviennent de l’absorption par les molécules H2O (vapeur d’eau dans l’atmosphère) - on y reviendra.


Remarque : la raie H-alpha n’est pas centrée sur la portion de spectre saisi. C’est volontaire, pour pouvoir observer simultanément une raie de l’hélium qui se situe plus loin dans le rouge, tout à droite de l’image.


Il est important de souligner que nous avons exploité lors de l’acquisition qu’une fraction de la surface de détection offerte par le capteur Sony IMX533, qui comporte à la base 3008x3008 pixels (caméra ZWO ASI533MM). L’image acquise, et que vous affichez à l’écran, ne fait que 3008 pixels de large et 651 pixels de haut. Au moment de l’acquisition, avec le logiciel employé (Prism),  nous avons fait en sorte de ne conserver que la partie de l’image jugée comme utile, le ROI (de l’anglais « Region Of Interest). Le spectre étant un trait, il est logique de ne conserver qu’une bande autour de la trace. Ce détourage (ou « cropping » en anglais) évite de saturer inutilement le disque dur, accélère les calculs et donne un affichage plus agréable. Travailler sur le ROI est une habitude très importante à prendre en spectrographie stellaire.


Par ailleurs, l’acquisition a été réalisée en binning 1x1. Là encore, il s’agit d’une considération importante lorsqu’on travaille avec un capteur CMOS. Certes, un binning 2x2, par exemple, réduit la taille des images, mais il s’agit d’une opération destructive, qui élimine des informations très utiles pour exploiter au mieux l’image optique du spectre. On ne peut plus revenir en arrière après un binning 2x2, le mal est fait. Vous devez vous interdire avec les capteurs CMOS de travailler autrement qu’en binning 1X1 si vous voulez tirer le meilleur de vos images (on y revient plus tard). 


Vous avez le loisir d’afficher d’autres images bien sûr, altair-2.fits, _offset.fits, tung-4.fits, … L’image altair_neon-1.fits (vous pouvez utiliser le second champ d’affichage, utile pour des comparaisons d’image) est particulièrement instructive aussi :

Nous voyons les raies en émission produites par la lampe d’étalonnage spectral - les fins traits approximativement verticaux. En vous déplaçant dans l’image, vous allez en compter 5. Ces raies sont associées à un domaine spectral très étroit et parfaitement identifié en longueur d’onde. On parle de raies « monochromatiques », alors que le spectre de notre étoile est « polychromatique » (il contient plusieurs longueurs d’onde, ou couleurs).


Si vous êtes un peu attentif, vous vous apercevez que ces raies sont légèrement courbées, ce dont il faudra tenir compte lors du traitement. Cette courbure s’appelle un « smile » en anglais (un « sourire » en français). Elle provient d’une incidence variable des rayons lumineux sur le réseau à diffraction du spectrographe suivant que les rayons proviennent du centre de la fente ou du bord. Il en résulte une légère variation du pouvoir dispersif du réseau en fonction de la hauteur considérée sur la fente, d’où la courbure. Cet effet est bien visible avec un réseau de 2400 traits/mm, mais très atténué avec un réseau de 300 traits/mm par exemple, ce qui fait qu’il passe alors inaperçu.


On explique dans la section suivante comment ce spectre de référence du néon a été concrètement obtenu.



7.3 : L’acquisition de la source de référence spectrale

 

Nous venons d’entrevoir l’aspect du spectre de la lampe néon, qui sera un des éléments de l’étalonnage en longueur d’onde de nos spectres (le processus consistant à associer une longueur d’onde à chaque pixels suivant l’axe spectral de l’image).


La méthode « traditionnelle » pour obtenir un tel spectre de raies « monochromatiques » consiste à disposer juste à l’avant du spectrographe (entre le télescope et le spectrographe) une sorte de boite à lumière dans laquelle est logée la source spectrale à raie d’émission. Un servomécanisme, souvent piloté par l’ordinateur d’acquisition permet, soit de laisser le libre passage à la lumière de l’astre que l’on observe, soit d’envoyer la lumière de la source étalon vers la fente. Suivant le cas, on réalise l’acquisition du spectre de l’étoile, ou le spectre de la lampe étalon. C’est ensemble à l’avant du spectrographe prend souvent le nom de «bonnette».


On remarque d’abords qu’il n’est pas possible, sous la forme simple décrite, d’acquérir simultanément le spectre de l’étoile et le spectre de référence spectrale. Ce décalage temporel est une source d’erreur d’étalonnage si l’instrument fléchi sous son propre poids en fonction du temps ou si une variation de température se produite (on parle alors déformation «thermo-élastique»). Au minimum, Il faut veiller à ce que le temps soit court entre les acquisitions sur le ciel et les acquisition d’étalonnage, quitte même à les alterner dans l’idéal, mais c’est fastidieux.


Un des inconvenants de la méthode traditionnelle est quelle représente un point de fragilité dès lors qu’un mécanisme est mis en oeuvre. On génère aussi un surpoids à l’extrémité du télescope. Il y a aussi un surcoût financier. Enfin, il n’est généralement pas aisé de loger dans un petit volume un dispositif optique qui simule le rapport d’ouverture du télescope lorsqu’on injecte la lumière de la lampe étalon (l’idéal pour éviter certains biais d’étalonnage en raison des aberrations optiques résiduelles du spectrographe).


Notre approche technique est très différente dans l’exemple fourni, en rupture par rapport aux habitudes. Elle se résume à disposer à l’avant du tube du télescope ou de la lunette, une ou plusieurs lampes produisant le spectre de raies de référence, comme le montre les images ci-après : 

Le flux peut aussi être conduit à l’entrée du télescope via une ou plusieurs fibre optique (des fibres en plastique conviennent, de gros diamètre, avec une découpe au ciseau possible, et un très faible coût, voir par exemple ici). C’est la technique de la fibre que nous avons utilisé pour l’acquisition des spectres qui illustrent cette démonstration :

On peut réaliser une petite boite à lumière, comme dans l’exemple ci-contre, qui regroupe le départ des fibres et intègre une simple lampe veilleuse néon à culot E10, alimenté sous le 220V mais attention, au travers d’un convertisseur 12V vers 220 V pour une question de sécurité. Jamais de 110/220V secteur direct sur un télescope !

Ci-après, à titre d’exemple, voici comment est monté à l’avant d’une lunette de 100 mm de diamètre une fibre plastique CHINLY de 1,5 mm via un ensemble de deux pièces réalisée en impression 3D (cliquer ici pour télécharger les STL correspondant). Noter que la fibre est positionnée au centre de l’objectif, ce qui minimise les biais d’étalonnage spectral. 

Ci-après le montage à adopter pour exploiter en toute sécurité une lampe veilleuse à décharge (néon ou tout autre gaz). On utilise un alimentation 220V-12V, puis un banal convertisseur 12V->220V. On donne aussi la référence de la lampe néon à culot E10 recommandée car bien lumineuse (LG234 230V),  sous la référence 582852 chez le fournisseur Conrad.

Mieux l’éclairage est répartie sur la pupille d’entrée du télescope ou de la lunette, meilleur sera le résultat, mais un point d’éclairage peu déjà être suffisant. Si l’éclairage est ponctuel, il est recommandé que les points soient situés à 0,7 fois le rayon du télescope (ou lunette) en partant du centre et dans le prolongement de l’axe long de la fente. Contrairement à ce que l’on pourrait penser, cet éclairage dans la pupille est très peu intrusif. Si vous faites le rapport des surfaces, vous allez constater que son impact est négligeable par rapport à celui occasionné par l’obstruction centrale du télescope. Les pièces support sont faciles à réaliser en impression 3D. Une simple veilleuse néon, à culot E10, alimentée sur le 220V (via un convertisseur 12V->220V) convient tout à fait.


L’intérêt de ce mode d’injection de la lumière de la source étalon est qu’il s’agit d’un système statique, sans mécanisme, léger, pouvant être laissé à demeure, et d’un coût très faible (il peut se bricoler en une journée). On travaille aussi au plus près du chemin optique suivi par la lumière des astres. En outre, la lampe peut être allumée par intermittence, via une commande informatique par exemple, mais aussi en permanence alors que l’on observe les cibles célestes, afin de pratiquer un étalonnage continu, performant et qui sera décrit à la section 6.



7.4 : L’acquisition de la source « flat-field »


Penchons-nous sur la façon d’acquérir les images flat-field, tung-1, tung-2…, exploitées dans cette démonstration. Ici encore, nous sommes en rupture par rapport aux habitudes. 






Traditionnellement, le flat-field est réalisé grâce à une boite à lumière disposée juste à l’avant de la fente d’entrée du spectrographe, mais avec les mêmes défaut que soulignés pour l’étalonnage spectral (difficultés de représenter l’ouverture du télescope, complexité, encombrement). Il est parfois plus commode d’éclairer l’entrée du télescope de manière uniforme, comme le montre ces vues, car le flux d’étalonnage suit alors le même chemin que les étoiles, et le plan focal est plus dépouillé.

Pour des télescopes de taille intermédiaire (disons, jusqu’à 300 mm de diamètre), cette technique est viable et produire de bons résultats. Mais elle soulève aussi des difficultés. Il faut une source intense pour disposer d’un signal flat-field correct, avec un minimum de bruit (fort rapport signal sur bruit,  en particulier dans le bleu). Le choix de la nature de la lampe est limité : les spots halogènes chauffent vite, les panneaux LED ont une courbe d’intensité très chahutée en fonction de la longueur d’onde (très peu propice pour traiter le cas d’un spectre réalisé en basse résolution). L’environnement est aussi copieusement éclairé. Enfin, au fur et mesure que le télescope grossit, le dispositif devient lourd et l’opération consomme tu temps.


En fin de compte, nous retenons une technique bien plus légère et simple. Nous allons travailler sur « table », de manière très locale, en découplant momentanément le spectrographe du télescope. Seule l’entrée du spectrographe, de petite taille, est alors éclairée avec une lampe blanche pour obtenir le flat-field.  Voici une disposition :

La lampe est une ampoule à filament incandescent contenant un gaz halogène (krypton) qui donne une lumière bien blanche. On note au niveau de l’entrée du coulant 31,75 mm la présence d’un petit diaphragme simulant le rapport d’ouverture du télescope, recouvert d’un diffuseur de la lumière  (simple feuille de papier calque). L’ensemble est réalisé en impression 3D. Le malheur est qu’il devient difficile de trouver des lampes à filament de tungstène en raison de l’avènement de l’éclairage LED (les LED sont une calamité pour la spectrographie, et l’astronomie en général, contrairement à ce que l’on peut entendre ça et là. Certes, le rendement électrique d’une LED est élevé, mais la qualité de la lumière émise dans l’éclairage urbain est de très mauvaise qualité pour la vue, car en général trop de bleu, car tout le spectre visible est pollué (contrairement à ce que l’on obtient avec une lampe sodium haute pression), car les circuits de commandes sont onéreux et souvent en pannes, car c’est une solution de facilité souvent utilisée à tort et à travers … Bref, ce mode d’éclairage est bien moins écologique qu’on le dit, alors que les bonnes vieilles lampes à vapeur de sodium pour l’éclairage urbain étaient une bénédiction par la qualité de la lumière émise, à tout point de vue.


Une alternative, qui plus est fort simple, consiste à utiliser comme source flat-field, une lampe de poche de la marque MAGLinte, qui produit encore des modèles à filament incandescent de tungstène à halogénure xénon :

Quel diamètre faut-il donner au diaphragme ? Supposons que la distance entre l’entrée de la fente et le plan du diaphragme soit de 76 mm. Si on souhaite simuler une ouverture de télescope de f/8 (F/D=8), alors le diamètre du trou doit être de 76 / 8 = 9,5 mm. Pensez bien à recouvrir le diaphragme d’un bout de feuille de papier calque pour rendre l’éclairage bien homogène au niveau de la surface du diaphragme.


La réalisation des images flat-field est donc distincte de l’observation nocturne. Elle peut avoir lieu quant bon vous semble (de jour par exemple), sans stress et en consacrant la nuit à la seule observation des cibles (évitez de dérégler ou de trop secouer le spectrographe entre le moment où vous observez et le moment où vous prenez le flat-field). Le temps de pose pour nos images tung-1, tung-2,… est de seulement 2,6 secondes (il faut bien sûr éviter de saturer le détecteur). Ce temps est si bref, que l’on n’hésite pas à multiplier le nombre d’images flat-field pour un bruit minimal en particulier dans le bleu du spectre. Dans cette démonstration, on trouve 6 images tungstène, mais dans les faits, nous en avons acquis 30 -  seules les 6 premières de la série étant délivrées ici).



7.5 : Le fichier de configuration par le détail


Ouvrez l’onglet « Configuration » depuis specINTI Editor, et double cliquez dans la liste à droite, sur l’intitulé conf_starex2400_mode0_demo0.yaml. Il s’agit d’un fichier de configuration déjà présent dans le sous-dossier « _configuration » du répertoire d’installation du logiciel :

Le texte qui apparaît dans la fenêtre à gauche est un ensemble de paramètres décrivant votre configuration instrumentale et la manière dont vous voulez traiter les spectres. Les parties du texte qui apparaissent en gris correspondent à des commentaires, pour vous aider à vous y retrouver. Étudions le contenu de ce fichier de configuration, tel que nous le proposons ici. Voici le « listing » complet :


# ********************************************************************************

# Configuration Star'Ex  haute-résolution 

# Réseau 2400 t/mm - 80x125 - fente 35 microns

# Mode étalonnage 0

# ********************************************************************************


# ---------------------------------------------------

# Répertoire de travail

# ---------------------------------------------------

working_path: D:/starex213


# ---------------------------------------------------

# Fichier batch de traitement

# ---------------------------------------------------

batch_name: obs_altair


# ---------------------------------------------------

# Mode d'étalonnage spectral

# ---------------------------------------------------

calib_mode: 0


# ---------------------------------------------------

# Recherche automatique des raies d’étalonnage

# ---------------------------------------------------

auto_calib: [6500 6700]


# ---------------------------------------------

# Ordre polynôme

# --------------------------------------------

poly_order: 2


# ---------------------------------------------------

# Largeur de binning

# ---------------------------------------------------

bin_size: 22


# ---------------------------------------------------

# Zones de calcul du fond de ciel

# ---------------------------------------------------

sky: [200, 15, 15, 200]


# --------------------------------------------

# Rayon de smile

# --------------------------------------

smile_radius: -24000


# ---------------------------------------------------

# Bornes x pour mesures géométriques

# ---------------------------------------------------

xlimit: [300, 2200]


# ----------------------------------------------------------------

# Zone de normalisation à l'unité

# ----------------------------------------------------------------

norm_wave: [6640, 6660]


# ----------------------------------------------------------------

# Zone de cropping du profil

# ----------------------------------------------------------------

crop_wave: [6500, 6700]


# ----------------------------------------------------------------

# Température de couleur de la lampe tungstène

# ----------------------------------------------------------------

planck: 2900


# ----------------------------------------------------------------

# Longitude du lieu d'observation

# ----------------------------------------------------------------

Longitude: 7.0940


# ----------------------------------------------------------------

# Latitude du lieu d'observation

# ----------------------------------------------------------------

Latitude: 43.5801


# ----------------------------------------------------------------

# Altitude du lieu d'observation en mètres

# ----------------------------------------------------------------

Altitude: 40


# ----------------------------------------------------------------

# Site d'observation

# ----------------------------------------------------------------

Site: Antibes Saint-Jean


# ----------------------------------------------------------------

# Description de l'instrument

# ----------------------------------------------------------------

Inst: RC10 + StarEx2400  + ASI533MM


# ----------------------------------------------------------------

# Observateur

# ----------------------------------------------------------------

Observer: cbuil


# ----------------------------------------------------------------

# Goodies

# ----------------------------------------------------------------

check_mode: 0


Le fichier est composé de plusieurs lignes, qui sont autant de paramètres, sauf les lignes de commentaires (elles débutent par le caractère « # ». Mais bonne nouvelle, pour une configuration instrumentale donnée (votre propre spectrographe en clair) et si vous ne déménagez pas, la valeur de ces paramètres ne change pas, sinon à la marge. Un fichier de configuration tel que présenté constitue ainsi une sorte de trame ou canevas, sur laquelle vous allez greffer quelques ajustements. Mais bien sûr, vous devez connaître la signification des paramètres.


Notez d’abord que leur ordre d’apparition n’a aucune incidence sur le traitement, aussi vous pouvez regrouper ces paramètres par catégorie pour une meilleure lisibilité. Certains paramètres sont obligatoires, alors que d’autres sont facultatifs.


Côté syntaxe, il faut être strict. On trouve d’abord l’intitulé du paramètre, suivi du caractère « : » accolé (pas d’espace). Viennent ensuite un espace (un seul !), puis la valeur du paramètre, qui peut être un nombre, une chaîne de caractères, ou une liste de valeurs (que l’on met entre crochets).


Prenons deux exemples de paramètres :


calib_mode: 2

norm_wave: [6400, 6420]


Le premier, «calib_mode», se voit ici attribuer la valeur 2. Ceci détermine comment specINTI va s’y prendre pour étalonner vos spectres en longueur d’onde.


Le paramètre «norm_wave» est associé à une liste de deux valeurs (entre crochets), fixant l’intervalle de longueur d’onde à l’intérieur duquel specINTI va normaliser à l’unité le spectre final.


Il n’y a qu’un paramètre par ligne, et le nom d’un paramètre est unique dans le fichier de configuration (pas question de définir deux fois le paramètre «norm_wave» par exemple dans un même fichier de configuration).


Important : soyez attentif, si vous vous trompez dans la syntaxe d’un paramètre, il ne sera pas pris en compte dans l’application et il n’y aura pas de message d’erreur (le moyen de contrôler que les opérations se déroulent correctement est d’examiner la sortie dans la console qui donne beaucoup de détails).


Passons à présent en revue notre fichier de configuration. Le premier paramètre rencontré dans le listing s’appelle «working_path». C’est un paramètre obligatoire. La valeur désigne le chemin du dossier de travail.


Astuce : lorsque vous éditez le fichier d’observation et que vous sauvegardez celui-ci, la valeur du paramètre «working_path» est automatiquement mise à jour dans le fichier de configuration. Cela fait gagner du temps.


Le paramètre suivant, «batch_name», lui aussi obligatoire, a pour valeur le nom du fichier d’observation décrivant les données à traiter. Dans l’exemple «obs_altair» (l’extension .yaml n’est pas indiquée). Vous pouvez écrire en minuscule ou en majuscule.


Astuce : la valeur de ce paramètre est automatiquement modifiée lorsque vous sauvegardez le fichier d’observation, tout comme pour le paramètre «working_path».


La paramètre «calib_mode» est obligatoire. Il précise le type d’étalonnage spectral réalisé lors du traitement. Plusieurs stratégies sont possibles, décrites à la section 10 de cette notice. Elles sont numérotées 0, 1, 2, 3, 4. Ici le mode utilisé est le numéro 0, en quelque sorte le mode de base pour la spectrographie facile, et idéal pour la haute résolution spectrale.


Pour que specINTI puisse travailler dans ce mode 0, il faut lui fournir, outre le nom des images à réduire, le nom d’au moins une image contenant un spectre de raies en émission provenant d’une lampe de référence. Vous avez reconnu le fichier « altair_neon-1 », signalé dans le fichier d’observation. Nous nous arrangeons pour que specINTI trouve automatiquement les raies dans ce spectre afin qu’il établisse le lien entre les numéros de pixels et la longueur d’onde. Ce lien est trouvé via une méthode mathématique dite des « moindres carrés », à partir de laquelle sont ajustés au mieux les termes d’une fonction polynomiale. Cette fonction, un polynôme d’un certain degré, rattache  ainsi un numéro de pixels à une longueur d’onde. On l’appelle aussi parfois « polynôme de dispersion » (spectrale).


La présence du paramètre optionnel « auto_calib » oblige specINTI à trouver automatiquement les raies spectrales dans le fichier image «altair_neon-1», à les identifier par leurs longueurs d’onde (issu d’un catalogue interne), à mesurer à une fraction de pixels près la position de ces raies dans l’image, puis enfin à établir un polynôme de dispersion, qui s’applique ensuite à la séquence d’objets traités. Le paramètre « auto_calib », lorsqu’il est présent dans le fichier de configuration, déclenche donc un processus complexe et puissant (mais celui-ci ne s’applique qu’à la région de la raie H-alpha et pour de la spectrographie haute-résolution (R > 10000).


Dans la région spectrale observée, nous pouvons identifier 5 raies du néon utilisables, montrées ci-après en superposition à un spectre d’étoile :  

Vous allez facilement les retrouver dans l’image « altair_neon-1 ». Examinez cependant tout à droite l’aspect de la raie à 6717 A. Elle apparaît plus floue que la raie qui précède à 6678 A. On est ici confronté aux limites optiques du spectrographe Star’Ex dans la configuration choisie. A dessus de la longueur d’onde 6700 A, on admet que les aberrations optiques sont trop élevées pour exploiter le spectre correctement (trop de « flou » dans l’image). Nous allons donc exclure la raie située à 6717 A pour le calcul du polynôme de dispersion. Ceci explique les valeurs données au paramètre « auto_calib », une liste de deux nombres entre crochets :


auto_calib: [6500, 6700]


On ordonne ainsi à spectINTI de trouver les raies d’étalonnage uniquement entre les longueurs d’onde 6500 A et 6700 A. La raie qui pose potentiellement problème est donc éliminée du calcul. En fin de compte, l’étalonnage est réalisé à partir de n=4 raies, compte tenu de ce choix.


Le degré maximal du polynôme d’étalonnage étant égal à n-1, nous ne pouvons pas utiliser un polynôme de degré supérieur à 3. Cela tombe bien, car en haute résolution, un polynôme de degré 2 fournit déjà une précision largement suffisante.


Pour bien indiquer à specINTI que le polynôme de dispersion à évaluer est de degrés 2, il faut ajouter le paramètre « poly_ordrer », avec la valeur 2, comme il se doit :


poly_order: 2


Astuce : si pour une raison ou une autre, la recherche automatique des raies d’étalonnage échoue (vous aurez un message dans la console de sortie), vous pouvez retirer le paramètre « auto_calib » du fichier de configuration, et l’échanger par deux paramètres, « line_pos » et « wavelength », au travers desquels vous fournissez respectivement la position (approximative) des raies en émission sélectionnées et leurs longueurs d’onde précise issues d’un catalogue. Le résultat est alors le même qu’avec « auto_calib » :


# ---------------------------------------------------

# Position des raies d'étalonnage

# ---------------------------------------------------

line_pos: [495, 761, 1435, 2260]


# ---------------------------------------------------

# Longueur d'onde des raies d'étalonnage

# ---------------------------------------------------

wavelength: [6506.53, 6532.88, 6598.95, 6678.28]


Encore une petite astuce. Affichez l’image du spectre néon, cliquez sur les raies successivement  en partant de la gauche, tout en maintenant la touche « Allt » enfoncée. Les valeurs de position horizontale en pixels se retrouvent alors dans le champ « X coord ». Il vous reste à copier ces valeurs puis les coller en l’état comme argument du paramètre « line_pos ».

La valeur du paramètre «bin_size» définie une largeur verticale autour de la trace du spectre 2D à l’intérieur de laquelle specINTI va réaliser une sommation des intensité de l’image, colonne après colonne pour construire point à point le profil spectral :

Une bonne stratégie pour trouver une valeur correcte du paramètre «bin_size» consiste à faire en sorte que cette largeur englobe 99% du signal effectif (suivant l’axe vertical de l’image). Mais il ne faut pas que la valeur de «bin_size» soit aussi démesurée (sauf à utiliser un algorithme d’extraction optimal du profil - une possibilité décrite à la section 5.6), sous peine de voir le bruit monter inutilement alors que le signal n’augmente pas lui. Ici la zone de binning est choisie de 22 pixels de haut.


Il est important, pour que l’opération de binning spectral aboutisse à un bon résultat, de retirer au préalable le signal du fond de ciel, qui est un parasite. C’est le rôle du paramètre « sky » d’indiquer à specINTI comment il doit procéder. Le but de ce retrait est de ne conserver que le seul signal de l’astre dans le profil spectral. Même si l’intensité du ciel est souvent faible en spectrographie, en raison de la présence d’une fente étroite à l’entrée du spectrographe, il ne faut malgré tout pas négliger l’opération (la pollution lumineuse, par exemple, est visible sous forme de raies discrètes ou de bandes diffuses qui peuvent se confronter au spectre vrai de l’astre si rien n’est fait). Le travail consiste à retirer de la zone de binning, colonne après colonne, le signal trouvé de part et d’autre de la trace du spectre. Cette mesure du fond est réalisée dans deux régions localisées de chaque côté de la trace, dont les largeurs et positions sont définies comme valeurs du paramètre « sky ». Les positions en pixels sont relatives à la coordonnée verticale de la trace :

Dans l’exemple, la zone d’évaluation du fond de ciel est comprise entre -20 et -120 pixels par rapport au bas de la trace, et entre +20 et + 120 pixels par rapport au haut de cette même trace, conformément à ce qu’indique le schéma ci-dessus. Une hauteur de zone d’évaluation du fond de ciel de 80 à 150 pixels est jugée satisfaisante en règle générale. Deux algorithmes sont proposés pour cette opération, qui peuvent retirer plus ou moins efficacement des signaux accidentels dans la zone de calcul du fond de ciel (trace de rayon cosmique, par exemple). La méthode employée est fonction du paramètre optionnel « sky_mode », voir section 5.8. Mais ce paramètre étant absent du fichier de configuration, c’est la technique la plus simple qui est employée, aussi la plus rapide, et suffisante dans le cas présent.


Nous trouvons ensuite le paramètre « smile_radius » :


# --------------------------------------------

# Rayon de smile

# --------------------------------------

smile_radius: -24000


Le phénomène de « smile », qui revient en une courbure des raies, a déjà été évoqué précédemment. Cette courbure des raies est problématique au moment de réaliser le binning, car en sa présence, on agglomère des intensités correspondant à des longueurs d’onde différentes. Un effet qui induit une perte de résolution spectrale et altère la forme des raies. Il est donc important avant toute chose de modifier la géométrie du spectre par calcul pour que les raies soient bien verticales après calcul :

La valeur du paramètre « smile_radius » est le rayon de courbure du smille en pixels, ici évalué à r = -24000 pixels. Le signe indique l’orientation de la courbure. A partir de cette information, specINTI génère un effet de smille inverse de r = +24000 pour compenser le smile apparent produit par l’optique, et donc aboutir à des raies bien droites. Un problème vient du fait que l’actuelle version de specINTI ne permet pas une évaluation numérique directe du rayon de courbure de l’effet de smile. Il faut trouver cette valeur en tâtonnant, par essais successifs, afin d’obtenir des raies rectifiées géométriquement bien verticales et droites.


Il y a plusieurs façons de trouver la valeur du rayon de courbure, par un simple constat visuel. Utilisons la plus simple, qui va nous permettre par la même occasion de comprendre comment agir dans le fichier de configuration et interpréter les résultats intermédiaires de calcul.


Attribuez d’abord volontairement un résultat erroné au paramètre « smile_radius », par exemple un rayon de courbure de R = -4000, en modifiant la valeur actuelle dans le fichier de configuration :


smile_radius: -4000


Procédons à une autre modification du fichier de configuration. Tout en bas de celui-ci, vous allez trouver le paramètre :


check_mode: 0


Ce paramètre, optionnel, contrôle le niveau de détails des informations délivrées dans la console et sur votre disque lors de l’exécution du programme. Si la valeur de « check_mode » est égale à 0, nous sommes dans une option qui fournit une information très condensée (c’est aussi la valeur par défaut, si le paramètre « check_mode », optionnel, n’est pas présent dans le fichier de configuration). Attribuez la valeur 1 à « check_mode » pour obtenir un maximum d’informations sur le déroulement du programme dans la console. Dès lors que cette valeur est utilisée, le logiciel écrit dans le répertoire de travail un certain nombre de fichiers profils et images, qui lorsqu’ils sont bien interprétés permettent de mieux déceler une anomalie de traitement. Justement nous avons artificiellement produire une telle anomalie avec le rayon du smile. Attribuez donc la valeur 1 à « check_mode », et lancez le traitement en cliquant  sur « Excécuter ». Vous allez constater que le « log » dans la console est bien plus conséquent en taille qu’à l’accoutumée. Ouvrez ensuite l’onglet « Visu image » et affichez successivement des images appelées « _spec5.fits » et « _sptep91.fits », ces fameuses données intermédiaires. L’image « _step5 » montre l’aspect du spectre de la lampe d’étalon avant rectification géométrique :

Astuce : vous pouvez affichez un trait vertical de couleur cyan dans l’image, comme dans le document ci-dessus, qui aide à jauger la valeur du smile. Pour faire apparaître ce trait à un endroit donné de l’image, cliquez à l’endroit en question (click gauche), tout en maintenant le touche du clavier « Crtl » enfoncé.


Affichons à présent l’image « _step91 ». Celle-ci montre l’image du spectre du néon après « correction » géométrique, dès lors que le paramètre « smille_radius » est défini dans le fichier de configuration :

Le smile est fortement sur-corrigé en raison de la mauvaise valeur fournie avec « smile_radius ». A présent faire :


smile_radius: -24000


 puis relancez l’exécution du programme :

Les raies et le réticule guide sont à présent bien parallèles, nous avons trouvé une valeur satisfaisante pour le paramètre « smile_radius » (il y a une bonne tolérance, une valeur de R=-20000 ne fera pas grosse différence, par exemple).


Astuce : si vous souhaitez accélérer le processus itératif, indiquez provisoirement dans l’onglet « Observations » que vous ne disposez que d’une seul image du spectre de l’étoile Altair, au lieu de 6.


Le paramètre «xlimit» délimite un intervalle en pixels dans l’image du spectre des étoiles à l’intérieur duquel specINTI réalise un certain nombre de calculs géométriques automatiques (repérage de la coordonnée Y de la trace (verticale) dans chaque image d’une séquence, inclinaison de la trace (aussi appelé angle de « tilt », ….). La zone choisie doit encadrer une partie de la trace du spectre assez bien visible et uniforme. Dans l’exemple, la zone est généreusement large, délimitée à gauche par X=300, à droite par X=2200 (c’est très souple quant au choix)


Le paramètre (optionnel) «norm_wave» défini un intervalle en longueur d’onde à l’intérieur duquel le logiciel va calculer une moyenne (donc, dans le profil spectral), puis réaliser une normalisation de l’ensemble du spectre de façon à ce que dans l’intervalle en question, la moyenne de l’intensité soit égale à 1 après l’opération. Vous êtes tout à fait libre de la zone de normalisation. Ici l’intervalle spectral est 6640 A - 6660 A, choisi car exempt de raies stellaires intenses.


Le paramètre (optionnel) «crop_wave» est encore un intervalle spectral, mais qui défini cette fois une zone de détourage du spectre afin d’éliminer les parties jugées inutiles (trop affectées par le bruit ou résolution spectrale jugée insuffisante, par exemple). Ici, le profil spectral final sera borné par les longueurs d’onde 6500 A - 6700 A.


Le fait de définir le paramètre optionnel « planck » dans le fichier de configuration oblige specINTI à  corriger le signal trouvé dans le spectre des images flat-field (ici tung-1, tung-2, tung-3…) afin de tenir compte de la température de couleur de la lampe à incandescence utilisée. Cette information permet au final d’obtenir un profil spectral des étoiles plus proche de celui attendu. La distribution du signal spectral au sortir d’une lampe telle qu’une MAGlite (voir section 5.4) est assimilé à celle produite par un corps noir, et la valeur du paramètre est la température de ce corps en Kelvin. Dans la démonstration, on choisi une température de 2900 K, un peu passe partout et proche de la vraie température pour le type de lampe utilisé.   


Les paramètres «longitude», «latitude» et «altitude» fournissent les coordonnées du lieu d’observation (les angles en degrés décimaux, la longitude positive à l’est de Greenwitch, et l’altitude en mètres). Ces paramètres sont optionnels, mais il est recommandé de les définir dans le fichier de configuration. On retrouvera ces coordonnées dans le «header» FITS du profil traité.


Avec les paramètres «site», «inst» et «observer», vous pouvez indiquer le nom de votre site d’observation (observatoire), le type d’instrument auquel est associé le fichier de configuration actuel, et le nom de l’observateur. Tous ces éléments vont aussi se retrouver dans l’entête des fichiers FITS de spectre. Il est recommandé de les définir car ils constituent votre signature en quelque sorte.


Astuce : vous pouvez ajouter où bon vous semble dans le fichier de configuration le paramètre optionnel «file_extension», qui précise le type d’entête des fichiers FITS. La valeur par défaut est zéro, et correspond à l’extension «.fits». Si vous utilisez la valeur 1, l’extension est «.fit». Exemple, 


file_extension: 1


Vous avez bien sur la possibilité de sauvegarder le fichier de configuration que vous venez d’éditer. Utilisez pour cela la ligne « Fichier de configuration à sauvegarder » en bas de l’onglet. L’endroit de la sauvegarde est obligatoirement le sous-répertoire « _configuration » du répertoire d’installation de specINTI Editor. Vous pouvez constituer de cette manière une bibliothèque de fichier de configuration si vous exploités plusieurs équipement. Vous avez pour cela le choix du nom, par exemple :


conf_RC10_StarEx2400_VIS.ymal


Le «conf_» au début indique qu’il est bien question d’un fichier de configuration. Vient ensuite une description de l’instrument qui vous est propre. Ici le type de télescope, un Ritchey-Chretin de 10 pouces, puis une description sommaire de l’état du spectrographe (ici un réseau de 2400 t/mm sur un spectrographe StarEx, optimisé pour la partie visible du spectre).


Dans le cadre de cette démonstration, le nom de fichier adopté au point où nous en somme est «conf_starex2400_mode0_demo0.yaml» (voir le contenu du sous-dossier «_configuration»).








7.6 : Comment réduire le bruit


La réduction du bruit de mesure est un objectif toujours poursuivi. L’enjeu est par exemple d’obtenir un spectre lisible (avec un rapport signal sur bruit de 5 au moins) pour des objets du plus faible éclat possible, sachant que la valeur du signal est elle limitée par la durée de l’exposition, qui trouve toujours une limite (la patience, la durée de la nuit, la nécessité d’optimiser le nombre d’objets observés, etc).


Le logiciel specINTI offre plusieurs possibilités, sous forme de paramètres optionnels, que l’on peut utiliser séparément ou conjointement. Voici les principales.


Le premier de ces paramètres s’appelle « sky_mode ». Il concerne la façon dont le fond de ciel est calculé pour être ensuite soustrait aux données brutes afin d’extraire le vrai profil de l’étoile sans biais radiométrique (voir le paramètre « sky »). Si la valeur du paramètre est 0 (valeur par défaut), le fond de ciel est trouvé colonne après colonne de l’image en faisant la moyenne du signal médian trouvé des deux côté de la trace. En utilisant la valeur 1, c’est un algorithme d’interpolation basé sur des polynômes de Legendre qui évalue le signal de fond de ciel. D’une manière générale, ce dernier algorithme estime mieux le fond de ciel, ce qui réduit le bruit et certains artefacts, mais le temps de calcul est sensiblement plus long.


Le paramètre «extract_mode», lorsqu’il est défini, implique que le logiciel réalise une extraction « optimale » du profil spectral lors de la phase de binning de l’image (agglomération) pour aboutir au profil spectral. Pour cela, il faut donner la valeur 1 au paramètre « extract_mode ». Plus précisément, specINTI met ici en oeuvre un algorithme connu sous le nom de « algorithme de Hornes », largement employé pour la réduction des spectres astronomiques. L’idée est d’appliquer une pondération lors de l’addition du signal colonne après colonne, fonction du signal et du bruit. Ainsi, les points situés loin du centre de la trace suivant l’axe spatial (vertical) voient leur bruit être réduit, car ils correspondent aussi à un signal de faible valeur, avec une contribution finale petite. Par ailleurs, l’algorithme est du type itératif, avec le but d’éliminer la trace des rayons cosmiques, susceptibles de produire de fausses détections dans le spectre.


Une complication est que l’algorithme de Hornes nécessite que soit connu le gain de la caméra (e-/ADU) et son bruit de lecture (en e-), respectivement transmis au logiciel au travers des paramètres « gain » et « noise ».  On montre à la section 11.3 comment trouver ces valeurs expérimentalement si elles ne sont pas déjà connues. Par exemple, avec une caméra ASI533MM de la marque ZWO exploitée au gain constructeur de 150 (15 dB), on a : gain = 0,083 électron/ADU  et noise = 1,3 électron (avec une caméra ASI183MM utilisé au gain 200, on a g = 0,041 e-/ADU et noise = 1,8 e-).


L’efficacité de l’algorithme n’est vraiment perceptible que lorsqu’on a à faire à des signaux de très faible intensité par rapport au bruit (typiquement un rapport signal sur bruit inférieur à 20). Dans les autres situations, vous pouvez revenir à un algorithme plus basique (simple sommation arithmétique dans la largeur de binning), soit en ne définissant pas « extract_mode », soit en donnant au paramètre la valeur 0 (dans ce cas les paramètres « gain » et « noise » n’ont aucune utilité). 


Le paramètre «kernel_size», lorsqu’il est défini, ou qu’il a une valeur autre que 0, fait que le logiciel réalise un filtrage non linéaire du type médian sur toutes les images de la séquence. Quant le paramètre vaut 3, cela signifie que le noyau de calcul est un carré de 3x3 pixels. Un filtrage sur un noyau de 5 pixels de côté est aussi possible, la valeur du paramètre n’étant alors plus 3, mais 5. Sous sa forme basique, ce filtre est assez destructeur : il enlève très bien le bruit «sel et poivre»  (ou bruit RTS  - bruit télégraphe, dit aussi « percutionnel »), mais aussi, bien souvent, des détails réels de l’image. Il n’est pas recommandé d’utiliser le paramètre « kernel_size » de cette manière. En revanche, si vous donnez au paramètre une valeur négative, -3 ou -5, c’est toujours un filtrage médian qui s’applique, mais sur la base d’un algorithme qui filtre bien le bruit, tout en préservant les détails. C’est un mode de filtrage que nous appelons parfois CMED (pour CmosMEDian). Cependant l’usage, même avec des valeurs négatives, de ce type de filtre n’est possible idéalement que si la largeur à mi-hauteur (FWHM) de l’élément de résolution est supérieur à 4 avec le filtre -3 et supérieur à 6 avec le filtre -5. C’est la raison pour laquelle les données CMOS sont impérativement acquises en binning 1x1 sur le télescope. Ici le FWHM fait 5,5 pixels (voir le « log » dans la console), nous pouvons donc utiliser le filtrage médian optimisé -3. L’idée est que la fréquence des détails que l’on veut gommer (bruit) soit significativement supérieure à la fréquence optique du spectrographe. Le résultat est toujours assez spectaculaire avec les capteurs CMOS, affectés d’un bruit RTS généralement élevé (ce n’est pas le cas des anciens capteurs CCD, pour lesquels le CMED n’a pas a être appliqué, mais simultanément, capteur CMOS + CMED donne au final un bruit inférieur à celui offert par les caméras CCD). 


Le paramètre «sigma_gauss» impose un filtrage du type gaussien aux images brutes (ainsi qu’aux images de la lampe d’étalonnage). Ce filtrage adouci l’aspect des images et il est donc vite successible de réduire le pouvoir de résolution. Pour le cas traité, la valeur du filtrage sera de 1,0 (écart-type du filtre, avec un filtrage d’autant plus accentué que la valeur est forte). L’application de ce filtre fait passer le pouvoir de résolution de R=13000 à R=12000, ce qui est considéré comme raisonnable, car le bruit diminue plus vite que la résolution (encore une question d’échantillonnage des images du spectre). Faites des tests en surveillant le résultat dans le « log ».


Si vous voulez utiliser toutes ces techniques de réduction de bruit dans notre démonstration, ajoutez les lignes suivantes quelque part dans le fichier de configuration (un fichier modifié se trouve déjà dans la distribution, sous le nom « conf2400_mode0_demo2.yaml ») :


# ---------------------------------------------------

# Mode extraction du ciel

# ---------------------------------------------------

sky_mode: 1


# ----------------------------------------------------------------

# Motif de filtrage médian

# ----------------------------------------------------------------

kernel_size: -3


# ----------------------------------------------------------------

# Extraction optimale

# ----------------------------------------------------------------

extract_mode: 1

gain: 0.083

noise: 1.3


# ----------------------------------------------------------------

# Filtrage gaussien

# ----------------------------------------------------------------

sigma_gauss: 1.0


Le fichier de configuration modifié correspondant dans la distribution est «conf_starex2400_mode0_demo1.yaml». Voici l’allure du profil de l’étoile Altair après application de ces remèdes contre le bruit (comparer avant et après filtrage) :

Avant filtrage.

Après filtrage.

7.7 : La précision de l’étalonnage spectral


Est-ce qu’au terme du travail de réduction, l’étalonnage spectral est vraiment juste, vraiment précis, et de combien ? Un grand nombre d’évènements peuvent détériorer la qualité de cet étalonnage. Le problème le plus fréquent est celui du temps qui s’écoule entre le moment où on prend les images « science » et le moment où on prend les images d’étalonnage. Ce laps de temps est propice à des déformations de l’instrument, parfois infime, mais avec un effet perceptible dans le spectre final. Une autre cause d’erreur classique est la différence de cheminement des rayons lumineux venant des sources « science » et d’étalonnage (les erreurs sont alors du type systématique). 


La méfiance est donc toujours de mise et il est bon, de temps à autre, de contrôler que tout ce passe aussi bien qu’on l’espère. specINTI Editor offre un outil pour réaliser cette vérification, plus particulièrement adapté aux spectres à haute résolution spectrale autour de la raie H-alpha, ce qui est justement notre situation. Nous exploitons pour ce faire un spectre naturel, qui laisse toujours une trace dans les spectres de nos étoiles (à moins d’observer en très haute montagne avec un air très sec) : les raies telluriques de la vapeur d’eau (H2O). Cet élément chimique de notre atmosphère produit un spectre de raies fines en absorption, avec des longueurs d’onde parfaitement connue. C’est justement la comparaison entre les longueurs d’onde observée et les longueurs d’onde du catalogue de raies qui va nous permettre d’évaluer la qualité de l’étalonnage spectral.


Affichez le profil spectral réduit de Altair (via l’onglet « Visu profil », puis faire un cliquez sur le bouton « Vérif atmo » situé dans la partie inférieure de l’onglet. specINTI Editor dessine des marques à l’endroit attendu des principales raies H2O, ainsi que l’écart (en A) entre la position mesurée et la catalogue. Vous pouvez zoomer avec la loupe pour mieux examiner les détails : 

On s’aperçoit alors que les raies telluriques sont décalées vers le bleu d’environ -0,07 A. Cet écart est assez petit, 1/7 à 1/8 de la finesse spectrale délivrée par Star’Ex, mais tout de même nettement perceptible avec l’outil mis en oeuvre, qu’il ne faut donc pas hésité à utiliser. Le défaut s’explique notamment par une variation thermo-élastique du spectrographe entre le moment où sont pris les spectres de l’étoile et le moment où le spectre du néon est saisi (à la fin seulement de la session d’observation de l’étoile Altair, alors qu’idéalement il faudrait prendre un spectre de référence en début de séquence et un autre en fin de séquence, specINTI se chargeant alors de faire une sorte de moyenne si on dispose de plus d’un spectre d’étalonnage.).


Une fois avoir pris connaissance de l’erreur d’étalonnage spectral, il est facile de la corriger en utilisant le paramètre optionnel « spectral_shift_wave », dont la valeur est le négatif du décalage spectral constaté en angströms (soit +0,07 A). Ajoutez cette ligne dans le fichier de configuration, et relancez le traitement :


spectral_shift_wave: 0.07


Voir la modification à la section « goodies » du fichier de configuration «conf_starex2400_mode0_demo2.yaml». Les raies telluriques observées sont à présent quasi parfaitement alignées avec leurs positions catalogues :

Souvent, le décalage constaté est une constante, d’une cible à l’autre, et du coup, le paramètre « spectral_shift_wave » peut demeurer dans le fichier de configuration. A noter l’existence du paramètre « spectral_shift_vel » dont la valeur est cette fois un décalage en vitesse (km/s), ce qui signifie qu’il est alors possible de réaliser un décalage Doppler-Fizeau rigoureux sur un large domaine spectral (car le décalage Doppler n’est pas linéaire avec la longueur d’onde).



7.8 : L’évaluation de la réponse instrumentale


7.8.1 : La théorie


Avant de parvenir au télescope, la lumière de l’astre observé traverse l’atmosphère terrestre, ce qui a pour effet de modifier son spectre apparent par rapport à ce qu’il est en réalité. En effet, l’atmosphère se comporte comme un filtre coloré qui atténue certaines longueurs d’onde plus fortement que d’autres. L’absorption est d’une part continue (diffusion des aérosols, diffusion de Rayleigh, qui donne sa couleur bleue au ciel diurne), ozone, et d’autre part, localisée sous forme de bandes (H2O, O2) - c’est l’absorption moléculaire.


C’est l’absorption continue induite par l’atmosphère qui est de loin notre principal soucis et qu’il faut chercher à gommer.


La méthode traditionnelle pour rectifier la distorsion continue du spectre par l’atmosphère consiste à observer à une petite distance angulaire de l’astre étudié une étoile dont le spectre réel est parfaitement connu (dans des tables, des catalogues). La comparaison entre le spectre apparent de cette étoile de référence (celui observé) et le spectre dans le catalogue (spectre réel) permet d’évaluer l’impact de l’atmosphère, puis de corriger celui-ci dans le spectre de la cible faisant l’objet de l’étude. Cette technique donne de bons résultats, d’autant plus qu’elle corrige aussi en partie un effet subtil : le chromatisme atmosphérique (l’atmosphère réfracte les rayons lumineux suivant leurs longueurs d’onde, ce qui affecte la forme générale du spectre, surtout dans le bleu et l’UV). Malheureusement, cette technique « différentielle » est assez fastidieuse (idéalement, à chaque cible faite, il faut prendre le spectre de deux objets qui ne sont pas dans le même champ), et on ne trouve pas toujours des étoiles de références bien placées. Par ailleurs, dans cette situation, le rapport entre le spectre apparent et le spectre réel (catalogue) de l’étoile est souvent nommé « réponse instrumentale », mais c’est un abus de langage. En effet, la forme de cette réponse dépend de l’état de l’atmosphère, alors que cette dernière n’a rien à voir avec l’instrument. Ce que l’on nomme ici « réponse instrumentale » est une courbe qui varie suivant que l’on observe près de l’horizon ou au zénith, d’une nuit à l’autre. L’obtention de cette « pseudo réponse » demande ainsi un effort substantiel d’observation, qui fait perdre du temps et de l’énergie. 


Notre proposition ici est très différente puisqu’elle vise à évaluer la « vraie » réponse instrumentale, c’est-à-dire une constante pour un instrumenté donnée, où que l’on pointe dans le ciel et à n’importe quel moment. L’effort est alors porté sur l’estimation de la transmission atmosphérique , surtout sa partie continue. C’est votre ordinateur qui va se charger de cela, en calculant le résultat pour vous en une fraction de seconde. On procède en trois temps : 


(1) d’abord on observe un astre dit de « référence », dont on dispose du spectre vrai dans un catalogue (spectre comme vu en dehors de l’atmosphère et corrigé de tous les biais instrumentaux). Dans notre démonstration, cette étoile de référence n’est autre qu’Altair. En effet, un spectre de référence est disponible pour cet astre. Commencez par télécharger une base de spectres spécialement constituée par nous depuis ce lien (archive ZIP) : data_base.zip. Décompressez celle-ci dans un dossier de votre choix. Vous allez y trouver un vaste ensemble de spectres de référence , forts utiles pour la suite, et en particulier un extrait de spectre de l’étoile Altair, obtenu avec le très puissant spectrographe UVES en haute résolution qui équipe l’un des télescopes VLT de l’ESO. Il est jugé digne de confiance et disponible sous le nom « UVES_altair.FITS ». Copiez ce fichier dans le répertoire de travail. Voici le profil de ce spectre (voir la source ici) :

(2) le spectre apparent d’Altair, tel que nous l’avons réduit à ce stade avec specINTI, est converti en un spectre tel que nous pourrions le voir depuis l’espace, en appliquant la transmission optique inverse de l’atmosphère du moment. Concrètement, l’opération se révèle simple : on divise le spectre apparent d’Altair par la transmission atmosphérique évaluée. C’est specINTI qui se charge de l’opération.


(3) après la division, nous avons le spectre de l’astre uniquement distordu de la réalité par la réponse propre de l’instrument (transmission optique des composants, rendement quantique du détecteur, etc). L’évaluation de la réponse « vraie » est alors triviale : elle est le résultat de la division du spectre d’Altair hors atmosphère  par le spectre catalogue de cette étoile.


La puissance de la méthode est que si vous faites la même opération avec une autre étoile de référence, et si vous ne faites pas d’erreur dans l’évaluation de la transmission atmosphérique, vous allez trouver le même résultat. Un écart éventuel peut justement être le signe que l’on a mal estimé l’impact de l’atmosphère où que l’on est en présence d’un problème plus subtil de réfaction atmosphère  (il faut si possible observer les étoiles au zénith pour éliminer cet effet).


Les contributeurs à la réponse vraie ainsi trouvés n’ont aucune raison de voir leurs caractéristiques évoluer dans le temps. Ce sont donc bien des constantes. La réponse instrumentale hors atmosphère est aussi une constante par voie de conséquence. Aussi, sur le papier, cette dernière n’a besoin d’être évaluée une fois pour toutes, et certainement pas à chaque astre observé. Le gain de temps est significatif et les choses deviennent plus simples la nuit, au moment où les minutes sont comptées tellement les occasions d’observer sont rares.


Dans cette section nous décrivons les outils permettant de trouver le signal spectral hors atmosphère, comme si nous étions dans le vide spatial.


specINTI propose un outil pour trouver la transmission de l’atmosphère dans la direction du ciel visé, un résultat qui dépend au premier ordre de deux paramètres :


(1) De la quantité d’aérosol présent dans l’atmosphère, qui opacifie plus ou moins celle-ci au rayonnement optique. La mesure est donnée par le AOD = Aerosol Optical Depth (voir par exemple : https://earthobservatory.nasa.gov/global-maps/MODAL2_M_AER_OD). Plus la valeur du AO est forte, plus l’atmosphère est opaque. Le AOD est mesuré par des sondages sol ou satellitaire. Mais la simple observation de la nature (la transparence horizontale) donne déjà des indications. Retenez ces valeurs pour le AOD : un air très sec de montage correspond à un AOD de 0,02 et pour un désert sec le AOD vaut 0,04. En France, le AOD est de 0,07 en hiver, de 0,21 en été, et en moyenne sur l'année de 0,13. Lorsque le temps est très chaud et orageux, le AOD peut atteindre 0,50. Pour notre observation, réalisée l’été, à proximité de la mer, mais pas une nuit correctement transparente, nous adoptons la valeur moyenne : AOD = 0,13.


(2) De la hauteur angulaire de l’astre par rapport à la ligne d’horizon. specINTI calcule automatiquement pour vous cet angle, mais attention, il est impératif que l’en-tête des fichiers FITS contienne les mots clefs suivants : DATE-OBS, CRVAL1 et CRVAL2. Les deux derniers correspondent respectivement à l’ascension droite et la déclinaison de l’astre visé, avec les valeurs en degrés décimaux.


7.8.2 : Le calcul de la transmission diffuse de l’atmosphère


Dans notre schéma d’évaluation de la réponse instrumentale vraie, la pierre angulaire est le calcul de la transmission atmosphérique diffuse dans les conditions de l’observation.


Précisons que compte tenu de la manière d’acquérir nos spectre lors de cette session starex213, en observant une petite portion du spectre rouge de l’étoile, l’effet de la transmission atmosphérique est discret. La chose devient autrement plus sérieuse si on observe un ensemble plus global du spectre, et en particulier sa partie bleue (voir section 7 de cette documentation). Cependant, jouons le jeu, et calculons l’état de l’atmosphère, même dans le contexte de l’observation de l’étoile Altair en haute résolution spectrale autour de la raie H-alpha. 


specINTI intègre un modèle de la transmission atmosphérique assez précis, qui ne demande qu’un paramètre pour être activé et sa valeur associée : le AOD (voir plus haut). Noter que le modèle atmosphérique de specINTI intègre la diffusion par les aérosols, la diffusion de Rayleigh et l’absorption par l’ozone de haute altitude. 


La valeur estimée du AOD au moment de l’observation est transmise à specINTI au travers du paramètre « corr_atmo ». Par exemple :


# ——————————————————————————— 

# Correction de la transmission atmosphérique

# ———————————————————————————

corr_atmo: 0.13


Non seulement le logiciel calcule la transmission atmosphérique, mais en plus, il rectifie les profils de spectres pour qu’ils deviennent comme s’ils étaient vus « hors atmosphère » (au passage, ce sont des spectres ainsi corrigés qu’il faut normalement utiliser pour une analyse scientifique, l’atmosphère terrestre étant un élément parasite dans l’affaire).


Pour que le calcul puisse se faire, specINTI a besoin de la hauteur angulaire de l’astre par rapport à la ligne d’horizon, et donc connaître la date de l’observation, les coordonnées équatoriales de l’astre, et vos coordonnées géographique sur la Terre. La date de l’observation est extraite de l’entête FITS des images, depuis le paramètre du mot clef standard DATE-OBS (en TU). Certains logiciels d’acquisition ajoutent de manière automatique les coordonnées équatoriales de l’astre concerné dans l’entête des fichiers FITS des images, via les mots clefs, CRVAL1 et CRVAL2, respectivement l’ascension droite la déclinaison, avec les valeurs en degrés décimaux.


Astuce : pour savoir si les champs DATE-OBS, CRVAL1 et CRVAL1 sont bien présents dans l’en-tête de vos fichiers images et correctement renseignés , utilisez l’excellent logiciel gratuit SAOImage DS9, qui permet d’afficher le contenu des en-têtes (entre autres). Par exemple ici, un extrait de l’en-tête produit par le logiciel Prism au moment de l’acquisition des images brutes :

Si le logiciel ne défini pas les mots clefs CRVAL1 et CRVAL2, specINTI peut chercher automatiquement les coordonnées équatoriales sur la base de données astronomique 

SIMBAD (http://simbad.u-strasbg.fr/simbad/sim-fid) grâce au nom de l’objet (le ou les nom(s) fourni dans le champ « Liste objets » de l’onglet « Observations »). Pour que la procédure réussisse il faut : (1) avoir une liaison Internet, (2) fournir un nom d’objet reconnu par SIMBAD (Vega, HD59800, V495 Sgr, etc). Pour que la recherche sur SIMBAD soit effective, vous devez ajouter la ligne suivante dans le fichier de configuration (commande SIMBAD) :


# ——————————————————————————— 

# Recherche SIMBAD

# ———————————————————————————

simbad:1


Par ailleurs il est de votre responsabilité de renseigner les paramètres «longitude», «latitude», et éventuellement «altitude» dans le fichier de configuration.

Dans certains cas, il peut arriver que l’objet observé ne possède pas un nom valide dans SIMBAD, c’est par exemple le cas pour comète ou pour un astéroïde. Dans ce cas, vous pouvez exploiter une possibilité offerte par specINTI, permettant de forcer «à la main» la présence d’un mot clef FITS et sa valeur. Il faut pour cela utiliser une astuce du fichier de paramètre, décrite ci-après :


Astuce : si le fichier de configuration est conçu pour transmettre des valeurs de paramètres à specINTI, cet usage principal peut être détourné en introduisant la notion de « fonctions». Les fonctions sont des petits codes informatiques qui tiennent en quelque sorte en une seule ligne, que l’on peut insérer n’importe où dans le fichier de configuration (au début, au milieu, à la fin). Quant vous lancez specINTI, la première chose que fait le logiciel est de vérifier s’il trouve une fonction au milieu de la liste de paramètres. S’il en trouve une (la première), specINTI exécute le petit programme qui lui est associé, et au terme de ce calcul, interrompt l’exécution (vos spectres ne sont donc pas traités). Voyez les « fonctions » comme des petits utilitaires. Quand vous n’en avez plus besoin, vous effacez la ligne de la fonction ou vous disposez un « # » de commentaire au-devant de la ligne en question, et vous pourrez alors traiter vos spectres normalement à nouveau. Du côté de la syntaxe, les fonctions ressemblent aux paramètres à ceci près que l’intitulé débute toujours par le caractère « _ ». Par exemple :


_ma_fonction: [paramètre1, paramètre2, paramètre3]


Tout ceci pour dire que si les mots clefs CRVAL1 et CRVAL2 ne sont pas présents dans l’en-tête de vos fichiers, vous pouvez essayé de modifier celle-ci « à la main », grâce à des fonctions spécialement écrites dans specINTI : « _img_add_item_float », « _img_add_item_int »  et « _img_add_item_str », respectivement pour des paramètres associés à des valeurs réelles, entières ou des chaines de caractère. Par exemple, vous pouvez ajouter provisoirement dans le fichier de configuration que vous avez sous la main, la ligne suivante, qui est donc une fonction :


_img_add_item_float: [monimage-1, CRVAL1, 254.8646, monimage-1]


Après avoir lancé specINTI avec cette ligne présente dans le fichier de configuration, le mot clefs CRVAL1 avec la valeur 254.8646 est ajouté dans l’en-tête du fichier monimage-1.fits qui se trouve dans le dossier de travail. Vous pouvez continuer de la même manière si vous avez une série d’images à modifier, en adaptant la valeur de l’index de l’image. Par exemple pour la seconde image d’une série, faite :


_img_add_item_float: [monimage-2, CRVAL1, 254.8646, monimage-2]


et ainsi de suite. Pensez à retirer cette ligne de votre fichier de configuration (ou la mettre en commentaire) si vous voulez que specINTI réalise ensuite une tâche normale de traitement.


Remarque : le concept de fonctions dans specINTI est puissant, flexible et évolutif. On peut voir ces fonctions comme des utilitaires disponibles en « ligne de commandes ». specINTI intègre un grand nombre de petits utilitaires de ce type, dont on trouvera une liste à la section 13. Un exemple : si vous voulez décaler manuellement les longueurs d’onde d’un spectre de -0,07 A, car vous constatez qu’il est mal étalonné, vous pouvez insérer dans le fichier de configuration la ligne suivante :


_pro_shift_wave: [_qrvul_20220803_012, -0.07, _qrvul_20220803_012]


Mais revenons au jeu de paramètres et au traitement de notre spectre de l’étoile Altair. Nous voulons donc trouver son spectre tel qu’il serait vu en orbite, en satellisant notre observatoire (specINTI le permet en quelque sorte !), ce qui devrait être la procédure standard au passage. Ajoutez simplement la ligne suivante dans le fichier de configuration :


corr_atmo: 0.13


Note : lors du premier appel à « corr_atmo » il est probable que specINTI va aller chercher automatiquement sur un site de la NASA un modèle de transformation des coordonnées céleste. Vous devez avoir un accès à Internet. Ceci n’est ensuite plus requis. 


On vous recommande aussi (mais ce n’est pas obligatoire) d’attribuer la valeur 1 au paramètre «check_mode», en faisant :


check_mode: 1


De cette manière, au terme du traitement, specINTI écrit automatiquement dans le répertoire de travail un fichier profil spectral, ayant le nom «trans_atmo.fits», qui n’est autre que la courbe de la transmission spectrale atmosphérique calculée. Vous trouvez aussi des fichiers associés à la transmission par les aérosols, Rayleigh et l’ozone, la transmission finale étant le produit de ces transmissions élémentaires.


Vous pouvez utiliser le fichier de configuration «conf_starex2400_mode0_demo3.yaml» prédéfini, qui décrit la situation où nous en sommes actuellement. Lancez donc le traitement de l’étoile Altair avec ces paramètres. Le résultat risque de vous surprendre, car le spectre traité de l’étoile va vous paraître bien peu différent au premier regard suivant que la transmission atmosphérique est prise en compte ou pas. Il y a malgré tout une différence, mais il est vrai qu’elle est discrète compte tenu de l’étroitesse du domaine spectral exploité en haute résolution spectrale. Pour preuve, affichez le profil «trans_atmo.fits» :

On remarque que dans les conditions de l’observation, notre atmosphère absorbe environ 20% de la lumière de l’étoile au voisinage de ta raie rouge de l’hydrogène, ce n’est tout de même pas négligeable On note par ailleurs que la variation relative de la transmission atmosphérique dans le bande d’observation est modeste, quelque chose comme 2%. C’est la raison pour laquelle l’effet de la correction de la transmission atmosphérique dans nos spectres paraît si discret (ce sera une tout autre histoire en basse résolution spectrale).


7.8.3 : On trouve la vraie réponse instrumentale et on l’applique !


Nous disposons à présent d’un spectre presque complètement traité, sauvegardé dans le répertoire de travail sous le nom « _altair_20220802_996.fits » :

On dit « presque » car, si on résume la situation, c’est ici le spectre que vous verriez hors atmosphère, mais encore affecté des distorsions provoquées par la réponse instrumentale, qui n’a aucune chance d’être une courbe uniformément plate (l’efficacité du réseau dépend par exemple de la longueur d’onde). Le spectre apparent en question est donc le résultat de l’opération :


spectre apparent = (spectre vrai) x (réponse instrumentale)


Le spectre apparent (hors atmosphère) est celui que nous venons juste de calculer. Nous disposons aussi du spectre vrai, c’est le spectre UVES. Dès lors le calcul de la réponse est fort simple, on inverse l’équation précédente :


Réponse instrumentale = (spectre apparent) / (spectre vrai) 


Pour réaliser cette division, nous allons encore utiliser une fonction de specINT, qui s’appelle « _pro_div ». Le nom est explicite : il s’agit de diviser deux profils spectraux, une sorte d’arithmétique des spectres. Si l’opération à réaliser est P3 = P1/P2, la syntaxe est la suivante : 


_pro_div: [P1, P2, P3]


Avec les éléments de notre exemple, voici ce que cela donne (rappel :le spectre vrai est le fichier « UVEX_altair.FITS ») :


_pro_div: [_altair_20220802_996, uves_altair, tempo]


Nous décidons d’appeler le résultat de la division « tempo » et non pas « réponse », vous allez vite comprendre pourquoi. Voici justement l’allure du profil spectral « tempo » :

La raie de l’hydrogène H-alpha a bien disparut dans ce que nous pourrions appeler une «réponse instrumentale » (en effet la raie H-alpha est aussi bien présente dans le numérateur que le dénominateur). Malheureusement les raies telluriques (le spectre de la molécule H2O) sont bien présentent dans le dividende, car si elles existent dans notre spectre apparent, elles sont absentes dans le spectre UVES.


On devine cependant, si on fait abstraction des raies H2O une légère pente descendante en allant du coté bleu au coté rouge du profil. Cette tendance est bien réelle et représente la réponse instrumentale recherchée. A ce stade ont peu synthétiser un spectre théorique de la vapeur d’eau et retirer cette dans le spectre « tempo ». C’est faisable, et cela sera expliqué à la section suivante, mais c’est par ailleurs complexe.


Une autre solution, nettement plus expéditive, que je recommande ici car le résultat final est satisfaisant, consiste à générer un nouveau profil en interpellant au sein du profil actuel à partir d’un nombre de points très restreints, en évitant les raies telluriques. Nous allons utiliser une nouvelle fonction, « _pro_fit », qui se contente d’ajuster un profil parabolique au travers de seulement 4 points du spectre à interpeller, définis par leurs longueurs d’onde.


Le choix des points est souple : il faut seulement éviter les raies telluriques et les répartir approximativement uniformément. Aidez-vous du pointeur de souris depuis l’onglet « Visu profil ». Par exemple :

Effacez la fonction précédente (« _pro_div ») en la remplaçant par « _pro_fit », dont la syntaxe est :


_pro_fit: [entrée, w1, w2, w3, w4, sortie]


Pour notre exemple, cela donne :


_pro_fit: [tempo, 6506, 6607, 6656, 6696, _rep]


Lancez specINTI Editor avec cette ligne disposée quelque part dans le fichier de configuration. Le profil « _rep » est inscrit dans le dossier de travail. C’est notre réponse instrumentale effective. Vous pouvez l’afficher depuis l’onglet « Visu profil » :

Dans cette représentation, nous avons en bleu le profil de la réponse vraie (fichier « _rep ») et en orange, le profil de réponse de départ avec les raies telluriques. Comme il se doit, le profil « réponse » est une courbe monotone, sans aspérités, qui suit l’allure générale du profil temporaire « tempo ».


Il ne reste plus qu’à définir dans le fichier de configuration un paramètre qui indique à specINTI qu’il doit dorénavant utiliser notre réponse instrumentale « _rep » (vous pouvez choisir un autre nom bien entendu) pour évaluer le spectre final de l’étoile Altair. C’est important paramètre s’appelle « instrumental_response ». Effacez la fonction « _pro_fit » et ajoutez dans le fichier de configuration final (voir le canevas « conf_starex2400_mode0_demo4.yaml » dans la distribution) : 


# ——————————————————————————— 

# Réponse instrumentale

# ———————————————————————————

instrumental_response: _rep


Le fichier de configuration final correspondant est : « conf_starex2400_mode0_demo3.yaml».


Relancez specINTI, et vous obtenez le profil final d’Altair, bon pour être publié - un spectre hors atmosphère et débarrassé des distorsions instrumentales :

Peut être avez-vous trouvé cette évaluation de la réponse instrumentale fastidieuse. Vous avez un peu raison, alors des logiciels tels que VisualSpec ou ISIS réalisent les mêmes opérations arithmétiques sur les spectres de façon plus interactive. On dira que l’avantage des fonctions dans specINTI est de bien comprendre ce que l’on fait et que le concept est extensible.


Mais surtout, rappelez-vous bien que le fichier « _rep » est dorénavant une constante. Vous utilisez cette même réponse où que vous pointez dans le ciel. Tout ce travail n’est qu’à faire une seule fois, l’effort est donc rentable si vous êtes un observateurs assidu et si bien sur, vous ne déréglez pas votre spectrographe de manière significative. Ainsi, le fichier de configuration «conf_starex2400_mode0_demo4.yaml», qui contient le couple de paramètres « corr_atmo » (calcul du spectre hors atmosphère) et « instrumental_response » (retrait de la réponse instrumentale), peut-il être utilisé pour traiter de façon abouti tous les spectres de notre session (via le fichier d’observation « obs_nuit.yaml », voir section 4.1) :

Il y a mieux encore : notre réponse « _rep » peut très bien être utilisée d’une nuit à l’autre, sans être recalculée et sans avoir besoin, durant ces nuits, d’observer des étoiles de référence dès lors que le paramètre « corr_atmo » est présent dans votre fichier de configuration. Le gain de temps est considérable et les observations bien facilitées. C’est ici que specINTI et la manière dont on l’utilise montre toute sa puissance : vous traitez en aveugle de manière fiable, parfois même simultanément à l’observation si vous le désirez. L’usage de specINTI va devenir très simple une fois que tout est paramétrer.


Astuce : voilà une astuce particulièrement importante et utile. Vous venez de traiter la session starex213. Vous voulez à présent réduire l’ensemble des spectres de la session starex214, avec les données en questions situés dans un répertoire de travail du même nom. Copiez les fichiers _offset, _dark, _flat et _rep du dossier starex213 dans le dossier starex214, définissez le fichier d’observation de cette dernière session, vous cliquez sur le bouton « Exécuter » et tout est fini, vous pouvez passer à la session suivante, et ainsi de suite.


7.8.4 : La transmission atmosphérique moléculaire


Corriger le spectre apparent des objets du ciel pour supprimer la signature spectrale moléculaire laissée par l'atmosphère terrestre est une opération délicate. Dans la partie visible du spectre, les raies responsables proviennent des molécules O2 (dioxygène) et H2O (la vapeur d'eau). La difficulté vient de ce que ces raies sont nombreuses, parfois organisées en bandes (dites bandes moléculaires), et qu'à cette complexité du contenu spectral s'ajoute une variabilité. Par exemple, la profondeur des raies telluriques dépend du taux d'humidité de l'atmosphère, qui peut bien sûr varier selon le lieu (désertique, tropical, montagne...), la saison et même d'heure en heure, au fur et à mesure que la nuit avance. La hauteur de l'astre pointé au-dessus de l'horizon modifie la masse d'air traversée et donc aussi le contraste des raies telluriques.


Quel est l'intérêt de s'attaquer à la suppression des raies telluriques ? D'abord, ces raies perturbent à des degrés divers la recherche de la réponse instrumentale, comme nous l'avons vu précédemment. Ces échancrures dans le spectre, absentes si l'on observe les astres en dehors de l'atmosphère, peuvent être sources de distorsions accidentelles dans le profil spectral. Mais le plus ennuyeux est qu'elles modifient parfois le spectre des étoiles au point de rendre celui-ci difficile à analyser.


Voici un exemple caractéristique de ce dernier point. Le graphique suivant montre trois spectres à haute résolution de l'étoile Spica (alpha Vir) autour de la raie Halpha, pris à trois dates différentes :

Spica est en fait une double spectroscopique d'une amplitude assez forte en vitesse radiale et à courte période. En raison de la vitesse radiale variable des étoiles du couple autour d'un centre de gravité commun, les raies stellaires sont décalées périodiquement vers le rouge puis vers le bleu. Ces trois spectres montrent clairement le déplacement de la raie Halpha par rapport aux raies telluriques fixes, ainsi que les raies étroites provenant des molécules de la vapeur d'eau atmosphérique. Le souci vient du fait que la raie Halpha, peu contrastée dans cette étoile, est bordée de raies telluriques qui nuisent à une mesure précise de l'effet Doppler.


Les raies telluriques peuvent être numériquement retirées, comme le montrent les courbes des mêmes spectres après l'opération :


Les spectres sont tels qu’on les observerait en l’absence de l’atmosphère terrestre. La raie Halpha se révèle telle qu’elle est vraiment, sans le parasite atmosphérique. 


Il est important de souligner que retirer les raies telluriques peut avoir un impact important sur les spectres observés, et il est donc souvent demandé de les conserver dans les données fournies, sauf dans le cadre de traitements spécifiques. Les zones les plus critiques du spectre impactées par les raies telluriques se situent dans le jaune et le rouge, notamment autour du doublet du sodium et de la raie Halpha de l'hydrogène.


Il existe des outils logiciels complexes pour modéliser l'atmosphère et sa transmission, tels que HITRAN, mais il est difficile d'obtenir un spectre fidèle de l'atmosphère basé uniquement sur une analyse paramétrique.


Le logiciel specINTI offre la possibilité de retirer les raies telluriques H2O dans la partie visible du spectre de manière automatique, donc simple. Cette approche repose sur l'utilisation de spectres moléculaires synthétiques précalculés, disponibles dans une banque de spectres téléchargeable depuis le site Sky Model Calculator de l'ESO : https://www.eso.org/observing/etc/bin/gen/form?INS.MODE=swspectr+INS.NAME=SKYCALC


Nous en avons extraits un certains nombre de spectres moléculaire de l’atmosphère, mis en forme pour le traitement avec specINTI. Cette banque de spectres est disponible dans une archive ZIP, que vous pouvez télécharger depuis ce lien : atmo_molecular.zip



Il est recommandé de créer un dossier «atmo_molecular» dans le répertoire d'installation de specINTI pour y stocker les spectres moléculaires extraits de l'archive ZIP. Ces spectres sont au format FITS et permettent de couvrir un domaine spectral allant de 3000 à 11000 A, avec un pas de 0,1 angström pour le spectre "_molecular_30mm.fits", par exemple. La série spéciale de spectres donc le nom se termine par «HR» couvre une domaine spectral plus restreint, mais avec un pas plus fin, de 0,02 A, adapté au traitement des spectres réalisés en haute résolution spectrale (R>10000).


Voici par exemple l’aspect d’un extrait du spectre  «_molecular_30mm.fits» :

Les très nombreuses bandes de raies fines sont produites par les molécules H2O et O2 de notre atmosphère terrestre, les fameuses raies telluriques. Attention, il s’agit d’un spectre dit « à résolution infinie » (ou quasi). Ce n’est pas précisément l'aspect observé avec nos spectrographes, qui ont un pouvoir de résolution limité.


La manière la plus expéditive, et sûrement votre préférée, pour gommer les raies telluriques d'un spectre d'étoile prend la forme d'une fonction très simple, appelée « pro_telluric ». Elle possède les paramètres suivants :


_pro_telluric: [spectre moléculaire, spectre d’entrée, spectre de sortie]


« spectro_moléculaire » désigne l'un des spectres ESO contenu dans le répertoire « atmo_molecular ». Pour la plupart des situations, ne vous posez pas trop de questions et choisissez le spectre médian « _molecular_80mm_HR ». « spectre d’entrée » est le nom du spectre à traiter, et « spectre_sortie » est le spectre de l'objet après retrait des raies telluriques.


Voici comment exploiter cette fonction - cela tient sur deux lignes dans un fichier de configuration que vous nommez à votre goût.


Par exemple, si l'on souhaite retirer les raies telluriques d'un spectre traité et correctement étalonné en longueur d'onde nommé « _alphadra_20230505_807 », on écrit simplement dans un fichier de configuration dédié :


working_path: d:/starex308

_pro_telluric: [_molecular_80mm_HR,_alphadra_20230505_807,_alphadra_telluric_removed]


Puis on lance specINTI. 


Ci-dessous, à gauche, le spectre de la raie Halpha dans l'étoile alpha Dra avant le retrait des raies telluriques H2O, à droite après le retrait.








La fonction « _pro_telluric » se révèle très efficace lorsque vous êtes amené à retirer les raies telluriques d'un spectre pour une raison ou une autre. 


Aller à la partie suivante :  l’étalonnage en mode latéral                                                                                                                     Revenir en arrière