Audela
Audela

Buffer

Buffer

Les commandes qui suivent peuvent être appelées grâce aux commandes buf1, buf2, ... qui sont créées par "::buf::create". Ces sous-commandes permettent de formater une image, de manipuler les mots-clés FITS, et de réaliser certains traitements sur l'image portée par le buffer. Elles sont décrites avec la commande

buf1
, mais sont valables pour toutes les autres commandes de buffer.

1. Gestion du buffer

buf1 format largeur hauteur

Dimensionne l'image du buffer à la taille précisée par les arguments largeur et hauteur : deux entiers représentant la largeur et la hauteur souhaitées de l'image. Si une image existait avant cette commande, elle est effacée. Les pixels sont initialisés à zéro.

buf1 clear

Efface l'image et l'en-tête contenues dans le buffer, mais il n'est pas retiré de la liste des buffers.

buf1 copyto destnum

Copie le contenu du buffer dans le buffer dont le numéro est passé en argument (destnum). Si le buffer de destination n'existe pas, il est créé, sinon il est écrasé (les données qui y étaient sont effacées et remplacées par celles du buffer source).

buf1 type

Renvoie le type des données de l'image : short, int, float, imag. Pour l'instant seules les images float sont gérées.

buf1 pointer

Retourne l'adresse du pointeur de l'image du buffer, qui peut être utilisé dans une librairie.

2. Gestion des fichiers

buf1 bitpix ?byte|short|ushort|long|ulong|float|double?

Indique le type de données à écrire dans le fichier FITS lors des sauvegardes. Par défaut, ushort. En interne, AudeLa manipule des images de type float mais il est possible de les contraindre à un autre type lors de l'enregistrement FITS avec cette fonction.
byte : 8 bits non signés (0 à 255),

short : 16 bits signés (-32768 à 32767),

ushort : 16 bits non signés (0 à 65535),

long : 32 bits signés (-2 147 483 648 à 2 147 483 647),

ulong : 32 bits non signés (0 à 4 294 967 295),

float : flottant codé sur 32 bits (3,4*10-38 à 3,4*10+38),

double : flottant codé sur 64 bits (1,7*10-308 à 1,7*10+308).

buf1 extension ?file_extension?

Indique le nom de l'extension par défaut à donner au fichier FITS qui sera lu ou écrit sur le disque (.fit par défaut).

buf1 compress ?none|gzip?

Indique si l'enregistrement de l'image va générer un fichier compressé ou non (none par défaut). Si l'on souhaite une compression, indiquer gzip. Les fichiers FITS auront l'extension .gz. Ils peuvent être lus directement par la fonction buf1 load et peuvent être décompressé en dehors de Audela avec de nombreux logiciels de décompression.

buf1 load nom

Charge une image FITS stockée sur disque, ou sur un autre ordinateur relié en réseau. L'extension peut être donnée ou non, auquel cas elle est prise par défaut (cf. buf1 extension). Le nom de chemin peut être indiqué avec de / au lieu de \, sachant qu'avec des \, il faut les doubler

Exemple :

buf1 load images/toto
buf1 load images\\toto
charge l'image toto.fit contenue dans le sous-répertoire images du répertoire courant (peut être obtenu grâce à la commande TCL pwd).

buf1 save nom

Enregistre l'image au format FITS, avec les mots-clés contenus dans le buffer. Si l'extension est donnée, elle peut être différente de celle par défaut (cf. buf1 extension).

buf1 savejpeg filename ?quality? ?locut? ?hicut?

Enregistre l'image au format JPEG. Si l'extension est donnée, elle peut être différente de ".jpg". L'option quality fixe la qualité de l'image (de 5 pour une perte énorme à 100 pour une compression sans perte). La valeur par défaut de quality est 75. Locut et hicut sont les seuils de visualisation correspondant respectivement au noir et au blanc.

3. Gestion des mots-clés FITS

buf1 getkwds

Retourne la liste des mots-clés FITS du buffer sous forme d'une liste TCL.

buf1 getkwd nom

Retourne une liste de cinq éléments qui caractérise complètement le mot-clé FITS nom. Cette liste est composée du nom du mot-clé, de sa valeur, de son type (int, float, string), d'un commentaire, et de l'unité de la grandeur. Si le mot-clé n'existe pas alors la commande retourne la liste {"" "" none "" ""}. Le nom du mot-clé doit toujours être fourni dans la casse du mot-clé stocké. Par exemple, NAXIS est différent de naxis. La fonction getkwds permet de repérer cela.

Exemple :

buf1 getkwd NAXIS1
retourne {NAXIS1 384 int "length of data axis 1" ""}.

buf1 setkwd format_mot_cle

Cette commande permet de modifier un mot-clé : l'argument donné doit être une liste de cinq éléments correspondant au nom du mot-clé, à sa valeur, à son type (string, int, float), au commentaire, et enfin à l'unité. Elle correspond au même format que le résultat de la commande précédente. Le nom du mot-clé doit contenir au plus 9 caractères.
Exemple :
buf1 setkwd [list "INSTRU" "T310" string "mon télescope" ""]
modifie ou créé le mot-clé INSTRU.

buf1 copykwd srcnum

Copie les mots-clés du buffer source vers le buffer qui exécute cette sous-commande. L'argument est le numéro du buffer depuis lequel les mots-clés seront copiés.

buf1 delkwd mot_cle

Efface un mot clé de la liste de ceux présents dans l'en-tête FITS.

buf1 delkwds

Efface tous les mots clé de la liste de l'en-tête FITS.

4. Traitement d'image

Les fonctions de traitement d'images proposées par Audela agissent au niveau du buffer.

buf1 getpix coord

Renvoie la valeur du pixel aux coordonnées (x,y) passée en paramètre sous la forme d'une liste à deux éléments [list $x $y]. Les coordonnées de l'image vont de (1,1) à (NAXIS1,NAXIS2).

buf1 setpix coord

Affecte la valeur du pixel aux coordonnées (x,y) passée en paramètre sous la forme d'une liste à deux éléments [list $x $y]. Les coordonnées de l'image vont de (1,1) à (NAXIS1,NAXIS2).

buf1 offset valeur

Réalise un offset sur l'image : tous les pixels de l'image sont décalés de valeur.

buf1 sub fichier valeur

Soustrait l'image contenue dans fichier à l'image courante, et ajoute un offset de valeur. Le résultat est toujours stocké dans le buffer.

buf1 add fichier valeur

Ajoute l'image contenue dans fichier à l'image du buffer, et ajoute un offset de valeur.

buf1 div fichier valeur

Divise l'image du buffer par celle contenue dans fichier. et multiplie le résultat par valeur.

buf1 mult cste

Multiplie l'image du buffer par une valeur constante.

buf1 noffset valeur

Normalise le fond du ciel à la valeur donnée en argument, par un offset.

buf1 ngain valeur

Normalise le fond du ciel à la valeur donnée en argument, par une multiplication (gain).

buf1 unsmear valeur

Retire la contribution apportée par le flux incident du ciel lors de la lecture du CCD lorsque la caméra n'est pas équipée d'un obturateur. Le coefficient à donner en paramètre est le rapport du temps de lecture d'une ligne sur le temps de pose total de l'image.

buf1 opt noir offset

Optimise le noir sur le buffer : le noir qui sert à l'optimisation est le premier argument. C'est un noir qui est directement issu de l'acquisition, éventuellement issu d'une synthèse médiane des images de noir acquises. De même pour l'offset. Il est extrêmement important que l'offset soit présent dans l'image de noir.

buf1 stat ?fenetre?

Analyse l'image du buffer, et retourne une liste composée des éléments suivants :
  • seuil haut convenant bien à la visualisation du fond de ciel,
  • seuil bas associé,
  • valeur maximale de l'image,
  • valeur minimale de l'image,
  • moyenne globale sur l'image,
  • écart-type global de l'image,
  • moyenne du fond de ciel,
  • écart-type du fond de ciel.
L'argument fenêtre est une liste de quatre valeurs numériques indiquant les coordonnées de deux des coins opposés : [list $x1 $y1 $x2 $y2].

buf1 mirrorx

Retourne l'image horizontalement, c'est à dire que ce sont les colonnes qui sont déplacées.

buf1 mirrory

Retourne l'image verticalement : les lignes sont permutées.

buf1 binx x1 x2 ?largeur?

Crée une nouvelle image de dimensions largeur*NAXIS2, dont toutes les colonnes sont identiques, et égales à la somme de toutes les colonnes comprises entre les abscisses x1 et x2 de l'image à laquelle est appliqué ce traitement. Cette commande est utile pour exploiter notamment les images d'occultations par des astéroïdes, observées par la méthode de filé.

buf1 biny y1 y2 ?hauteur?

Cette fonction de traitement est la transposition de la commande binx : elle crée une nouvelle image de dimensions NAXIS1*hauteur, dont toutes les lignes sont identiques, et égales à la somme de toutes les lignes comprises entre les ordonnées y1 et y2 de l'image à laquelle est appliqué ce traitement.

buf1 window fenêtre

Extrait une sous-image de l'image à laquelle est appliquée ce traitement. L'argument est une liste de quatre valeurs numériques indiquant les coordonnées de deux des coins opposés : [list $x1 $y1 $x2 $y2].

buf1 rot x1 x2 angle

Rotation de l'image autour du centre (x1,y1) et d'un angle angle exprimé en degrés décimaux (15.5 = 15°30'). Les pixels sont compris dans l'intervalle (1,1) - (NAXIS1,NAXIS2).

buf1 log coef ?offset?

Applique la fonction suivante à tous les pixels de l'image : p' = coef * log10(p - offset), où p et p' sont respectivement l'ancienne, et la nouvelle valeur des pixels. Par défaut, offset vaut 0, et pour les pixels où (p - offset) < 0 alors p' = 0.

buf1 binx x1 x2 ?largeur?

Crée une nouvelle image de dimensions largeur*NAXIS2, dont toutes les colonnes sont identiques, et égales à la somme de toutes les colonnes comprises entre les abscisses x1 et x2 de l'image à laquelle est appliquée ce traitement. Cette commande est utile pour exploiter notamment les images d'occultations par des astéroïdes, observées par la méthode de filé.

buf1 imaseries string

Effectue une commande de type IMA/SERIES de la librairie TT. Cette commande est extrêmement importante car elle permet d'exploiter toutes les richesses des fonctions IMA/SEIRES de libTT.

buf1 synthegauss {xc yc i0 fwhmx fwhmy} ?LimitAdu?

Ajoute une gaussienne sur l'image à la position (xc,yc), de largeur à mi hauteur fwhmx,fwhmy et d'intensité i0. L'option LimitAdu permet de fixer une valeur seuil au dessus de laquelle les valeurs auront la valeur du seuil (permet de reproduire l'effet d'une saturation).

buf1 clipmin value

Remplace toutes les valeurs inférieures à value par value (écrêtage).

buf1 clipmax value

Remplace toutes les valeurs supérieures à value par value (écrêtage).

buf1 scar {x1 y1 x2 y2}

Cicatrise les valeurs des pixels à l'intérieur de la fenêtre {x1 y1 x2 y2} par un réseau de lignes et colonnes interpolées à partir des pixels se situant sur le bord de la fenêtre.

buf1 scale ListOfTwoScalingFactors ?NormaFlux?

Reéchantillonne (bilinéaire) l'image en tenant compte de facteurs d'échelles sur chaque axe. La valeur normaflux permet de fixer le facteur de "dilution" du flux après le reéchantillonnage. Si sx et sy sont les facteurs d'échelle, la valeur par défaut de normaflux est 1./(sx*sy). Une valeur de normaflux=1 permet de garder la dynamique initiale.

5. Analyse

buf1 xy2radec coord

Conversion des coordonnées image en coordonnées célestes : il faut que l'image soit préalablement calibrée astrométriquement. Les coordonnées d'entrée sont sous la forme d'une liste de deux nombres, entiers ou décimaux. Le résultat est une liste composée de l'ascension droite, et de la déclinaison, exprimées en degrés décimaux.

buf1 radec2xy coord

Conversion de coordonnées célestes en coordonnées image : il faut également que l'image soit calibrée astrométriquement. L'ascension droite et la déclinaison doivent être exprimées en degrés décimaux. Le résultat est une liste des coordonnées x et y exprimées en pixels décimaux (rarement des valeurs entières).

buf1 fwhm fenêtre

Calcule la fwhm des pixels contenus dans la fenêtre dont les coordonnées sont passées dans la liste composant l'argument. Si la fenêtre est trop grande ou ne contient pas une seule étoile, le résultat n'est pas représentatif (!). Cette commande retourne une liste de deux éléments, respectivement la fwhm en x, et en y. L'argument fenêtre est une liste de quatre entiers qui indiquent les coordonnées des deux coins opposés de la fenêtre.

buf1 flux coord

Renvoie une liste de deux éléments : le premier est le flux dans la fenêtre (somme de tous les pixels contenus dans la fenêtre), et le second est le nombre de pixels ayant servi à établir le flux.

buf1 centro coord ?sigma?

Calcule le centroïde de la fenêtre décrite par le premier argument. Le second paramètre est optionnel : il s'agit du niveau de bruit en dessous duquel les pixels ne sont pas pris en compte dans le calcul. Sa valeur par défaut est 3 : les pixels en dessous de 3 fois le bruit sur le contour de la fenêtre sont éliminés pour le calcul. Les arguments de retour sont, dans l'ordre:
  • Xc, le barycentre sur l'axe X.
  • Yc, le barycentre sur l'axe Y.
  • la distance entre le point (Xc,Yc) et le pixel de plus forte intensité dans la fenêtre. Cette distance doit rester petite si le calcul n'est pas affecté par la contamination d'une autre étoile dans la fenêtre.

buf1 phot coord ?sigma?

Photométrie dans une fenêtre : la valeur renvoyée est la différence entre le flux total sur la fenêtre, et le flux du fond de ciel, évalué sur le contour de la fenêtre. Les arguments de retour sont, dans l'ordre:
  • F, le flux intégré soustrait du fond de ciel
  • N, le nombre de pixels entrant dans le calcul de F.
  • B, Le flux estimé du fond de ciel.

buf1 photom {x1 y1 x2 y2} square ?args?

Photométrie d'ouverture dans une fenêtre : la valeur renvoyée est la différence entre le flux total sur la fenêtre, et le flux du fond de ciel, évalué sur le contour de la fenêtre. Actuellement cette fonction ne fonctionne qu'avec une ouverture carrée (square). {x1 y1 x2 y2} est la fenêtre qui entoure le pixel l'astre à mesurer. Dans un premier temps, un calcul de barycentre photométrique est effectué pour définir le centre de mesure du photomètre. Les paramètres ?args? sont au nombre trois définis ainsi dans l'ordre:

Le résultat comporte 5 valeurs:

Rappelons que si G est le gain de la caméra CCD (exprimé en e/adu), alors l'incertitude de mesure totale rms à 1 sigma dF (exprimée en adu) peut être estimée statistiquement par:

dF = sqrt ( F5*F4*F4 + F1*G) / G

buf1 autocuts

Calcule et retourne la valeur des seuils haut et bas de visualisation. Ces valeurs sont ajoutés aux mots clés MIPS-Hi et MIPS-LO de l'en-tête FITS de l'image.

buf1 fitgauss {x1 y1 x2 y2} ?-sub?

Calcule les paramètres d'ajustement de deux gaussiennes à partir des profils des valeurs cumulées sur les côtés de la fenêtre définie par la liste {x1 y1 x2 y2}. L'ajustement est effectué aux moindres carrés. Les valeurs de retour sont dans une liste dans l'ordre suivant :
  • intensité (adu) de la gaussienne sur l'axe X.
  • position (pixels) du centre de la gaussienne sur l'axe X.
  • largeur à mi hauteur, FWHM (en pixels) de la gaussienne sur l'axe X.
  • valeur du fond (en adu) sur l'axe X.
  • intensité (adu) de la gaussienne sur l'axe Y.
  • position (pixels) du centre de la gaussienne sur l'axe Y.
  • largeur à mi hauteur, FWHM (en pixels) de la gaussienne sur l'axe Y.
  • valeur du fond (en adu) sur l'axe Y.
L'option -sub va soustraire la gaussienne ajustée à l'image.

buf1 histo ?NbBins? ?min? ?max?

Retourne trois listes contenant les informations sur l'histogramme de l'image. Chaque liste définit :

Liste du nombre de pixels dans l'intervalle [adumin;adumax]. Le nombre d'éléments de cette liste est fixé par la valeur de NbBins (10 par défaut). Les bornes de valeurs de l'histogramme sont fixées par min et max.

Liste des valeurs moyennes (en adu) des pixels. Cette liste contient NbBins éléments.

Liste des valeurs adumin;adumax (en adu) des pixels. Cette liste contient NbBins+1 éléments.

| English Version | Mailing List Audela | ©2004 Audela | Design TechnoSpeak