Nouveautés de la version 3.80 (24 novembre 2002)


Datation absolue des images drift-scan

La commande SCAN réalise une acquisition en mode drift-scan à partir de la caméra AUDINE dans le but de suivre notamment les occultations (astéroïdes, phénomènes mutuels des satellites de Jupiter, ...). Consulter la leçon 25 pour plus de détails. L'un des problèmes majeurs de ce type d'activité est de dater les événement de manière absolu. C'est essentiel pour restituer par exemple le pourtour du limbe d'un astéroide en regroupant les observations de plusieurs observateurs distribués sur la ligne d'occultation. Il est souhaitable pour réduire correctement les mesures de disposer le temps absolu avec une précision de 1/10 de seconde ou mieux.

Après une acquisition drift-scan les fichiers JD.LOG ou SHUTTER.LOG produits par Iris permettent de dater chaque lignes CCD acquises ou chaque ouverture/fermeture de l'obturateur en jour Julien en se servant de l'horloge CMOS interne du PC. Celle-ci peut être synchronisé via Internet, ou mieux avec des dispositifs électroniques sophistiqués utilisant par exemple les signaux du système GPS.

La nouvelle commande SCAN_CALIB de la version 3.8 offre une alternative pour réaliser une synchronisation de manière économique, rustique, mais une précision absolue typique de 1/10 de seconde. Ce dont il faut disposer c'est d'une webcam et d'un bon chronographe battant la seconde sur un affichage à cristaux liquides ou un chronomètre à aiguille. Une montre à quartz que l'on a réglé en utilisant les tops de l'horloge parlante (3699) est une solution, mais avec le risque de produire une erreur systématique de l'ordre de 2/10 de secondes typiquement ou un peu moins avec un peu d'habitude. L'idéal est de se procurer une horloge synchronisée sur des signaux radioélectrique, qui garantie le 1/10 de seconde au moins (un contrôle auditif avec l'horloge parlante permet de le vérifier au besoin).

La commande SCAN_CALIB permet de réaliser en rafale rapide une série d'images de la montre digitale ou du chronomètre (de l'ordre de 10 à 15 images par seconde sur un PC moderne). Une séquence d'acquisition typique fait de 40 à 50 images. Celles-ci sont automatiquement sauvegardée sur le disque dur. A l'analyse, on recherche une image de la séquence qui correspond juste à un changement de seconde sur l'heure lue sur l'affichage numérique. Simultanément, à l'acquisition des images en rafale, Iris sauvegarde un fichier texte qui pour chaque image contient le temps en secondes et fractions de secondes depuis le moment de la mise en route du PC. Il existe une instruction  très précise dans les PC qui délivre cette information (elle fait partie du jeu d'instruction du microprocesseur). C'est l'instruction RDTSC (voir par exemple http://cedar.intel.com/software/idap/media/pdf/rdtscpm1.pdf). Le registre lu par l'instruction RDTSC change d'état à chaque cycle d'horloge de base du PC, c'est à dire un million de fois par seconde sur un PC 1 Mhz par exemple. La commande CPU de Iris permet de trouver le coefficient transformant le contenu du registre en secondes (voir la leçon 25). Ce temps, que l'on désigne par time-stamp, est par ailleurs incrusté en bas à gauche des images sauvegardées.

Il devient donc possible en comparant l'instant de changement de seconde de chronographe et la valeur du time-stamp de relier le temps absolu civil avec le temps fourni par l'horloge interne très régulière et très rapide du PC. En outre, dorénavant, chaque fois qu'une image drift-scan est réalisée avec la commande SCAN, le programme produit le fichier TICK.LOG qui est l'équivalent de JD.LOG, mais contenant la valeur du time stamp mesuré à chaque ligne du scan. Cette dernière information permet d'étalonner en absolu le moment d'acquisition avec fiabilité.

Voici la procédure caractéristique à appliquer lors d'une observation d'occultation.

Etape 1

Relever la valeur précise de fréquence d'horloge du PC. Pour cela la commande CPU comptabilise le nombre de cycles d'horloges durant un période donnée en paramètre. Utiliser un temps de comptage assez long pour une très bonne précision, par exemple 20 minutes (1200 secondes) :

CPU  1200

Au bout de 20 minutes, Iris retourne la fréquence d'horloge du PC. Ainsi sur un PC Celeron 1.7 Ghz, on a trouvé 1693.105 Mhz. Cette valeur est stable typiquement avec une précision de 4.10-6 sur une période de plusieurs jour si la température ne change pas drastiquement (dérive possible du quartz interne du PC). L'opération est normalement à faire une fois pour toute pour un ordinateur donné. On entre la valeur trouvée de la fréquence du PC dans le panneau de réglage de l'Audine :

 

Etape 2

Quelques minutes à quelques dizaines de minutes avant l'occultation filmer le chronographe avec la webcam durant quelques secondes en utilisant la commande SCAN_CALIB. Il faut s'arranger pour que l'horloge soit bien éclairée pour pouvoir acquérir dans de bonnes conditions à la cadence maximale autorisée par la webcam (commande Propriété vidéo... du menu Webcam). Privilégier aussi un petit format d'image, par exemple 240x176 avec une ToUcam de Philips, toujours pour obtenir une grande vitesse d'acquisition (commande Taille des images... du menu Webcam). Avec le PC à 1.7 Ghz on obtient ainsi une fréquence d'environ 15 images par seconde.

Par exemple

SCAN_CALIB  START  50

produit une séquence de 50 images webcam qui sont sauvegardées sur le disque (répertoire de travail) sous les noms START1, START2, ... START50.

Voici l'image START30 (le chronographe est une simple montre CASIO à 30 Euros)

La montre indique 19h51m13s et l'horloge PC 5571.123 secondes.

Voici à présent l'image START31

Les secondes viennent juste de changer sur la montre, il est 19h51m14s. L'horloge PC indique 5571.187 secondes. Il s'est écoulé 5571.187-5571.123 secondes depuis la vue START30, soit 0.064 seconde. Cette plage de temps correspond à l'incertitude sur l'évaluation du temps absolu, si on considère bien sur que la montre est parfaitement à l'heure.

On va retenir que l'heure civile C1=19h51m14s correspond au temps PC T1=5571.187 secondes.

Etape 3

Faire l'acquisition scan proprement dite sur l'objet qui va être occulté. Par exemple

SCAN 150 350  0.1  2000

La période d'acquisition des lignes est ici de 0,1 seconde. Il y a 2000 lignes acquises (soit un temps total d'observation de 200 secondes). On utilise une bande allant de la colonne 150 à la colonne 350 du CCD.

Les fichiers textes JD.LOG et TICK.LOG sont sauvegardés automatiquement sur le disque. Ils seront analysées plus tard.

Etape 4

Par mesure de sécurité, refaire une prise de vue du chronographe avec la webcam juste après l'observation de l'occultation :

SCAN_CALIB  END  50

Voici l'image END18 de la séquence acquise

et voici l'image END19, qui montre le saut d'une seconde

Le temps civil est C2=19h57m46s alors que le temps PC est T2=5963.188 secondes.

A titre de contrôle faisons la différence des temps civil :

C2 - C1 = 19h57m46s - 19h51m14s = 392 secondes

et la différence des temps PC

T2 - T1 = 5963.188 - 5571.187 = 392.001 secondes :

Les différences de temps civil et PC sont en cohérence. Tout c'est bien passé entre les deux mesures de synchronisation de l'horloge time-stamp !

Etape 5

Procédons à l'analyse de l'image drift-scan. Essayons de déterminer à quelle heure a été obtenue la ligne numéro 821. Voici un extrait du fichier TICK.LOG :

816 5820.050
817 5820.150
818 5820.250
819 5820.350
820 5820.450
821 5820.550
822 5820.650
823 5820.750
824 5820.850
825 5820.950
826 5821.050

La ligne 821 a été acquise au temps PC T=5820.550 secondes. Faisons la différence avec le premier temps de référence obtenu (T1) :

T - T1 = 5820.550 - 5571.187 = 249.363 secondes

soit un temps civil absolu pour l'instant d'acquisition de la ligne 821 :

C = 19h51m14s + (T - T1) = 19h51m14s + 249.363 = 19h55m23.36s ± 0,07s

(en faisant l'hypothèse que la montre est parfaitement à l'heure)

Examinons à présent une partie du fichier JD.LOG :

816 2452583.330128924
817 2452583.330130081
818 2452583.330131239
819 2452583.330132396
820 2452583.330133554
821 2452583.330134711
822 2452583.330135868
823 2452583.330137026
824 2452583.330138183
825 2452583.330139340
826 2452583.330140498

L'instant d'acquisition trouvé pour la ligne 821 en utilisant l'horloge CMOS du PC est en jour Julien 2452583.3301347, soit le 4 novembre 2002 à 19h55m23.64s (utiliser la commande JD2DATE pour effectuer cette conversion sous Iris). L'horloge CMOS du PC est en avance de 19h55m23.64s - 19h55m23.36s = 0.28 seconde par rapport à l'horloge du chronographe. Mais c'est le résultat obtenu avec la montre qui doit être pris en compte pour l'analyse de l'occultation.

Améliorations et conclusion

Il est possible de caler avec une précision encore meilleure l'horloge PC par rapport au temps donné par le chronographe si au lieu d'analyser un seul passage d'une seconde à la seconde supérieure, on analyse plusieurs de ces passages et que l'on fait des moyennes. Le calage peut se faire alors typiquement à 0,05 seconde près avec les moyens employés dans l'exemple.

Une horloge radio-synchronisé du type DCF77 à affichage numérique permet de s'affranchir de toute erreur humaine (lors de la mise à l'heure du chronographe).

La solution proposée à l'avantage de pouvoir être aisément transportable sur le terrain. Tout PC portable d'acquisition possédant une interface USB pour brancher une webcam peu convenir. La montre ou le chronomètre est éclairé quelques instant avec une lampe de poche.

En fin de compte, une précision de datation absolue de 0,1 seconde, ou même mieux en prenant un peu de soin, est réalisable à bas coût, avec les moyens du bord, sans avoir à câbler de l'électronique et avec une fiabilité intéressante lors des observations sur le terrain (la rusticité est parfois le gage de la réussite en la matière). Avec des moyens électroniques spécifiques il est certe possible, et sûrement souhaitable, d'obtenir une précision bien plus grande, mais la technique de synchronisation proposée ici est déjà un progrès qui permet de ce concentrer sur les autres paramètres techniques qui influencent le résultat avec un peu plus de sérénité (caméra, télescope, mise en station, turbulence, etc), et qu'il faut bien se gardé de négliger.


Support de l'interface QuickAudine

QuickAudine est une interface USB pour la caméra Audine. D'un coté elle se branche vers la caméra avec un cable multibrins, qui peut être très court. De l'autre coté elle se branche à l'ordinateur via le cable série USB. De par la caractéristique de l'USB, l'interface QuickAudine est autonome électriquement et simple d'usage. Elle permet aussi une lecture plus rapide en regard du port parallèle, utilisé traditionnellement jusqu'à présent.

Pour l'utiliser sous Iris il suffit de cliquer sur l'option QuickA dans le panneau de réglage de la caméra Audine :

L'acquisition d'une image ce fait avec la commande ACQ depuis la console. Le mode d'acquisition scan n'est supporté pour l'instant que par le port parallèle. Pour des fonctions plus évoluer d'utilisation de QuickAudine il faut utiliser le logiciel Pisco par exemple.

Pour plus d'informations sur l'interface USB QuickAudine et sa mise en œuvre cliquer ici et consulter aussi le site de Thierry Maciaszek.


Nouvelles commandes

ANIM_PLOT [DATA] [SORTIE] [DIM X] [DIM Y] [YMIN] [YMAX] [TITRE] [NOMBRE]
Sauvegarde une série de graphiques calculés avec les données présentes dans des séquences de fichiers de données de nom générique [DATA] (l'extension des fichiers est .DAT). Ces fichiers de données, du type texte, comportent deux colonnes (axes X et Y respectivement). Ils sont produits par exemple avec la commande
DATA_ANIM. Les graphiques sont sauvegardés sous la forme d'images ayant pour nom générique [SORTIE] et de taille en pixel [DIM X]x[DIM Y]. Les bornes suivant l'axe Y sont définies avec les paramètres [YMIN] et [YMAX]. Le nombre de fichiers de données dans la séquence est indiqué dans le paramètre [NOMBRE]. Le paramètre [TITRE] est une chaîne de caractère qui s'affichera en titre en haut de chaque graphique. Le caractère blanc est la symbole "_". Exemple :

ANIM_PLOT  SPECT  GRAPH  300 400  800  20000 Ceci_est_un_spectre 23

Voir aussi la commande PLOT2, qui affiche un seul graphique de manière similaire et qui permet de tester le comportement de ANIM_PLOT. ANIM_PLOT est souvent exploitée en association avec la commande DATA_ANIM pour l'étude dynamique des spectres. Pour un exemple cliquer ici.

BMP2PIC [ENTREE] [SORTIE] [NOMBRE]
Conversion d'une séquence d'images au format BMP 8 bits en une séquence d'images au format FITS ou PIC.

PIC_ANIM [ENTREE] [SORTIE]
Fonction très proche de
DATA_ANIM. Cette dernière calcule des interpolations à partir de courbes de données, notamment de spectres (cliquer ici pour un exemple). PIC_ANIM s'applique à des images pour améliorer la fluidité de l'animation des séquences. Pour cela des images intermédiaires sont calculées par simple interpolation linéaire à partir des images acquises.

Le paramètre [ENTREE] désigne un fichier texte de type liste qui contient sur deux colonnes respectivement le nom des images acquises et la date d'acquisition de ces images (ou tout autre identifiant fonction du temps, comme par exemple une valeur index qui va en croissante).

Le paramètre [SORTIE] désigne un fichier texte de type liste qui contient sur deux colonnes respectivement le nom des images interpolées et la date pour laquelle l'interpolation est calculée (ou un identificateur fonction du temps, en conformité à celui utilisé dans le fichier liste d'entrée).

Voici un exemple d'application sur la trace d'un bolide appartenant à l'essaim des Léonides. L'observation a été réalisé par Franck Vaissière en utilisant une webcam Vesta Pro modifiée longue pose le 19 novembre 2002. L'optique est l'objectif d'origine de la webcam. L'acquisition a été faite avec le mode séquence de Iris. Voici 3 images extraites d'une séquence de 5 images de l'événement (noter la trainée persistante laissée par le météore) :

   

Les 5 fichiers images à interpoler ont les noms MET1, MET2, MET3, MET4 et MET5. Nous créons dans le répertoire de travail un fichier texte de nom IN.LST contenant (utiliser un éditeur de texte pour cela) :

met1 1
met2 2
met3 3
met4 4
met5 5

Nous créons ensuite le fichier de sortie OUT.LST :

r1 1.00
r2 1.25
r3 1.50
r4 1.75
r5 2.00
r6 2.25
r7 2.5
r8 2.75
r9 3.00
r10 3.25
r11 3.50
r12 3.75
r13 4.00
r14 4.25
r15 4.50
r16 4.75
r17 5.00
r18 4.50
r19 4.75
r20 5.00
r21 4.50
r16 4.75
r17 5.00

Les images R1 et R5 par exemple seront identiques aux images MET1 et MET2 (correspondance des dates). Mais en plus, entre les deux images observées, la commande PIC_ANIM va générer les images intermédiaires R2, R3 et R4, et ainsi de suite pour l'ensemble de la séquence.

Remarque : le fichier OUT.LST peut être créée automatiquement avec l'aide de la commande GEN_OUT, ce qui est bien pratique pour de longues séquences. Dans l'exemple on fera :

GEN_OUT  OUT  R  1  5  0.25

Après avoir sauvegardé les fichiers IN.LST et OUT.LST, il suffit, pour produire la séquence interpolée, de lancer la commande :

PIC_ANIM  IN  OUT

La séquence R1...R17 synthétisée peut être visualisée avec la commande Animation... du menu Visualisation. Vous pouvez aussi sauvegarder d'un coup l'ensemble de la séquence sous forme d'images au format BMP pour, par exemple, produire ensuite un GIF animé ou un film AVI avec l'aide d'un logiciel adéquat :

PIC2BMP  R  RR  17

Vous avez à présent sur le disque une séquence RR1.BMP, ..., RR17.BMP.

Voici la séquence animée de 27 images de l'objet, qui montre bien la traînée se distordre au grès des vents régnant à diverses altitudes :


Cliquer sur l'image pour voir une voir une version plus grande (750 Ko)

PIC2BMP [ENTREE] [SORTIE] [NOMBRE]
Conversion d'une séquence d'images au format FITS ou PIC en une séquence au format BMP 8 bits.

PLOT2 [DATA] [DIM X] [DIM Y] [YMIN] [YMAX] [TITRE]
Même fonction que
ANIM_PLOT mais s'appliquant à un seul fichier de données [DATA].

PREGISTER2 [ENTREE] [SORTIE] [TAILLE] [NOMBRE]
Même fonction que
PREGISTER pour la registration des images planétaires par la technique de l'intercorellation dans le domaine de Fourier. PREGISTER effectue la recentrage de chaque image de la séquence relativement à la première image de cette séquence. PREGISTER2 en revanche calcule l'intercorellation de l'image de rang n relativement à l'image de rang n-1. Ceci présente un intérêt lorsque le détail qui sert à recentrer les images change de forme notablement entre les images (observation d'une protubérance solaire par exemple) car alors la registration est plus précise.

SCAN_CALIB [NOM] [NOMBRE]
Méthode de synchronisation du temps PC. Voir les explication en haut de cette page.

SMILE [Y0] [RAYON]
Change la courbure des raies spectrales pour compenser un défaut de distortion optique du type smile (sourire en français), un problème classique dans un spectrographe. Le paramètre [RAYON] est le rayon de courbure des raies spectrales. [Y0] est la coordonnée verticale correspondant au sommet de la flèche de la courbure. Par exemple, voici un spectre solaire dans la région du doublet du magnésium présentant un défaut de smile sensible :

Par essais successifs avec la commande SMILE on tente de rendre les raies bien droites. Finalement, le résultat de la commande :

SMILE 250 -7000

est :

A présent, la spectre peut être binné (commande L_ADD par exemple) pour extraire le profil spectral sans risque de perte de la résolution spectrale. Pour des détails sur la manière dont ce spectre a été obtenu, cliquer ici.

TILT [X0] [ALPHA]
Redresse un spectre dont l'axe de dispersion fait un angle [ALPHA] par rapport à l'axe horizontal du capteur CCD. Le calcul se fait en décalant verticalement chaque colonne de la fraction de pixel adéquate. Le pivot de la rotation se situe à la coordonnée horizontale [X0] compté en pixels. L'angle est en degrés et peut être signé.

Soit par exemple le spectre solaire suivant dans la région du triplet du magnesium :

L'inclinaison de l'axe de la dispersion se manifeste par l'orientation du transversalium (les lignes horizontale produites par les irrégularités de la fente d'entrée du spectrographe). Le tilt de 0.75° (déterminé par des essais successifs) est corrigé en faisant ici :

TILT 300 -0.75

Voici le résultat :