SUBFRAME SELECTOR

SUBFRAME SELECTOR

Da quando ho scoperto questo script non riesco più farne a meno. Non solo perché ho notato dei miglioramenti nelle immagini finali da quando lo uso, ma anche per mia semplice curiosità. Infatti con il Subframe Selector è possibile analizzare le singole immagini potendo valutare in modo matematico numerosi parametri, controllando come variano nel corso della serata o di più serate, al variare dell’esposizione, dei filtri, del DSO.

Perchè usare SUBFRAME SELECTOR

Una sessione di fotografia del profondo cielo non dura pochi minuti. I tempi possono variare molto e, soprattutto se si usano sensori monocromatici, le riprese possono distribuirsi su più notti. Il cielo, nell’arco temporale di una ripresa, subisce variazioni le quali, anche se minime, possono essere “viste” nelle nostre foto. Pensiamo ad esempio alla presenza della Luna, al seiing, al passaggio di velature o semplicemente al tasso di umidità. E’ sbagliato pensare che integrare tutti i light che abbiamo ripreso sia la sola cosa da fare, infatti tra essi possono essere presenti dei frames di cattiva qualità che non vanno ad aggiungere niente alla nostra immagine finale, anzi possono solo creare danni. Con Subframe Selector è possibile scartare questi frames, ma per capire meglio come è bene procedere col nostro script.

Quando usare SUBFRAME SELECTOR

Il momento migliore nel nostro flusso di lavoro per eseguire lo script è subito dopo aver applicato la Cosmetic Correction, cioè prima di registrare le nostre immagini con Star Alignment. Potete vedere i vari passaggi nel precedente Tutorial.

Come usare SUBFRAME SELECTOR

Per aprire lo script andiamo su Script -> Batch Processing -> Subframe Selector e ci comparirà così:

SUBFRAME SELECTOR

Iniziamo subito premendo su “add files” e apriamo i nostri light che vogliamo analizzare.

subframe selector

La primissima cosa da fare è andare a regolare i parametri per far lavorare al meglio lo script. Sotto system parameters dobbiamo inserire il nostro campionamento in secondi d’arco su pixel, ed il gain del nostro sensore. Il primo è calcolabile facilmente conoscendo la focale di ripresa del nostro telescopio (o obbiettivo) e la dimensione dei pixel del sensore. Nel mio caso la focale del telescopio è 600 mm, ma ho un riduttore/correttore di 0.85X e diventa quindi di 510 mm, i pixel della mia ccd sono grandi 5.4 micrometri, quindi dobbiamo semplicemente applicare la formula

Campionamento= (dimensione pixel/ focale) * 206.265   ovvero (5.4/510)*206.265 = 2.184”

Il Valore di gain si può scoprire con una veloce ricerca online o nella scheda tecnica della camera, ad esempio la mia SBIG ha un gain di 0.37 e/ADU.

Lasciamo come unità di misura dei futuri valori i secondi d’arco e lasciamo 16 bit se stiamo usando dei raw o fit provenienti da ccd o reflex, se andremo ad usare dei jpeg dobbiamo cambiarlo in 8 bit.

Aprendo il menù di “star detection and fitting” ci troviamo altri parametri da modificare. Quelli di default lavorano molto bene ma possiamo migliorare il lavoro dello script semplicemente abbassando lo “star detection layers” a 4 (così non verranno prese le stelle più grandi) ed aumentando il “noise reduction layers” a 2 (evitando che lo script legga il rumore come stelle o nebulosità)

A questo punto basterà premere  “measure” per far partire lo script

subframe selector

Al termine delle varie misurazioni vedremo che le tabelle si saranno popolate di numeri e sotto il menù di “plots” potremmo vedere i risultati riportati in grafici. Lo script analizza diversi parametri nelle nostre immagini, possiamo divertirci a controllarli tutti ma a noi interessano particolarmente tre valori:

  • FWHM – esprime la grandezza delle stelle, deve mantenersi più bassa possibile.
  • ECCENTRICITY – esprime la rotondità delle stelle, anch’essa deve mantenersi più bassa possibile, valori alti significano stelle non tonde ma allungate.
  • SNR WEIGHT – il rapporto segnale rumore che deve essere maggiore possibile.

Possiamo visualizzarli nel grafico semplicemente variando l’ordinata del grafico stesso, mettendo un valore piuttosto che un altro.

subframe selector

Ad esempio visualizzando la FWHM si nota subito che uno dei 15 frames analizzati presenta un valore più alto rispetto alla media, segno che le stelle in questo scatto sono più grandi. È impensabile che sia cambiata la messa a fuoco in un solo frame della serie, ma è altamente probabile che sia passata una nuvola o una velatura che ha allargato le stelle.

Come scegliere i migliori frames

Ma quale parametro va considerato per scegliere i frames migliori? Tutti e tre quelli elencati prima, e per farlo ci giunge in aiuto un’espressione che li mette in relazione tra di loro:

(10*(1-(FWHM-min)/(max-min)) + 10*(1-(Eccentricity-min)/(max-min)) + 30*(SNRWeight-min)/(max-min))+50

Sembra complicata ma non lo è affatto, basterà riscrivere tale equazione, o semplicemente fare copia e incolla, nel campo “weighting” sotto al menù “expressions”, dovrete poi sostituire dove ho scritto min e max i valori minimi e massimi rispettivamente di fwhm, eccentricity e snr che potete leggere nelle tabelle. Per farlo potete ordinare in modo crescente o decrescente le tabelle secondo i parametri di interesse andando a modificare i due menù a tendina sotto “sort table by”

subframe selector

Nel mio caso specifico l’equazione completa sarà:

(10*(1-(FWHM-3.835)/(6.981-3.835)) + 10*(1-(Eccentricity-0.5527)/(0.8920-0.5527)) + 30*(SNRWeight-1.371)/(1.544-1.371))+50

Se non volete perdere tempo per scrivere a mano i valori minimi e massimi di FWHM, Eccentricity e SNRWeight vi basterà scrivere:

10*(1-(FWHM-FWHMMinimum)/(FWHMMaximum-FWHMMinimum))+10*(1-(Eccentricity-EccentricityMinimum)/(EccentricityMaximum-EccentricityMinimum))+30*(SNRWeight-SNRWeightMinimum)/(SNRWeightMaximum-SNRWeightMinimum)+50

in questo modo lo script si andrà in automatico a trovare i valori massimi e minimi per completare l’equazione come noi vogliamo (grazie a Roberto Sartori per avermi svelato questa scorciatoia!)

A cosa serve l’equazione inserita?

Come vedete questa espressione mette in relazione i tre parametri per dare un peso ad ogni frame, infatti da ora in avanti noi non avremo più tre valori da considerare ma uno solo: il weight, il peso. Semplicemente il frame migliore è quello con il peso più alto quindi nel nostro caso sarà il frame 10, ma stiamo attenti a come sono ordinati i nostri frames, infatti come vedete il frame 10 per lo script è in realtà il mio quarto scatto, nominato infatti cono (4).

subframe selector

L’espressione vi rimarrà in memoria, ricordate quindi di modificare ogni volta i valori min e max con quelli relativi alle immagini correnti altrimenti rischiate una misura sbagliata. Inoltre tale espressione può essere adattata al soggetto. Vi faccio notare tre valori fondamentali

(10*(1-(FWHM-3.835)/(6.981-3.835)) + 10*(1-(Eccentricity-0.5527)/(0.8920-0.5527)) + 30*(SNRWeight-1.371)/(1.544-1.371))+50

Cosa significano i valori in rosso? Significano che per attribuire il peso finale lo script considera per ogni frame il 20% di FWHM, il 20% di eccentricity ed il 60% di segnale/rumore. Dato che io sto fotografando una nebulosa, la nebulosa cono, è giusto andare a cercare più segnale, ma se ad esempio io fotografassi una galassia potrei voler più dettaglio e quindi dare più importanza agli altri due valori. Potrei ad esempio dare un 40% di importanza al segnale/rumore, un 30% a FWHM ed un altro 30% all’eccentricità delle stelle scrivendo l’espressione:

(15*(1-(FWHM-3.835)/(6.981-3.835)) + 15*(1-(Eccentricity-0.5527)/(0.8920-0.5527)) + 20*(SNRWeight-1.371)/(1.544-1.371))+50

O se voglio un dettaglio ancor maggiore, come ad esempio in un ammasso globulare, potrei addirittura scrivere:

(20*(1-(FWHM-3.835)/(6.981-3.835)) + 20*(1-(Eccentricity-0.5527)/(0.8920-0.5527)) + 10*(SNRWeight-1.371)/(1.544-1.371))+50

In questo modo solo il 20% del peso è dovuto al rapporto segnale/rumore. Posso variare le percentuali a mio piacimento sulla base del soggetto, a patto che la loro somma sia di 50. Infatti solo il 50% del peso è dato da questi tre valori, il restante 50 è dato arbitrariamente a tutti uguale con quel 50 addizionato al termine dell’espressione

(10*(1-(FWHM-3.835)/(6.981-3.835)) + 10*(1-(Eccentricity-0.5527)/(0.8920-0.5527)) + 30*(SNRWeight-1.371)/(1.544-1.371))+50

Questa costante sommata a fine espressione può essere modificata per ottenere pesi sempre diversi, infatti se noi alziamo questo valore, ad esempio da 50 a 70, avrei un maggiore peso in direzione dell’snr, se invece decidiamo di abbassarla, ad esempio a 30, avremo un risultato finale che valorizza di più eccentricità ed FWHM. Quindi oltre a variare le percentuali dei pesi possiamo variare questa costante finale per concentrarci di più sull’snr piuttosto che su eccentricità ed FWHM.

Sopra il campo “expressions” è presente il campo “approval”, anche qui possiamo scrivere una breve espressione per scegliere i frames da approvare e quelli no. Ad esempio io scrivo

Weight > 60

In questo modo vado ad approvare solo i frame con un peso superiore a 60. Significa, in pratica, che dei 15 frames vado a scartarne uno, il quale presenta un peso di 54.40. Tale frame mi viene in automatico deselezionato. Anche qui potete scegliere voi il valore da impostare, potete anche approvarli tutti lasciando questo campo vuoto.

Salvare i frames approvati

Andiamo sotto al menù “output”. Qui dobbiamo semplicemente selezionare la cartella in cuoi salvare i frames approvati ed aggiungiamo una parola chiave alle nostre immagini. Su “weight keyword” vado a scrivere “SSWEIGHT”. Tale parola sarà importantissima in fase di integrazione e vi spiegherò in quel momento perché! Premiamo su “output subframes” per salvare i frames nella cartella selezionate e possiamo chiudere lo script.

subframe selector

È il momento di proseguire nelle varie fasi verso il risultato finale, possiamo quindi continuare a seguire il tutorial con i seguenti accorgimenti:

IMAGE REGISTRATION

Al momento della registrazione dei frames è buona norma scegliere come immagine di riferimento una buona immagine, noi adesso sappiamo quale! Possiamo infatti usare l’immagine con il peso maggiore per registrare le altre! Nel mio caso era l’immagine denominata “cono (4), la seleziono e proseguo con la registrazione.

image registartion

IMAGE INTEGRATION

È qui che finalmente faremo valere il peso dei nostri frames! Infatti con le opportune modifiche andremo ad integrare i nostri lights in modo tale che i frames “buoni” abbiano un peso maggiore, mentre quelli “cattivi” un peso minore. Ci basta scegliere “fits keyword” come weights sotto al menù “image integration” del process e scrivere  “SSWEIGHT”  nella casella apposita che mi compare per la keyword. Il process andrà a leggere il peso di ogni singolo frame attribuito dallo script subframe selector, così ogni frame influirà in modo diverso sul risultato finale. Lasciamo il resto del process come da precedente tutorial e procediamo con l’integrazione normale e successiva drizzle integration.

image integration

Il confronto

Ho integrato questa serie di immagini con il metodo tradizionale, senza usare subframe selector e usando tutte le 15 immagini. Poi ho integrato le immagini usando lo script, usando 14 immagini, quelle cioè con il peso superiore di 60, ed integrandole in maniera pesata. Vediamo le differenze:

nebulosa cono in Halfa

A colpo d’occhio le due immagini sono identiche, ma andiamo ad analizzarle proprio con il nostro Subframe Selector

Beh quella pesata ha un rapporto segnale/rumore decisamente migliore, ben 8 volte superiore rispetto al singolo frame, inoltre anche la FWHM è migliorata, probabilmente proprio perché abbiamo eliminato il frame con valore FWHM troppo alto. Anche L’immagine tradizionale non è male, ma perché accontentarsi?

CONCLUSIONI

Vale la pena perdere tutto questo tempo per usare Subframe Selector? Secondo me si, per due semplici motivi. Primo perché usare lo script è molto veloce una volta che ci abbiamo preso la mano, secondo perché in questo caso i frames erano più o meno tutti buoni e non si sarebbe notata una grande differenza tra le due metodologie di integrazione, ma molte volte durante le serate ci sono continui passaggi di velature che danneggiano molti frames, oppure sessioni di fotografia in più serate possono avere condizioni atmosferiche diverse e le foto di una serata possono rovinare quanto di buono ottenuto nell’altra. In questi casi, secondo me, questo script è davvero importante, dato che la differenza tra il metodo tradizionale e quello “pesato” può diventare ben più netta di quanto visto oggi.