Quelques problèmes de calibration CCD
Published on Sunday 20 February 2000
Histoire d'une soirée CCD qui commence normalement par l'installation du matériel dehors, un peu à la bourre comme d'hab, suivi du repérage de la focalisation habituelle (le porte oculaire de la lunette est munie d'un comparateur), la prise rapide d'une série de 17 images de flats sur le fond de ciel jusqu'à ce que celui ci devienne trop noir pour qu'une pose de une minute possède un niveau de fond suffisamment élevé, puis d'un début de mise en station, et ... l'arrivée de nuages... (murphycumulonimbus, ou stratusemmerdibus, je ne sais plus lesquels... ).
Que faire en attendant ?? : des images de calibrations, histoire de tuer le temps, puis de faire un peu plus en détail ce que l'on ne prend pas le temps de faire d'habitude. Donc, prise d'une série d' images d'offsets (poses réalisées dans le noir, avec un temps d'exposition nul, de façon à connaitre le signal de base de la caméra CCD), et d'une série d'images de darks (images réalisées dans le noir, mais avec un temps de pose assez long, ici 5 minutes, de façon à pouvoir connaître la composante thermique du signal issu de la caméra). Je prépare mon repas en attendant que les images soient finies...
Ces images seront ensuite ramenées à une valeur moyenne identique, puis on réalisera tout d'abord une pose d'offset médian, puis on soustraira cet offset médian aux images individuelles de darks, qui seront ensuite ramenées à une valeur moyenne identique, à partir desquelles on obtiendra une pose thermique de référence, qui pourra normalement être conservée pendant un temps assez long pour d'autres soirées sans vent et sans nuages...
Le vent commence à se lever, le ciel ne va pas se dégager, donc je rentre le matériel, en pestant contre la nature adverse, je mets un peu de musique, puis commence à regarder en détail mes images de calibration. C'est là que les soucis commencent.
Sur quelle image recentrer la série de poses d'offsets ?.
D'habitude, je ne me pose pas de problèmes, je recentre tout sur la première, il n'y a pas de raisons que ca évolue, mais là j'ai un peu de temps, et comme en fait je n'ai jamais calibré sérieusement cette caméra, autant faire les choses en détail.
J'écris un petit script qui me donne les statistiques des pixels sur une fenêtre de 300x300 pixels à partir du pixel (100,100), et qui écris les résultats dans un fichier texte, que j'importe ensuite dans Excel. Voici l'évolution du niveau moyen de l'image puis l'évolution du bruit dans l'image en fonction du numéro de la pose :
Signal moyen de la pose d'offset.
Bruit moyen de la pose d'offset
On voit une évolution très claire, certes sur peu de pas de quantifications (si l'on omet la première image de la série, ca ne varie que en gros sur un pas de quantification, pas la mort du petit cheval), mais l'évolution est clairement visible, et le niveau moyen des poses n'est pas aléatoire, et on voit qu'il faut pratiquement attendre la quinzième pose pour avoir quelque chose de stable. Encore que stable, oui, mais à quel niveau comparé aux poses faites sur le ciel, au cours de la nuit, avec des attentes entre chaque pose qui peuvent être variables... ?. A priori, également, il vaut mieux éviter d'utiliser la première image d'une série comme image de référence...
Je passe alors aux images de darks que je soumets au même script (la fenêtre de mesure utilisée par ce script évite le coin de l'ampli du CCD qui avec une pose de 5 minutes dans le noir est clairement visible). J'obtiens le niveau moyen et l'évolution du bruit sur les poses de darks :
Niveau moyen
Bruit moyen
Voici à quoi ressemble cette image de dark (binnée deux fois pour la page web), pose de 5 minutes dans le noir :
Là, il y a soucis. Je ne comprend pas pourquoi les images thermiques voient leur niveau moyen diminuer... Par ailleurs la modification du signal moyen ne se fait plus sur un pas de quantification, mais sur près d'une dizaine, ce qui commence à ne plus être négligeable (sur une dynamique de près de 30000 pas de quantif (32768 - le niveau moyen de l'offset), on est à 0.03%, mais si on veut pinailler, et utiliser ses images pour faire de la photométrie sérieuse, il est bien de savoir pourquoi les choses sont telles qu'elles sont.
Sur ce genre de caméra, le PC génère entièrement les horloges du CCD et pour pouvoir encore utiliser de temps à autres le PC, celles ci ne sont pas activées entre chaque pose. Sur une caméra normale (disposant d'un séquenceur interne), entre deux poses, le CCD est placé en mode effacage permanent (une boucle assurant un transfert vertical, suivi d'un vidage partiel du registre horizontal en répétition rapide), de même que le registre horizontal du CCD est activé pendant une pose, le CCD fonctionnant toujours à peu près sous le même règime arrive assez vite à une température d'équilibre. Sur une caméra amateur, ces images prouvent (du moins c'est l'explication que j'en donne) que le CCD se remettant à fonctionner après une période d'inactivité chauffe un peu, ce qui modifie ses caractéristiques de signal et de bruit). Je n'arrive pas à comprendre pourquoi le niveau moyen des poses thermiques diminue, mais je compte utiliser de prochaines nuits couvertes pour approfondir ce problème. Je referai ce genre de tests, mais en stockant la température du CCD entre chaque pose, de façon à relier les deux.
Si vous avez des suggestions, des idées, des pourquois et des comments, Merci de m'en faire part.
Je serai aussi très interessé d'obtenir ce genre de résultats avec d'autres caméras d'amateur (audine, sbig, HiSis) qui permettrait certainement des comparaisons intéressantes.
Dans l'immédiat, j'en suis à me dire que une des solutions pour les poses utilisées en photométrie de précision consisterait à faire ce qui s'appelle de "l'overscan", ce qui revient à lire plus de pixels sur la ligne que de pixels physiques. Par exemple pour une image de 512x768 pixels, on lit une image de 512x1024, c'est à dire qu'après les 768 pixels "physiques", exposés à la lumière, on lit 256 pixels "virtuels", qui n'ont jamais recu le moindre électron et qui donne le niveau d'offset de la caméra dans les circonstances de la pose. Ce qui donnerait une image de 512x256 pixels d'offsets de référence avec la valeur voulue pour _cette_ image. Ceci augmenterait un peu le temps de lecture, mais permettrait peut être une meilleure calibration.
Si vous utilisez Prism V4.0, voici le listing du petit script utilisé pour l'occasion et permettant le traitement de ces images :
REM Statistique sur une fenetre centrale d'une pile d'image d'offset
REM Nom des images
input "Nom generique :" Name$
input "Index de la premiere image :" NumFirst
input "Index de la derniere image :" NumLast
REM Obtient le nom du repertoire des images
REM dans la chaine de caractere Repertoire$
getrepname Repertoire$
REM La sortie standard devient le fichier "statoofset.txt"
chgoutput "statoffset.txt"
for i=NumFirst NumLast
str i Num$
REM on ouvre l'image
open img Repertoire$+Name$+Num$+".cpa"
REM on calcule les statistiques et on les stocke dans un fichier
statwindow img 100 100 400 400 Moyenne Moyenne_Quadratique Ecart_Type Max Min Flux Mediane
print Num$ " " Moyenne " " Moyenne_Quadratique " " Ecart_Type " " Max " " Min " " Flux " " Mediane
REM on ferme l'image
close img
next i
REM La sortie standard redevient l'ecran
stdoutput