lunedì 8 dicembre 2008

Linearità del CCD: come determinarla

Costruire una curva di linearità della propria camera CCD è un'operazione abbastanza semplice e diventa una necessità, se non un obbligo, per chi desidera utilizzare i propri strumenti astronomici alla misura fotometrica di qualsiasi sorgente celeste.
Esistono vari metodi più o meno rigorosi per determinare la linearità di un sensore CCD: ad esempio "In situ CCD testing" di T.M.C. Abbott ne utilizza uno particolarmente sofisticato utilizzato negli osservatori professionali: il sito inoltre è una sorgente di informazioni ed idee utilissima per chi desidera caratterizzare una camera CCD per usi astronomici.
Noi utilizzeremo una procedura leggermente più semplice che sarà comunque sufficientemente precisa per i nostri scopi: la possiamo suddividere in 3 passi principali: il SETUP della strumentazione, l'ACQUSIZIONE e l'ELABORAZIONE dei dati.

SETUP DEGLI STRUMENTI
Il setup degli strumenti è quello normalmente usato per l'acquisizione dei FLAT FIELD nella configurazione "DOME-FLAT" ovvero quella dove si utilizza uno schermo opalino e/o riflettente ed una sorgente di luce artificiale esterna.
Non è necessario utilizzare filtri (a meno che non sia necessario per attenuare la sorgente luminosa) ma è importante che il binning sia impostato alla massima risoluzione (1x1). Il CCD deve essere ad una prefissata temperatura, preferibilmente vicina alla temperatura usuale di lavoro. E' quindi necessario attendere che tutto quanto sia in condizioni termicamente stabili, a maggior ragione se il CCD non è termoregolato elettronicamente: generalmente occorre attendere 30-40 minuti dall'accensione della camera CCD . Evitate di eseguire la sequenza di immagini flat in ore della serata che comportano delle escursioni termiche di qualche grado come poco dopo il tramonto o l'alba.
Puntate il telescopio verso lo schermo illuminato e fate alcune esposizioni di prova aumentando gradualmente il tempo d'esposizione: per ogni immagine selezionate una finestra di all'incirca 300x300 pixel nella zona centrale dell'immagine e, utilizzando le funzioni statistiche del software individuate qual'è il valore medio (in ADU) dei pixel che compongono il riquadro fino a raggiungere la saturazione del convertitore analogico-digitale (65536 per un 16 bit, 32768 per un 15 bit ecc.).
Se utilizzate Astroart potete aprire la finestra delle statistiche dell'immagine (o del riquadro selezionato) attraverso il comando Visualizza > Statistiche, mentre per selezionare sempre lo stesso rettangolo, una volta impostate le coordinate o manualmente o con il mouse, è sufficiente premere su ogni immagine la sequenza [Ctrl] + [R].
E' importante raggiungere con certezza la saturazione poichè vogliamo stabilire esattamente i limiti del nostro strumento: senza ovviamente esagerare sottoponendo ad una luce troppo intensa tutto il sensore: occorre una cautela particolare per i CCD retroilluminati, come il sensore SiTE dell'Apogee Ap7p che potrebbe danneggiarsi anche con una semplice esposizione alla luce diurna.
Supponiamo di aver raggiunto i livelli di saturazione con un'esposizione di 35 secondi e procediamo con l'acquisizione dei frame.

AQUISIZIONE DEI FRAME
Abbiamo stabilito con le prove il tempo d'integrazione che porta alla saturazione la maggior parte dei pixel del riquadro scelto sul frame. Ricordiamo che tale tempo nel nostro esempio è di 35 secondi ma può ovviamente variare a seconda del vostro setup strumentale.
Possiamo ora procedere alla sequenza d'aquisizione dei frame necessari per la nostra analisi.
Si tratta di riprendere una sequenza di frame (chiamiamoli pure FLAT FIELD) con tempo d'integrazione via via crescente fino a raggiungere i 35 secondi con step d'integrazione da 1 secondo. Nel caso il tempo limite di 35 secondi sia per il vostro setup strumentale molto più grande, ad es. > di 60 secondi, è possibile aumentare lo step d'integrazione, portandolo a 2-3 secondi per diminuire la quantità totale di frame da misurare.
Per ogni step occorre poi riprendere il relativo DARK FRAME più un FLAT FIELD da 1 secondo con il proprio DARK FRAME della durata di 1 secondo. In breve, mettendo fra parentesi la durata in secondi dell'integrazione, la sequenza sarebbe:

FLAT(1),DARK(1),FLAT(1),DARK(1),FLAT(2),DARK(2),FLAT(1),DARK(1),FLAT(3),
DARK(3),FLAT(1),DARK(1),...FLAT(35),DARK(35),FLAT(1),DARK(1).

I FLAT FRAME e i DARK FRAME da 1 secondo ripresi tra ogni integrazione progressiva servono per verificare che non ci siano variazioni sostanziali nel comportamento della camera CCD durante l'intera sequenza.
Riprendere manualmente tutti questi frame è senza dubbio una cosa noiosa ma oramai quasi tutti i programmi d'acquisizione hanno la possibilità di creare degli script. Eccone uno d'esempio per chi utilizza Astroart:

'**********
'Variabili

'**********
folder$ = "\LINTEST\"
EXP_NUM = 35 'secondi massima esposizione
T_EXP_DARK = 0 'si pone a zero l'esposizione dei dark

darkname$ = "DDs" 'stringa iniziale del nome dei dark frame

T_EXP_LIGHT = 0 'si pone a zero l'esposizione dei flat

lightname$ = "FFs" 'stringa iniziale del nome dei flat

'************************

'Inizio ciclo esposizioni

'************************

for i=1 to EXP_NUM

Camera.Binning(1)

T_EXP_LIGHT = i
T_EXP_DARK = i


'Esposizione dei light frames

'******************************

Camera.Start(T_EXP_LIGHT)

Camera.Wait
Image.Save("F:\cavezzo" + folder$ + lightname$ + str$(i) + ".fit")


'Esposizione dei dark frames

'******************************

Camera.Start(T_EXP_DARK,0)

Camera.Wait
Image.Save("F:\cavezzo" + folder$ + darkname$ + str$(i) + ".fit")


'Esposizione del flat da 1s

'******************************

Camera.Start(1)

Camera.Wait

Image.Save("F:\cavezzo" + folder$ + "FLAT1-" + str$(i) + ".fit")


'Esposizione del dark frame da 1s

'******************************

Camera.Start(1,0)

Camera.Wait

Image.Save("F:\cavezzo" + folder$ + "DARK1-" + str$(i) + ".fit")


next i

'************************

'Fine ciclo esposizioni

'************************


Nel nostro esempio i frame vengono salvati nella cartella F:\cavezzo\LINTEST ma è intuitivo personalizzare la procedura in base alle proprie esigenze.
Occorre sottolineare che le cartelle di lavoro, dove cioè vengono salvati i frame durante l'esecuzione dello script, devono essere già esistenti, altrimenti si avrà un messaggio d'errore.

ELABORAZIONE DEI DATI
A questo punto, nella cartella LINTEST avremo 140 file che corrispondono ad altrettanti frame: 35 frame FFsXX, con i relativi 35 dark DDsXX e 35 frame da 1 secondo FLAT1-XX con i 35 dark DARK1-XX, dove XX è il progressivo di ripresa che nei primi due casi coincide anche con il tempo d'integrazione.
La prima cosa da fare è creare un master DARK FRAME con i 35 DARK FRAME da 1 secondo (DARK1-XX) e sottrarre questo master ad ognuno dei FLAT FIELD da 1 secondo (FLAT1-XX) salvando il file risultante. Con Astroart l'operazione è immediata impostando la finestra del preprocessing in questo modo:



Una volta lanciato il pretrattamento ci troveremo nella stessa cartella 35 nuovi file FLAT1-XX_P con il suffisso P che andranno analizzati con la funzione statistica Visualizza > Statistiche dopo aver selezionato il rettangolo centrale di 300 x 300 pixel (è conveniente utilizzare per questo la scorciatoia da tastiera [Ctrl] + [R]: il programma selezionerà sempre l'ultimo rettangolo di selezione memorizzato).

I dati da annotare per ogni frame sono la media e la deviazione standard come indicati nella figura qui sotto:


Conviene annotare subito i dati su un foglio di Excel: per comodità ne ho già preimpostato uno scaricabile a questo link . Dopo la compilazione di questo primo set di dati il foglio assumerà l'aspetto seguente:


Rimangono da compilare la seconda e la terza colonna del foglio di calcolo. La procedura è leggermente più lunga: occorre caricare uno alla volta il frame FFsXX con il relativo dark DDsXX, sottrarre quest'ultimo al frame FFsXX, selezionare ancora una volta con [Ctrl] + [R] il rettangolo d'analisi di 300 x 300 pixel ed aprire la finestra delle statistiche con Visualizza > Statistiche.
Anche per questi frame è necessario registrare sul foglio la relativa media e deviazione standard fino alla compilazione completa del foglio di Excel. Le ultime due colonne a destra, con l'intestazione in arancio, sono quelle calcolate: la prima moltiplica il valore medio del flat di controllo da 1 secondo FLAT(1) per i secondi d'esposizione Exp(s) mentre la seconda rappresenta il rapporto di normalizzazione R(s) = Flat(s) / [Flat(1)*Exp(s)]: più R(s) è vicino ad 1 e migliore è il comportamento lineare della camera CCD.

Riportiamo ora su un grafico il valore medio di FFsXX (seconda colonna o Flat(s)) in funzione di R(s). Per il nostro esempio il grafico assume l'aspetto seguente:


La maggior parte dei punti sono adagiati sulla retta R(s) = 1, come ci si aspettava ed è evidente l'inizio del crollo di linearità intorno ai 60000 ADU. Tuttavia alcuni punti si discostano maggiormente dalla retta anche a valori inferiori: un'attenta analisi del comportamento della camera CCD ha evidenziato che in realtà sono dovuti ad un cattivo controllo della temperatura del CCD che ha leggermente modificato i livelli medi di corrente di buio durante la rapida successione di pose da 1 secondo.
Per accertarsi ulteriormente che le variazioni non fossero dovute a discontinuità nella linearità della camera CCD può essere utile analizzare il grafico della deviazione standard del FLAT(s) in funzione del FLAT(s) stesso:


Rimangono ancora un paio di discontinuità (i punti dovrebbero essere tutti equidistanti sulla stessa retta dato che l'incremento d'esposizione è sempre di 1 secondo) ma si evidenzia ancora la discontinuità oltre i 60000 ADU.
Le discontinuità sono comunque minime, in media al di sotto dell' 1,4%, come è possibile calcolare attraverso lo stesso foglio di Excel.