LIB TT
une librairie de prétraitement d'images astronomiques
version 20000215
Manuel de l'utilisateur
Ce guide de l'utilisateur s'adresse aux astronomes qui veulent écrire
des scripts de traitement d'image utilisant la librairie TT. Rappelons
que seul le format d'images FITS est reconnu.
1. Guide de référence du mode script
de TT
L'intérêt principal de la librairie TT est de pouvoir exécuter
des commandes entrées sous la forme de script.
Un script TT est composé d'une seule chaine de caractères
contenant des lignes (séparateurs \n du langage C). Chaque ligne
est analysée séquentiellement. Au sein d'une ligne, la première
chaine de caractères rencontrée doit contenir le mot clé
de définition. Si le mot clé n'est pas reconnu, le restant
de la ligne est interprété comme une simple remarque. Le
séparateur blanc est utilisé pour les paramètres suivants
de la ligne.
Il existe actuellement trois mots clé de définition :
-
SET/VAR : initialise la valeur d'une variable de substitution. Cette définition
comporte deux arguments : le mot à substituer et le mot substitué.
Les lignes suivantes se verront ainsi remplacer les mots à substituer
par le mot substitué.
-
IMA/SERIES : traitement d'une série d'images et génère
autant d'images en sortie qu'en entrée.
-
IMA/STACK : traitement d'une pile d'images et génère une
seule image en sortie.
1.1. Paramétrages des définitions IMA/
La forme générale d'une ligne définie par un mot clé
de type IMA/ est la suivante :
définition rep_in nom_in ext_in indice_deb indice_fin rep_out
nom_out ext_out indice_out fonction paramètres ...
-
définition : IMA/SERIES ou IMA/STACK
-
rep_in : chemin d'accès aux fichiers d'image d'entrée (.
si c'est le répertoire courant de libtt).
-
nom_in : nom générique des images d'entrée
-
indice_deb : nombre correspondant à l'indice de la première
image (. s'il n'y a pas d'indice)
-
indice_fin : nombre correspondant à l'indice de la dernière
image (. s'il n'y a pas d'indice)
-
ext_in : nom de l'extension (suffixe) des fichiers images d'entrée
-
rep_out : chemin d'accès aux fichiers d'images de sortie (. si c'est
le répertoire courant de libtt).
-
nom_out : nom générique des images de sortie.
-
indice_out : nombre correspondant à l'indice de la première
image de sortie (. s'il n'y a pas d'indice)
-
ext_out : nom de l'extension (suffixe) des fichiers images de sortie.
-
fonction : nom de la fonction (voir ci-après).
-
paramètres ... : liste de paramètres propres à chaque
fonction
Exemple d'une ligne de script :
IMA/STACK . i 1 5 .fit c:\toto j . .fit SK bitpix=32 kappa=1.5 nullpixel=-1000
jpegfile
Ce script demande d'effectuer un pile kappa-sigma (fonction SK) des
images i1.fit à i5.fit du répertoire courant en une image
j.fit dans le répetoire c:\toto. L'image j.fit sera enregistrée
en entiers de 4 octets (bitpix=32), le coefficient kappa vaut 1.5 et les
pixels de valeur inférieure ou égale à -1000 ADU ne
seront pas pris en compte dans calcul des kappa-sigma.
A noter : dans ce propos, le terme de nom complet signifie le nom du
fichier incluant le répertoire et le suffixe. Ainsi : c:\toto\j.fit
est un nom complet alors que le nom de l'image est j.
1.1.1. Liste générale des fonctions
disponibles pour IMA/
mot clé de définition [et paramètres diponibles] |
mot clé de la fonction [et paramètres diponibles] |
IMA/STACK [bitpix jpegfile skylevel nullpixel] |
ADD
SK [kappa]
SORT [percent]
MED
MEAN |
IMA/SERIES [bitpix jpegfile skylevel nullpixel] |
SUB [file offset]
ADD [file offset]
OFFSET [offset]
COPY
DIV [file] [constant]
FILTER [threshold] [type_threshold] [kernel_width] [kernel_type] [kernel_coef]
OPT [dark] [bias] [therm_kappa] [unsmearing]
TRANS [trans_x] [trans_y]
STAT [pixelsat_value] [fwhm] [objefile] [pixefile] [border] [detect_kappa]
DELETE
NORMGAIN [normgain_value]
NORMOFFSET [normoffset_value]
CATCHART [path_astromcatalog] [astromcatalog] [catafile] [jpegfile_chart]
[jpegfile_chart2]
HEADERFITS [file]
REGISTER [translate]
ASTROMETRY
UNSMEARING [unsmearing]
INVERT [mirror] [flip] [xy]
CONV [kernel_type] [sigma] |
1.1.1.2. Paramètres optionels de la définition IMA/SERIES
-
[bitpix] permet de choisir le format de données enregistrées
dans le fichier FITS. On distingue les cas suivants :
-
bitpix=8 : octets non signés.
-
bitpix=16 : entiers à 2 octets signés.
-
bitpix=+16 : entiers à 2 octets non signés.
-
bitpix=32 : entiers à 4 octets signés.
-
bitpix=+32 : entiers à 4 octets non signés.
-
bitpix=-32 : flottants à 4 octets (float).
-
bitpix=-64 : entiers à 8 octets (double).
Par défaut, les images de sortie prennent le même type de
données que les images d'entrée.
-
[jpegfile] (pas d'arguments) permet de sauver une ou plusieurs images au
format JPEG après traitment. Les seuils sont pris égaux à
ceux trouvés dans l'entête de l'image (cf fonction IMA/SERIES
STAT pour les calculer). Il y aura autant d'images JPEG générées
que d'images finales FITS générées. Chaque fichier
JPEG porte le même nom que le fichier FITS correspondant dont le
suffixe est remplacé par .jpg. Les fichiers JPEG sont enregistrés
dans le même répertoire que les images FITS de sortie.
-
[skylevel] (pas d'arguement) permet de sauver la valeur du fond de ciel,
avant traitement, dans l'entête de l'image traitée (mot clé
SKYLEVEL dans l'entête FITS).
-
[nullpixel] (= valeur en ADU). Permet d'indiquer à la fonction de
ne pas prendre en compte les pixels dont les valeurs sont inférieures
ou égales à la valeur seuil de nullpixel. Nullpixel employé
sans argument signifie que la valeur seuil vaut zéro.
1.1.1.3. Paramètres optionels de la définition IMA/STACK
A ce jour, les paramètres optionels sont les mêmes que
pour IMA/SERIES
1.2. Fonctions de la définition IMA/STACK
Chacune des fonctions de IMA/STACK peut être associée aux
paramètres optionels généraux de IMA/STACK. Les paramètres
optionels (et leur argument) spécifiques à chaque fonction
sont décrits maintenant :
1.2.1. Fonction ADD
Addition pixel à pixel de chaque image avec une image dont le
nom complet
s de la pile. La date (DATE-OBS) et le temps de pose (EXPOSURE) sont
changés en fonction des poids de chacune des images entrant dans
la pile.
1.2.2. Fonction MEAN
Moyenne pixel à pixel des images de la pile. La date (DATE-OBS)
et le temps de pose (EXPOSURE) sont changés en fonction des poids
de chacune des images entrant dans la pile.
1.2.3. Fonction MED
Médiane pixel à pixel des images de la pile. La date
(DATE-OBS) et le temps de pose (EXPOSURE) sont changés en fonction
des poids de chacune des images entrant dans la pile.
1.2.4. Fonction SORT
Valeur triée, pixel à pixel, des images de la pile. Le
calcul de la valeur triée est le suivant. La valeur de chaque pixel
(x,y) de toutes les images de la pile sont triées dans l'ordre croissant.
Le paramètre optionel [percent] permet de choisir la vlaeur triée.
La valeur triée est prise égale au minimum si [percent=0],
à la valeur médiane si [percent=50] et au maximum si [percent=100].
percent peut prendre n'importe quelle valeur entre 0 et 100. Par défaut
[percent=50].
La date (DATE-OBS) et le temps de pose (EXPOSURE) sont changés
en fonction des poids de chacune des images entrant dans la pile.
1.2.5. Fonction SK
moyenne kappa-sigma, pixel à pixel, des images de la pile.Le
paramètre optionel [kappa] permet de choisir le seuil de réjection
pour calculer la moyenne. Par défaut [kappa=3]. La date (DATE-OBS)
et le temps de pose (EXPOSURE) sont changés en fonction des poids
de chacune des images entrant dans la pile.
1.3. Fonctions de la définition IMA/SERIES
Chacune des fonctions de IMA/SERIES peut être associée aux
paramètres optionels généraux de IMA/SERIES. Les paramètres
optionels (et leur argument) spécifiques à chaque fonction
sont décrits maintenant :
1.3.1. Fonction ADD
Addition pixel à pixel avec une image dont le nom complet est
défini par l'argument de [file]. Une valeur d'offset peut être
ajoutée et vaut l'argument de [offset].
1.3.2. Fonction SUB
Soustraction pixel à pixel avec une image dont le nom complet
est défini par l'argument de [file]. Une valeur d'offset peut être
ajoutée et vaut l'argument de [offset].
1.3.3. Fonction OFFSET
Ajoute, à tous les pixels, une valeur constante qui vaut l'argument
de [offset].
1.3.4. Fonction COPY
Recopie sans rien changer, les images vers un autre nom, répertoire,
suffixe.
1.3.5. Fonction DIV
Division pixel à pixel avec une image dont le nom complet est
défini par l'argument de [file]. Une valeur constante peut être
multipliée et vaut l'argument de [constant].
1.3.6. Fonction FILTER
Filtrage spatial d'image avec un filtre kernel. Le masque de kernel
est carré est comporte [kernel_width] pixels. Les valeurs du kernel
sont prédéfinies en fonction du [kernel_type]
-
kernel_type=fh : filtre passe haut
-
kernel_type=fb : filtre passe bas
-
kernel_type=med : filtre médian
-
kernel_type=min : filtre minimum
-
kernel_type=max : filtre maximum
-
kernel_type=mean : filtre moyen
L'argument de [kernel_coef] permet de régler l'efficacité
d'action du filtre. Cette efficacité est nulle (le filtre n'a aucun
effet) si la valeur vaut 1. L'efficité est maximale si la valeur
vaut 0. En pratique l'efficacité est calculée de la façon
suivante : value est la valeur initiale du pixel central du kernel, val0
est la valeur filtrée par le kernel, valmax est l'avant derniere
valeur maximale des pixels sous le kernel et valmin est la deuxième
valeur minimale des pixels sous le kernel. On calcule val1 et val2 de la
façon suivante :
val1=fabs((double)(val0-value));
val2=kernel_coef*(valmax-valmin);
La valeur initiale est remplacée par la valeur filtrée
si val1<val2.
Le paramètre [threshold] permet d'assigner un seuil de limite
du calcul du filtre et [type_threshold] permet de distinguer la condition
du calcul par rapport à ce seuil.
-
type_threshold=-1 : le filtre est appliqué si le pixel central initial
a une valeur inférieure ou égale au seuil [threshold]
-
type_threshold=0 : le filtre est appliqué à tous les pixels
de l'image (valeur par défaut).
-
type_threshold=+1 : le filtre est appliqué si le pixel central initial
a une valeur supérieure ou égale au seuil [threshold]
1.3.7. Fonction OPT
Correction du dark avec optimisation. Les images sont corrigées
des images [bias] et [dark] (noms complets). L'image [dark] est optimisée
avant d'être soustraite. L'optimisation se fait sur les pixels dont
la valeur est supérieure à un certain seuil dans l'image
dark. Ce seuil est calculé comme la moyenne + [therm_kappa] sigma.
Par défaut, [therm_kappa]=0.25.
A la suite des corrections précédentes, il est possible
d'effectuer une correction de trainée (deconvflat) dans le cas d'une
image effectuée avec une caméra sans obturateur. Pour ce
faire, indiquer la valeur du rapport de lecture (en général
proche de 0.0005) dans le paramètre [unsmearing].
1.3.8. Fonction TRANS
Effectue une translation constante de [trans_x] [trans_y] pixels de
toutes les images.
NB : Dans la version actuelle, les valeurs des mots clé d'astrométrie
ne sont pas modifiés en conséquence.
1.3.9. Fonction STAT
Effectue le calcul des paramètres statistiques de l'image (moyenne,
écart type, minimum, maximum, moyenne du fond, écart type
du fond, seuil haut, seuil bas, contraste). Calcule le nombre de pixels
saturés si on définit la valeur de [pixelsat_value]. Calcul
la largeur a mi hauteur moyenne des étoiles du champ si le paramètre
optionel [fwhm] est présent.
Si l'option [objefile] est présente, génère une
liste d'objets dont le nom complet du fichier FITS est l'argument de [objefile].
De même, on peut générer une liste de pixels dont le
nom complet du fichier FITS est l'argument de [pixefile]. [pixefile] et
[objefile] peuvent avoir le même nom. Il est possible de réduire
la fenêtre de recherche pour [objefile] et [pixefile]. Pour cela,
on utilise le mot [border] suivit d'un pourcentage. Ce pourcentage vaut
0 pour calculer sur toute l'image (valeur par défaut), et vaut au
maximum 90 pour effectuer le calcul sur une petite zone au centre de l'image.
[border] n'affecte pas le
calcul des paramètres statistiques moyenne, etc. Enfin, il est
possible de régler le seuil de détection en agissant sur
la valeur de [detect_kappa]. Par default, [detect_kappa] vaut 3 (en unités
d'écart type du fond).
1.3.10. Fonction DELETE
1.3.11. Fonction NORMGAIN
Normalise, par une multiplication, la valeur du fond de ciel à
la valeur spécifiée par [normgain_value]. Par défaut,
la valeur de [normgain_value] vaut la valeur de fond de ciel de la première
image.
1.3.12. Fonction NORMOFFSET
Normalise, par un offset, la valeur du fond de ciel à la valeur
spécifiée par [normoffset_value]. Par défaut, la valeur
de [normoffset_value] vaut zéro.
1.3.13. Fonction CATCHART
Dresse un liste d'objets d'un catalogue correspondant au champ à
l'image d'entré. La liste est enregistrée dans le fichier
FITS de nom complet l'argument de [catafile]. Par défaut (catafile
employé sans argument) le fichier FITS est celui de l'image de sortie.
Ainsi, la liste du catalogue est ajoutée derrière l'image.
Si l'on souhaite générer une liste catalogue à part
de l'image, il suffit de spécifier son nom comme argument de [catafile].
Dans ce cas, ce fichier FITS contiendra toutes les listes catalogues de
la série d'image.
[path_astromcatalog] est le chamin d'accès au catalogue. [astromcatalog]
est le nom du catalogue choisit :
-
astromcatalog=USNO : pour utiliser l'USNO A ou SA
-
astromcatalog=MICROCAT : pour utiliser le catalogue astrométrique
compacté Microcat.
[jpegfile_chart] est le nom du fichier jpeg qui simule l'image du
champ des étoiles du catalogue.
[jpegfile_chart2] est le nom du fichier jpeg qui simule l'image du
champ des étoiles du catalogue qui se superposent en rouge sur le
champ observé.
Il est possible de réduire la fenêtre de la carte des etoiles
du catlogue. Pour cela, on utilise le mot [border] suivit d'un pourcentage.
Ce pourcentage vaut 0 pour calculer sur toute l'image (valeur par défaut),
et vaut au maximum 90 pour effectuer le calcul sur une petite zone au centre
de l'image (cf. fonction STAT de IMA/SERIES).
1.3.14. Fonction HEADERFITS
Ajoute des mots clé à l'entête FITS. Les mots clés
sont définis dans un fichier texte ASCII dont le nom complet est
l'argument de [file]. Chaque mot clé est défini par 5 lignes
dans le fichier texte :
-
ligne 1 : nom du mot clé (en majuscules <= 8 lettres)
-
ligne 2 : valeur associée au mot clé.
-
ligne 3 : type de la valeur (short, int, float, double, string)
-
ligne 4 : commentaire
-
ligne 5 : unités
S'il n'y a pas de commentaire, laisser la ligne blanche. De même
pour l'unité.
On peut ajouter autant de mots clés que l'on veut.
1.3.15. Fonction REGISTER
Effectue la régistration des images par rapport à la
première. Il faut préalablement que toutes les images aient
un liste d'objets associée (cf. fonction STAT). [translate] permet
de contraindre le mode de calcul de la régistration :
-
translate=only : on contraint le passage d'une image à l'autre par
une translation.
-
translate=before : on effectue d'abord le calcul de registration par une
translation, puis si aucun accord n'est trouvé, on effectue une
transformation linéaire quelconque.
-
translate=after : on effectue d'abord le calcul de registration par une
transformation linéaire quelconque. puis si aucun accord n'est trouvé,
on effectue une translation.
-
translate=never : on effectue le calcul de registration uniquement par
une transformation linéaire quelconque.
1.3.16. Fonction ASTROMETRY
Calcule les paramètres astrométriques de l'image (mots
clé CRVAL1, CRVAL2, CD1_1, CD1_2, CD2_1, CD2_2 de l'entête
FITS dans le cas d'une transformation linéeaire). Il faut préalablement
que les images soient associées à des listes d'objets (voir
fonction
STAT) et des listes de catalogue (voir fonction CATCHART). De plus, pour
initialiser le calcul des coefficients astrométriques, il faut prédéfinir
la valeur de RA, DEC, PIXSIZE1, PIXSIZE2 et FOCLEN dans l'entête
FITS (cf fonction HEADERFITS) :
-
RA : coordonnée approximative d'ascension droite du centre de l'image
(en degrés)
-
DEC : coordonnée approximative de déclinaison du centre de
l'image (en degrés)
-
PIXSIZE1 : taille du pixel sur l'axe x (en microns)
-
PIXSIZE2 : taille du pixel sur l'axe y (en microns)
-
FOCLEN : longueur focale approximative (en mètres).
1.3.17. Fonction UNSMEARING
Effectue une correction de trainée (deconvflat) dans le cas
d'une image effectuée avec une caméra sans obturateur. Pour
ce faire, indiquer la valeur du rapport de lecture (en général
proche de 0.0005) dans le paramètre [unsmearing]. Cette correction
doit être effectuée après correction du bias et du
dark.
1.3.18. Fonction INVERT
Echange loes pixels de l'image en fonction de l'option précisée
:
-
MIRROR : l'image est inversée gauche droite.
-
FLIP : l'image est inversée haut bas.
-
XY : l'image est transposée (échange des lignes et des colonnes).
NB : Dans la version actuelle, les valeurs des mots clé d'astrométrie
ne sont pas modifiés en conséquence.
1.3.19. Fonction CONV
Convolution d'image par un filtre de type déterminé par
[kernel_type] :
-
GAUSSIAN : pour un filtre gaussien.
-
MEXICAN : pour une ondelette de type chapeau mexicain.
-
MORLET : pour une ondelette de type Morlet.
La largeur des filtres est déterminée par la valeur
de l'option [sigma]. Si ce paramètre n'est pas précisé,
sigma sera déterminée à partir de la valeur associée
au mot clé FWHM de l'entête de l'image (sigma = fwhm * 0.601).
Si le mot clé FWHM n'est pas trouvé dans l'entête,
la valeur de sigma, par défaut, vaut 2 pixels.
2. Exemples de scripts
Nous allons etudier ici quelques cas classiques de traitement d'images
astronomiques.
2.1. Prétraitement des images CCD
Le prétraitement des images consiste à soustraire le dark
aux images brutes puis de diviser par le flatfield.
Tout cet exemple traite des images acquises suivantes :
-
images de bias : de bias-1.fit à bias-9.fit dans le chemin ./bias
-
images de dark : de dark-1.fit à dark-9.fit dans le chemin ./dark
-
images de flat : de flat-1.fit à flat-9.fit dans le chemin ./flat
-
images à prétraiter : de sky-1.fit à sky-9.fit dans
le chemin ./sky
Nous allons d'abord préparer des images synthétiques de bais,
dark et flat, resultant d'empilements, afin d'atténuer le bruit.
Enfin, nous allons prétraiter les images en utilsant la méthode
de l'optimisation du thermique.Les images prétraitées seront
placées dans le chemin ./prt
2.1.1. Préparation du bias
Le bias est une image de très court temps d'intégration,
obtenue dans le noir absolu. Le prétraitement proposé consiste
à faire une pile médiane.
IMA/STACK ./bias/ bias- 1 9 .fit ./bias/ bias . .fit MED
2.1.2. Préparation du dark
Le dark est une image de temps d'intégration proche de celui des
images sky, obtenue dans le noir absolu. Le prétraitement proposé
consiste à faire une pile médiane.
IMA/STACK ./dark/ dark- 1 9 .fit ./dark/ dark . .fit MED
2.1.3. Préparation du flat
Le bias est une image obtenue sur une surface lumineuse la plus uniforme
possible. Le prétraitement proposé consiste à faire
une correction de dark, suivie d'une normalisation en gain et d'une pile
médiane.
SET/VAR $smearing 0
IMA/SERIES ./flat/ flat- 1 9 .fit ./flat/ f . .fit OPT bias=./bias/bias.fit
dark=./dark/dark.fit unsmearing=$smearing
IMA/SERIES ./flat/ f- 1 9 .fit ./flat/ f . .fit NORMGAIN normgain_value=10000
IMA/STACK ./flat/ f- 1 9 .fit ./flat/ flat . .fit MED
IMA/SERIES ./flat/ f- 1 9 .fit . . . .fit DELETE
Si les images ont été obtenues avec un obturateur, la
valeur de $smearing doit être égale à zéro.
Avec des images obtenues sans obturateur, il est nécessaire de placer
une valeur non nulle à $smearing.
2.1.4. Prétraitement des images brutes
SET/VAR $sky sky
SET/VAR $smearing 0
IMA/SERIES ./sky/ $sky- 1 9 .fit ./prt/ i . .fit OPT bias=./bias/bias.fit
dark=./dark/dark.fit unsmearing=$smearing
IMA/SERIES ./prt/ i- 1 9 .fit ./prt/ i . .fit DIV file=./flat/flat.fit
constant=10000
IMA/SERIES ./prt/ i- 1 9 .fit ./prt/ i . .fit NORMOFFSET normoffset_value=200
skylevel
Si les images ont été obtenues avec un obturateur, la
valeur de $smearing doit être égale à zéro.
Avec des images obtenues sans obturateur, il est nécessaire de placer
une valeur non nulle à $smearing.
2.1.5. Régistration et empilement des images prétraitées
SET/VAR $sky sky
IMA/SERIES ./prt/ i- 1 9 .fit ./prt/ i . .fit STAT objefile=./prt/x$sky.fit
IMA/SERIES ./prt/ i- 1 9 .fit ./prt/ i . .fit REGISTER translate=before
nullpixel=-1000
IMA/STACK ./prt/ i- 1 9 .fit ./prt/ $sky . .fit MED nullpixel=-1000
IMA/SERIES ./prt/ i- 1 9 .fit . . . .fit DELETE
IMA/SERIES ./prt/ x$sky . . .fit . . . .fit DELETE
2.1.6. Mise en forme de l'image prétraitée
SET/VAR $sky sky
IMA/SERIES ./prt/ $sky . . .fit ./prt/ $sky . .fit STAT fwhm jpegfile=./prt/$sky.jpg
2.2. Calibration astrométrique d'une image prétraitée
IMA/SERIES ./prt/ $sky . . .fit ./prt/ $sky . .fit STAT objefile=./prt/x$sky.fit
IMA/SERIES ./prt/ $sky . . .fit ./prt/ $sky . .fit CATCHART path_astromcatalog=/cdrom/
astromcatalog=Microcat catafile=./prt/c$sky.fit
IMA/SERIES ./prt/ $sky . . .fit ./prt/ $sky . .fit ASTROMETRY
IMA/SERIES ./prt/ $sky . . .fit ./prt/ $sky . .fit CATCHART path_astromcatalog=/cdrom/
astromcatalog=Microcat catafile=./prt/c$sky.fit jpegfile_chart2=./prt/$skyb.jpg
IMA/SERIES ./prt/ x$sky . . .fit . . . .fit DELETE
IMA/SERIES ./prt/ c$sky . . .fit . . . .fit DELETE