Ricerca di Supernovae
Procedure automatiche per la ricerca di supernovae extragalattiche

a cura di Paolo Botton
aggiornato: 17.06.2015


I concetti base

È noto che gli eventi di supernovae sono molto rari e come tali richiedono molte notti passate a scattare fotografie alle galassie, nella speranza di poter scoprire un fenomeno transitorio riconducibile all'esplosione di una stella.
Inoltre è bene ricordare che le supernovae di Tipo Ib, Ic e di Tipo II originano da stelle relativamente giovani, di popolazione I, e quindi concentrate principalmente nei dischi delle galassie a spirale; sarano questi gli astri da traguardare e fotografare.
Se si cercano le più spettacolari supernovae di Tipo Ia, queste originano da stelle di popolazione II, più vecchie e quindi concentrate in galassie ellittiche o negli aloni delle galassie a spirale.
Una volta definiti quali astri sono da ricercare, per aumentare la probabilità di rilevare evento transitorio ad essi associato, si dovrebbero fotografare un centinaio di galassie per notte e passare ore a vagliare gli scatti con immagini di riferimento estratte dai cataloghi digitali on-line (DSS).
Questo sistema non garantisce assolutamente l'esclusiva della scoperta: come ormai mi capita con seccante ricorrenza, spesso la supernova si trova già nell'elenco di quelle non ancora confermate, segno che altri ci sono arrivati prima.
Il fatto, sebbene possa demoralizzare, di per sé è indice dell'utilità del metodo e quindi uno sprone a perseverare - tempo permettendo.
Lavorare manualmente, specie in condizioni climatiche non favorevoli, può essere stancante e anche noioso, ma grazie alle indicazioni che sono state pubblicate nel luglio 2009 sul volume 118, numero 1 di Sky & Telescope, nell'articolo "Searching for Supernovae on a Shoestring" e quindi alla disponibilità dell'autore dello stesso, il collega dottor Thiam-Guan Tan che mi ha passato le specifiche di progetto, sono riuscito ad incastrare nel piano di ricerca pluriennale a bassa priorità, lo studio e la stesura di quattro procedure automatiche utili al puntamento del telescopio, scatto di foto a media esposizione (30-60 secondi) e scarico sul PC per l'analisi automatica di possibili eventi legati a supernovae extragalattiche.
Come ho fatto presente al collega, il progetto originale aveva un problema che escludeva un numero eccessivo di galassie, inoltre - ma questa era una sua scelta - funzionava solo per valori positivi di declinazione ed era vincolato alla geometria dello schermo del computer per via dell'uso esclusivo di Autoit.
Il nuovo modello per il nostro emisfero si svincola dalle limitazioni di cui sopra ed è scritto in Python per OS Linux con le GUI WXglade, ed i programmi presentano un'interfaccia utente grafica molto sobria.
Python è cross-platform, ma le procedure scritte con tale linguaggio sono state verificate con la distribuzione UBUNTU 11.10 e desktop Gnome, che ho reso stabile, utilizzo per l'attività scientifica e dove mi sono premurato d'istallare tutte le possibili librerie utili come dipendenze per i vari applicativi con cui sviluppo procedure matematiche a mio uso e consumo.
Per esercizio ho anche predisposto una versione in Python per Windows Xp con service-pack 3, intervento reso necessario per la diversa gestione delle linee seriali.

Prima di proseguire con il discorso software, un breve cenno alla strumentazione.
Per la gestione di un sistema automatico, serve una montatura equatoriale motorizzata su entrambi gli assi di declinazione e ascensione retta, che permetta il controllo remoto seriale RS232 via PC, cui aggiungere una DSLR (meglio una SBIG CCD se disponibile) a fuoco diretto per l'acquisizione delle immagini. Parliamo di foto utili per evidenziare fenomeni che presentano uno scarto di magnitudine apparente notevole; non si ricorre alle immagini artistiche a colori che ben conosciamo e apprezziamo, ecco perché non serve l'autoguida ed i tempi d'integrazione non sono critici.
Si deve garantire che il telescopio sia stazionato in Polare nel modo più preciso possibile, perché i tempi di lavoro possono essere lunghi e molte montature, dopo alcune ore, presentano errori di puntamento sensibili.
Altro argomento spinoso è la messa a fuoco dei soggetti che richiede tempo con diversi scatti di posa. Dato che il mio setup si trova nel cortile della cascina, lo collego al desktop che tengo dentro casa tramite cavi di prolunga schermati (precauzione forse eccessiva).
Con i nuovi PC, specie nei portatili, dove la seriale RS232 non è più presente; si utilizza un comodo convertitore USB-RS232 che crea una COM virtuale cui i programmi che ho scritto faranno riferimento.
Eventuali interposizioni ottiche sono da prendere in considerazione in funzione dello strumento.

La gestione dell'analisi delle riprese deep-sky richiede un accesso a banda larga per poter recuperare le immagini campione dal database di riferimento (DIGITAL SKY SURVEY - DSS). Il confronto si può effettuare con la tecnica del blinking e/oppure, come spesso mi capita, ricorrerre ad un raffronto digitale più sofisticato.

Parsing dei cataloghi delle galassie

La ricerca si supernovae extragalattiche inizia con la selezione delle galassie osservabili dalla mia postazione, in base alla finestra di ascensione retta che offre il giorno prescelto per l'osservazione.
Per fare questo è necessario attingere ad una lista di oggetti catalogati ed effettuare una cernita tramite il parsing, una tecnica utilizzata nel campo informatico con lo scopo di trasformare un flusso di dati in una struttura differente, secondo precise regole ed esigenze.
In questo caso, avendo a disposizione il Third Reference Catalogue of Bright Galaxies, noto come RC3, che potete prelevare qui (è un ASCII di circa 2,14MB) ed il New General Catalogue J2000, si rende necessario reperire i soli oggetti che hanno alta probabilità di ospitare eventi di supernovae, escludendo ammassi globulari, nebulose e alcune tipologie di galassie.
Sulla base dei cataoghi, ho quindi sviluppato due programmi: uno per traguardare e fotografare oggetti deep-sky a scopo scientifico o astrofotografico che sfrutta il catalogo NGC J2000, l'altro espressamente dedicato al programma di ricerca delle supernovae, che opera solo sul catalogo RC3. Quest'ultimo applicativo presenta un'unica finestra interattiva:

Magnitudine limite e declinazione minima sono gli unici parametri imposti dallo strumento e dal luogo di osservazione, dato che sul seeing non posso fare previsioni...
Le finestre dei filtri esclusivi servono per cassare gli oggetti che non si ritengono appropriati per la sessione osservativa/fotografica.
Le opzioni possibili sono E, S, I, o P, ossia ellittiche, spirali, irregolari, peculiari
Nell'esempio, nel riquadro galassie, escludo le galassie Ellittiche e Peculiari.
Il catalogo RC3 comprende 23011 galassie con il codice identificativo PGC (Principal Galaxy Catalog) di cui 1112 UGC (Uppsala General Catalogue), 6254 ESO (European Southern Observatory), 3488 MCG (Morphological Catalogue of Galaxies) e 1278 CGCG (Catalogue of Galaxies and of Clusters of Galaxies).
Non solo, i quattro cataloghi includono al loro interno 5302 galassie appartenti al catalogo NGC (New General Catalogue) e altre 1933 facenti parte del catalogo IC (International Catalogue).
Il riquadro cataloghi permette di escludere quelli da cui non si vuole attingere; le opzioni sono U (UGC), E (ESO), M (MCG), C (CGCG). Nell'esempio - fine a se stesso - non prendo in considerazione MCG.

L'ultimo filtro esclusivo è relativo alla morfologia. Le opzioni a disposizione sono, per mantenere la classificazione internazionale R = con anello esterno (outer ring); P = pseudo anello esterno (pseudo outer ring); C = compatte (compact); D = dwarf (nane).
Nell'esempio, escludo le galassie nane.
Il programma, una volta avviato, estrae un elenco ordinato chiamato RC3ridotto.txt, contenente il nome in codice della galassia, le ore di A.R., i minuti di A.R., i gradi e primi della Declinazione in notazione decimale ed infine la magnitudine.

A titolo d'esempio ecco alcune righe di come si presentano nell'elenco:

 
 PGC30   0   0.38    80  47.5    13.91
 PGC99   0   1.3     53  0.5     15.99
 PGC181  0   2.74    80  20.8    14.83
 PGC187  0   2.77    52  46.1    15.39
 PGC328  0   4.78    62  3.7     13.4
 PGC358  0   5.12    50  49.3    14.37
 

Generatore della lista delle Galassie

Da RC3ridotto.txt è ora necessario prelevare solo quelle galassie che potranno essere fotografate con profitto in funzione dei limiti imposti dal luogo e dal periodo di osservazione.
Il programma necessita anche di una serie di parametri ausiliari che gli permetteranno di verificare se e quali astri potranno essere ripresi in sequenza, nel rispetto dei limiti imposti dai tempi di esposizione, stabilizzazione dello sturmento e scaricamento dell'immagine (o tempi di elaborazione se il CCD o la DSLR permettono di effettuare dei filtraggi in automatico).
Il programma sviluppato presenta la finestra interattiva mostrata in figura:

Il programma, una volta avviato, estrae un elenco ridotto ed ordinato, chiamato galassie-AAAAMMGG.txt (dove AAAA = anno, MM = mese e GG = giorno del mese), contenente il codice identificativo PGC della galassia, ore e minuti di A.R., gradi e primi della declinazione in notazione decimale.

Questo elenco serve per pilotare la testata equatoriale motorizzata e per prelevare le immagini campione dai server DSS che permettono la ricerca per coordinate.
A titolo d'esempio, ecco alcune righe di come si presenta la lista galassie-20121202.txt:

 
 PGC3632  1  0.86   53 14.65
 PGC3812  1  4.12   51  7.92
 PGC4329  1 12.27   54 27.5
 PGC4708  1 18.81   53 17.55
 PGC5338  1 26.3    52 39.23
 PGC5631  1 30.72   51  8.45
 
Il programma genera anche un testo con la lista delle galassie campione da scaricare dal catalogo DSS messo a disposizione dal CACD - Canadian Astronomy Data Centre (servizio CADC Query by list). I campi sono formattati secondo una sintassi prestabilita che illustro più avanti.
A titolo d'esempio, ecco alcune righe di come si presenta il file di testo cadc-20121202.txt:
 
 PGC3632    PGC3632    10    10
 PGC3812    PGC3812    10    10
 PGC4329    PGC4329    10    10
 PGC4708    PGC4708    10    10
 PGC5338    PGC5338    10    10
 PGC5631    PGC5631    10    10
 
Il file con l'elenco è denominato cadc-AAAAMMGG.txt (dove AAAA = anno, MM = mese e GG = giorno del mese).
È immediato notare che, limitando la tolleranza in declinazione (da 10 a 5 gradi), il numero di galassie fotografabili si riduce:

Guida del Celestron C8 Advanced GT

Partendo da galassie-AAAAMMGG.txt è ora possibile pilotare sia il telescopio e contestualmente il dispositivo fotografico ad esso collegato. Nel mio caso la CANON EOS 450D gestita via seriale con un apposito circuito d'accoppiamento da me progettato.
Non sono preclusi altri dispositivi, purché si conoscano le specifiche d'interfaccia.
È sufficiente indicare il percorso del modulo galassie-AAAAMMGG.txt e quello in cui scaricare le foto riprese (nel mio caso mantengo le foto della SD Flash, ma è possibile gestire il download, nel caso dovessi ricorrervi).
Il programma, presenta le seguenti finestre:


Richiesta delle indicazioni da parte dell'utente


Indicazioni delle cartelle di lavoro e del binning per il CCD (se si usa)


Il programma pilota il telescopio via seriale-Nexstar...


Raggiunte le coordinate celesti, attende la stabilizzazione (vibrazioni)...


Scatto delle foto e mantenimento nella SD card del dispositivo (o scarico sul PC)


Fine del lavoro.

Procedura di confronto tra foto e immagini campione

Sono finalmente giunto alla parte più interessante ma anche impegnativa.
Fin'ora il PC e l'elettronica hanno lavorato per me e potevo fare altro, ma ora le immagini scattate devono essere confrontate con quelle di riferimento, fornite dai servizi digitali degli istituti di ricerca e degli osservatori astronomici.
Lo scopo ultimo di tutto questo lavoro è infatti quello di verificare se nelle immagini evidenzio una novità riconducibile ad un evento di supernova.
Nel caso, ossia capita che dal confronto delle immagini emerga una supernova, avvio le verifice di rito, riprendendo nuovamente il campo ed in caso di un nuovo riscontro positivo controllo presso il CBAT (http://www.cbat.eps.harvard.edu/cbat.html), per essere certo che il fenomeno non sia già stato individuato e confermato.
Se l'evento non è in elenco, mando un telegramma secondo le regole dettate dal CBAT ed attendo la conferma della scoperta.
Come arrivo al confronto, lo spiego adesso. L'argomento non è leggero, quindi ci vuole pazienza e interesse per via dell'approccio interdisciplinare connaturato con questa attività.
Esploro alcune possibilità offerte sia dalle procedure manuali classiche, sia da più complesse ma efficienti tecniche automatiche.
Il mio intento non è quello di convincere sulla bontà delle scelte ma condividere esperienze sugli strumenti esistenti e come li sto utilizzando nel mio lavoro di ricerca. Come si evince dalla premessa, ciò di cui scrivo non è certo una novità; sono certo che qualcun altro si è mosso in questa direzione, magari con una migliore efficienza, quindi sono disponibile ad uno scambio di opinioni.
L'applicabilità delle tecniche di riscontro manuale o automatiche deve essere valutata in base al carico di lavoro che si deve svolgere e alla volontà o possibilità di progettare le opportune interfacce.
Nota: Le immagini relative alle maschere interattive per la fruizone dei servizi digitali on-line mostrano il loro aspetto aggiornato al 2012; devo ricordare che, sia l'URL, sia la grafica, potrebbero variare nel tempo, senza preavviso. Nel caso, occorre accedere alla home-page dei siti e cercare il link aggiornato. L'elenco dei server DSS non è esaustivo, riporto solo quelli che utilizzo.

Confronto manuale di poche immagini

La soluzione che ritengo ottimale è quella di sfruttare Aladin (http://aladin.u-strasbg.fr/java/nph-aladin.pl) per scaricare le immagini nella propria cartella di lavoro. Ottimale è un'affermazione strettamente personale, legata alla presenza di strumenti formidabili di cui l'applicazione dispone, che permettono d'effettuare misure astrometriche molto precise, cosa che mi torna utile per fornire un riferimento puntuale sulla posizione di una supernova o di un qualsiasi evento da confermare.

Altra possibilità di download manuale la offre la maschera del'ESO (European Southern Observatory, http://archive.eso.org/dss/dss).

Infine esiste il servizio offerto dal CACD (Canadian Astronomy Data Centre). Lo sfrutto quando conosco il nome della galassia, accedendo al Query by Object Name, all'URL http://www1.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/dss/dss_query_coord.html.

Inserisco il nome della galassia (nell'esempio la PGC72145 del catalogo RC3) e premo il pulsante di richiesta dati. In questo caso, il server mette a disposizione una serie d'immagini, lasciando all'utente la scelta, grazie alla lista di spunta.


Inserisco o tolgo le spunte in base alla necessità, quindi premo il pulsante [Request Files] che permetterà il recupero dell'immagine. Ecco come si presenta il primo fotogramma indicato nella lista di spunta:

Confronto automatico

Quando il numero d'immagini da confrontare è elevato, mi trovo nella condizione di dovermi affidare ad un sistema più rapido.
Anche qui, nell'attività di studio, ho individuato diverse soluzioni, che però richiedono il ricorso ai comandi shell Linux e/o alla programmazione in Python o altro linguaggio idoneo allo scopo, come il PERL o al limite il C++ per i puristi.
Ovviamente le soluzioni per lo scarico automatico delle immagini di confronto possono essere adottate anche se si ricorre a verifiche manuali.

CADC Query by list e comandi Linux

È il metodo che permette di sfruttare l'elenco delle galassie, espressamente compilato per l'accesso al CACD dal precedente programma GeneraListaGalassie.py. A titolo d'esempio utilizzo il modulo cadc-20121122.txt che contiene i parametri identificativi di 6 galassie, nel formato espressamente richiesto dal server.
Mi collego con il CACD per accedere alla maschera di richiesta specifica, inserendo nel browser il seguente URL: http://www3.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/dss/dss_query_name_list.html).

Carico cadc-20121122.txt e premo il tasto [Quesy DSS]. Mi si presenta la finestra con tutte le possibili immagini e relative liste di spunta. È necessario operare una cernita, onde evitare di scaricare immagini inutili allo scopo che mi sono prefisso.

Premo il tasto [Request Files].

Il browser avvia il download di un file di testo (in genere chiamato cadcUrlList.txt) contenente una lista di URL che possono essere utilizzati direttamente con il comando wget (un programma nativo Linux non interattivo per scaricare file dalla rete) per ricevere automaticamente nella cartella di lavoro tutte le immagini referenziate dalle stringhe contenute nel file di testo.
Se nel documento fosse presente una linea con la dicitura ERROR, allora il server CADC non è riuscito a risolvere lo specifico URL dell'immagine da scaricare.
Il programma wget,in base a come uno è accreditato al CACD, necessita una serie di parametri in ungresso.
Questo è ciò che serve al mio scopo:

 
  wget [--http-user=CADC_USERNAME] [--http-password=CADC_PASSWORD] -i FILE_DI_TESTO

  wget --help     per ulteriori opzioni
 
l'opzione -i indica al comando di scorrere il contenuto di un file FILE_DI_TESTO per recuperare gli URL. Se non si accede ad un'area riservata o non si utilizzano accessi accreditati, si possono ignorare username e password.
Se mi pongo dalla parte di un utente occasionale, in una shell Linux, dopo essere entrato nella cartella di lavoro specifica, scrivo semplicemente:
 
  paolo@nova:~/SN$ wget -i cadcUrlList.txt
 
Questo è l'effetto sulla shell. Per brevità mostro solo l'ultima delle 6 istanze.
--2012-11-29 00:55:13--  http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/WEBTMP/dss53246_pgc72145_a19b_xj_B_J_prev
Connessione a www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca|132.246.217.5|:80... connesso.
Richiesta HTTP inviata, in attesa di risposta... 303 See Other
Posizione: http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/trans/bmVpZ2g9Q0FEQyZzaWdleHA9MjAxMjExMjkwMDAwMTMmYXJjPVdFQ
lRNUCZpZD1kc3M1MzI0Nl9wZ2M3MjE0NV9hMTliX3hqX0JfSl9wcmV2JnVzZXI9YW5vblVzZXImYXV0aFR5cGU9QmFzaWMmYXV0aENvZGU9MCZ1cmw9aHR0
cDovL3N0b3I2LTA2Ojg4ODgvY2FjaGUvMjY4ZDliMWEvd2VidG1wL2Rzcy9XRUJUTVAtZHNzLTExODIvMDAvMDAvMDAvZHNzNTMyNDYlNUZwZ2M3MjE0NSU
1RmExOWIlNUZ4aiU1RkIlNUZKJTVGcHJldiUyRWpwZyUzQiUzQjQ5MDA4JnVybD1odHRwOi8vc3RvcjYtMDU6ODg4OC9jYWNoZS8wNTYwZDZmMS93ZWJ0bX
AvZHNzL1dFQlRNUC1kc3MtMTE4Mi8wMC8wMC8wMC9kc3M1MzI0NiU1RnBnYzcyMTQ1JTVGYTE5YiU1RnhqJTVGQiU1RkolNUZwcmV2JTJFanBnJTNCJTNCN
DkwMDg=/Y2xuPTE1NzExNSZjbWQ9OGNmMDYxMDcyZjQ0Y2RiNmE3MDZhZTg1NDA2ZjNkZTMmY3R5PWltYWdlL2pwZWcmbG1kPTEzNTQxNDY1MzMwMDAmdWx
uPTE1NzExNSZ1bWQ9OGNmMDYxMDcyZjQ0Y2RiNmE3MDZhZTg1NDA2ZjNkZTMmZmNyPTZlMTlkYWUwJnVjcj02ZTE5ZGFlMA==/d73cb1ff8f15d6c4a0d13
ea782e6e21e/dss53246_pgc72145_a19b_xj_B_J_prev.jpg [segue]
--2012-11-29 00:55:13--  http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/trans/bmVpZ2g9Q0FEQyZzaWdleHA9MjAxMjExMjkwMDA
wMTMmYXJjPVdFQlRNUCZpZD1kc3M1MzI0Nl9wZ2M3MjE0NV9hMTliX3hqX0JfSl9wcmV2JnVzZXI9YW5vblVzZXImYXV0aFR5cGU9QmFzaWMmYXV0aENvZG
U9MCZ1cmw9aHR0cDovL3N0b3I2LTA2Ojg4ODgvY2FjaGUvMjY4ZDliMWEvd2VidG1wL2Rzcy9XRUJUTVAtZHNzLTExODIvMDAvMDAvMDAvZHNzNTMyNDYlN
UZwZ2M3MjE0NSU1RmExOWIlNUZ4aiU1RkIlNUZKJTVGcHJldiUyRWpwZyUzQiUzQjQ5MDA4JnVybD1odHRwOi8vc3RvcjYtMDU6ODg4OC9jYWNoZS8wNTYw
ZDZmMS93ZWJ0bXAvZHNzL1dFQlRNUC1kc3MtMTE4Mi8wMC8wMC8wMC9kc3M1MzI0NiU1RnBnYzcyMTQ1JTVGYTE5YiU1RnhqJTVGQiU1RkolNUZwcmV2JTJ
FanBnJTNCJTNCNDkwMDg=/Y2xuPTE1NzExNSZjbWQ9OGNmMDYxMDcyZjQ0Y2RiNmE3MDZhZTg1NDA2ZjNkZTMmY3R5PWltYWdlL2pwZWcmbG1kPTEzNTQxN
DY1MzMwMDAmdWxuPTE1NzExNSZ1bWQ9OGNmMDYxMDcyZjQ0Y2RiNmE3MDZhZTg1NDA2ZjNkZTMmZmNyPTZlMTlkYWUwJnVjcj02ZTE5ZGFlMA==/d73cb1f
f8f15d6c4a0d13ea782e6e21e/dss53246_pgc72145_a19b_xj_B_J_prev.jpg
Connessione a www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca|132.246.217.5|:80... connesso.
Richiesta HTTP inviata, in attesa di risposta... 200 OK
Lunghezza: 157115 (153K) [image/jpeg]
Salvataggio in: "dss53246_pgc72145_a19b_xj_B_J_prev"

100%[==========================================================>] 157.115     75,1K/s   in 2,0s    

2012-11-29 00:55:16 (75,1 KB/s) - "dss53246_pgc72145_a19b_xj_B_J_prev" salvato [157115/157115]

TERMINATO --2012-11-29 00:55:16--
Scaricati: 6 file, 1,7M in 16s (107 KB/s)
paolo@nova:~/SN$ 
Mi trovo 6 file jpg nella cartella delle immagini di confronto, da cui ho lanciato il comando wget. Ecco qual è l'aspetto di una delle immagini:

Non resta ora che avviare l'attività di confronto, che può essere attuata con gli editor d'immagine, con IRIS o con uno shell script.
Nel mio caso, sia il comando wget, sia la procedura che si occupa del confronto tra le immagini, è attuata da un processo automatico, un programma custom che ho espressamente scritto per analizzare le immagini.

Confronto automatico

La soluzione suprema, nel mio caso, sfrutta sia i comandi nativi di Linux, sia procedure automatiche espressamente progettate allo scopo e scritte in linguaggio Python.
Il programma d'analisi che ho progettato in un anno di lavoro (poche ore, la sera), si avvale di applicazioni batch invocate direttamente con una chiamata al sistema operativo ed è utilizzabile solo in ambiente Linux perché sia i metodi d'accesso, sia i client messi a disposizione dai gruppi di lavoro che gestiscono i server delle immagini digitalizzate, sono compatibili solo con i sistemi operativi usati in ambito scientifico, ossia Linux per hardware x86, Solaris 8 e MacOS X.
Non esistendo uno standard ufficiale per l'archiviazione e l'accesso remoto alle immagini digitalizzate on-line, gli istituti di ricerca decidono le proprie modalità di fruizione degli archivi pubblici. A causa dell'esistenza dei diversi metodi d'accesso ai vari database, ho dotato il programma d'analisi di un minimo d'euristica che permette di decidere quale sia il metodo migliore per scaricare le immagini; è quindi in grado di convertire ad hoc la lista delle galassie fotografate, che ha prodotto la precedente catena di parsing dei cataloghi, creare una lista ordinata avviare il download nella cartella di lavoro e poi confrontare le mie foto con quelle di riferimento.
Posso dedicarmi ad altro: il programma avvisa della scoperta di un evento di supernova e comunque genera un LOG FILE con la traccia del lavoro svolto e copia la coppia di immagini con il poteziale evento transitorio (la mia foto e quella di confronto) in una cartella specifica, in modo che possa osservarle di persona... Il programma richiede alcune migliorie, specie nella parte di elaborazione delle immagini.
A seguire una breve digressione per mostrare un sommario delle principali finestre del programma d'analisi. Una volta lanciato con il parametro che indica a quale DSS accedere, ed in quale cartella scaricare le immagini di riferimento, al termine del download delle foto, appare la finestra principale. Sono presenti quattro tasti:

  1. [FULL-AUTO], utile per il confronto digitale senza l'intervento dell'utente; la procedura si occupa di verificare possibili variazioni nell'immagine, che secondo specifici parametri possano indicare un fenomeno di supernova.
  2. [Precedente], utile nel confronto manuale, per controllare la coppia precedentre di immagini con la tecnica del blinking. Presenta sempre per prima l'immagine scattata.
  3. [Blinking], è un tasto bistabile, premendolo assume l'etichetta [STOP] ed alterna una coppia d'immagini (foto scattata e foto di riferimento) tra loro. Premendolo nuovamente mantiene a video la sola immagine scattata.
  4. [Successiva], utile nel confronto manuale, per controllare la coppia successiva di immagini con la tecnica del blinking. Presenta sempre per prima l'immagine scattata.
  5. [Scalatura], è un tasto bistabile, se premuto assume l'etichetta [Non scala] e adegua la finestra del programma d'analisi alla dimensione reale dell'immagine, diversamente sarà l'immagine ad essere scalata per rispettare la dimensione della finestra (condizione prestabilita all'avvio del programma).

Si nota la presenza di una sola icona nella barra degli strumenti; serve per aprire in squenza le cartelle delle immagini scattate e di riferimento quando si avvia il confronto manuale (senza ricorrere al tasto [FULL-AUTO]). Esistono dei controlli per evitare errori di caricamento e le due immagini che seguono mostrano la sequenza di selezione delle cartelle con le foto.

Quest'ultima immagine mostra l'effetto del tasto [Blinking], he quindi presenta la stritta [STOP], su due immagini della Grande Galassia di Andromeda - M31, su cui una ho aggiunto un artefatto per simulare in modo grossolano un'esplosione di supernova.


Ora che il principio si base è noto, illustro quali sono i due metodi per il recupero full-batch delle immagini di confronto.

Il primo metodo, che in genere prediligo per la sua facilità d'uso, immediatezza e versatilità, preleva immagini dall'ESO Online Digitized Sky Survey.

Il programma d'analisi avvia uno script che fornisce i parametri di ricerca al client ESO DSS Batch Tool. Nota come ESO/ST-ECF Digitized Sky Survey [DSS] Application, è un eseguibile in grado di estrarre arbitrarie sezioni di cielo (campo di vista) dal server d'immagini DSS istallato presso l'ESO, ed include anche il name resolver di SIMBAD, fornendo così - come si vedrà tra poco - un'alternativa al sistema d'estrazione, che di norma richiede le coordinate celesti dell'oggetto.
ESO DSS Batch Tool è una costola del progetto originale dello Space Telescope Science Institute, ed è in grado di accedere ai seguenti cataloghi:

 The First  Digitized Sky Survey DSS-1            risoluzione a 25μ
 The Second Digitized Sky Survey DSS-2 rosso,     risoluzione a 15μ
 The Second Digitized Sky Survey DSS-2 blu,       risoluzione a 15μ
 The Second Digitized Sky Survey DSS-2 infrarosso risoluzione a 15μ

Come anticipato, l'estrazione delle immagini è attuata principalmente in base alle coordinate e al campo di vista, quindi inviate al richiedente nel formato FITS standard, contenente tutte le chiavi utili a visualizzare le coordinate celesti di ogni singolo pixel.
Ogni FITS può essere letto, convertito o analizzato da qualunque programma in grado di gestire dati astronomici.
Se richiesto, la procedura può convertire le immagini in jpg.
L'applicazione ESO mette a disposizione due file binari per accedere ai campi del DSS: dss1 e dss2.
La loro eccezionalità sta nel fatto che sono stati espressamente progettati per essere inseriti all'interno di batch che richiedono l'acquisizione di grandi quantità di immagini, ed essere quindi integrati all'interno di applicazioni software (come quella che mi sono scritto).
Il client DSS in formato compresso, un tarball, si trova nel sito dell'ESO; all'URL http://archive.eso.org/cms/tools-documentation/dss/dss.tar.gz, ma i siti sono in continua evoluzione e spesso i repository dei software cambiano senza alcun preavviso, pertanto se non fosse più raggiungibile, conviene avviare una ricerca sul WEB usando come stringa "The ESO DSS Batch Tool".
Dopo aver scaricato l'archivio in una cartella di lavoro, lo si deve scomprimere:

 gunzip -c dss.tar.gz | tar xf -
Lo spazio occupato dal pacchetto d'istallazione è notevole: 57.348.096 byte perché si porta dietro gli eseguibili per tutti i sistemi operativi supportati.
Nella cartella DSS c'è un file di testo etichettato INSTALL che si deve aprire con un editor: contiene la procedura per l'istallazione che, sebbene ben spiegata, risulta macchinosa per chi non è abituato a lavorare in ambiente Linux.

Il client è semplice da utilizzare: è sufficiente fornirgli una stringa che identifichi i parametri caratteristici dell'oggetto di cui si richiede l'immagine, che sono, nell'ordine, il nome con cui sarà salvata la foto nella propria cartella di lavoro, le coordinate equatoriali e dimensione dell'immagine in minuti d'arco.
La sintassi formale è la seguente:

 
  <nome-immagine-FITS> <ra> <dec> <lato-X> <lato-Y>
 
Ad esempio, la stringa:
 
  galassiaX 1 33 3.4 +30 39 7.8 10 10
 
Abbinata allo specifico comando in una shell Linux...
 
  paolo@nova:~/SN$ dss1 galassiaX 1 33 3.4 +30 39 7.8 10 10
 
...produrrà un'immagine FITS galassiaX.fits da 10×10 minuti d'arco, centrata in Ascensione Retta 1h 33m 3.4s e Declinazione +30° 39' 7.8". (la galassiaX, in questo caso, sarà una porzione di M33, la famosa spirale del Triangolo).
Grazie all'integrazione del name resolver di SIMBAD, qualora il nome dell'oggetto sia catalogato (ormai quasi tutti...), si può utilizzare una stringa di stesura più semplice:
 
  [<nome oggetto>] <nome-immagine-FITS> <lato-X> <lato-Y>
 
Ad esempio, la stringa:
 
  m33] m33 10 10
 
Abbinata allo specifico comando in una shell Linux...
 
  paolo@nova:~/SN$ [dss1 [m33] m33 10 10
 
...produrrà un'immagine FITS da 10×10 minuti d'arco, centrata nella posizione dell'oggetto Messier 33 presente nel database SIMBAD.
Quando si possiede una collezione di oggetti fotografati, proprio come nel mio caso, di cui si vogliono recuperare le immagini digitalizzate per i confronti di rito, occorre predisporre una lista con i campi identificativi che siano conformi alla sintassi richiesta dal client.
I mio programma, attingendo al precedente galassie-AAAAMMGG.txt, genera in automatico l'elenco all'interno di un file ASCII, ma a scopo didattico, per verificare che il client ESO funzioni sulla propria distribuzione e non cimentarsi inutilmente con la stesura di centinaia di righe di codice, si può creare un file con l'editor, chiamandolo ad esempio listaGalassie.dat.
Al suo interno si scriva:
 
    galassiaX  12 21 7 4 28 6.7 7.5 5.5
    galassiaK  1 33 3.4 +30 39 7.8 10 10
    galassiaZ  13 37 17.18 -29 52 21.16 20 20
 
Salvarlo e da shell Linux invocare il client dss1, in questo modo:
 
  paolo@nova:~/SN$ dss1 -i listaGalassie.dat
 
Al termine della procedura, la cui durata dipende dali tempi dettati dalla rete, nella cartella di lavoro si troveranno i files galassia... con l'estensione .fits
- galassiaX dovrebbe mostrare tutta M61 o NGC4303 - Costellazione della Vergine;
- galassiaK dovrebbe mostrare parte di M33 o NGC1982 - Costellazione del Trinagolo;
- galassiaZ dovrebbe mostrare un ampio campo contenente M83 o NGC5236 - Costellazione dell'Hydra.

Il secondo metodo sfrutta gli archivi on-line del CACD - Canadian Astronomy Data Centre.

In questo caso devo accedere al CADC Data Web Service, ma il CACD non mette a disposizione un vero client come quello dell'ESO, integrabile in modo umano in sistemi automatici, o forse non ho le credenziali per accedervi, infatti non ne ho trovato traccia sul sito, almeno sino alla data di stesura di questa relazione.
Il processo, ad essere buoni, è l'apoteosi della complicazione, ad essere onesti, è un metodo peregrino e macchinoso - e richiede una serie di interazioni con il server remoto prima di giungere al dowload delle immagini.
Il metodo del CADC Data Web Service è anche perverso perché presuppone la conoscenza a priori del codice identificativo assegnato dal CADC all'oggetto di cui si richiede l'immagine. Tutte queste barriere, rispetto alla semplicità del client ESO, mi inducono a pensare che la cosa sia voluta per scoraggiare i non addetti ai lavori.
Non mi sono dannato sull'argomento, ho letto la documentazione, l'ho tradotta (qui) ed ho provato la procedura. Dopo aver passato un po' di tempo sul server, ho deciso di evitare il ricorso a questo database con metodi automatici, ricorrendo al CADC solo con le metodiche d'accesso che ho descritto in precedenza, il CADC Query by Object Name oppure il CADC Query by list, di cui mi domando perché non vi sia un client per PC!
Ne parlo solo per non buttare via il lavoro di giorni e quindi condividere l'esperienza.
Magari qualcuno ha trovato o è in grado di suggerire una via meno intricata per accedere in automatico al CADC Data Web Service con successo, quindi sono disponibile ad un confronto.
Macchinoso il metodo, macchinosa anche lo spiegazione che mi accingo a dare.
Per interagire con il CADC Data Web Service si ricorre al metodo GET del protocollo HTTP (spiegato più avanti).
È anche necessario verificare i possibili codici d'errore nel caso in cui si tenti, inavvertitamente, d'accedere a dati che non sono di pubblico dominio, o che l'immagine richiesta non esista.
In linea di principio, per scaricare un file dal data web service, è necessatio lanciare un comando di HTTP GET all'URL che identifica il file che contiene l'immagine.
Per quanto riguarda il formato dell'URL per il servizio dati, il CADC indica questa sintassi:

 
  <http|https>://<data service resource>/<archive>[/namespace]/<fileID>
 
i cui campi hanno questi significati:

data service resourceobbligatorioÈ l'URL che identifica il punto d'accesso al servizio DSS (Vedi tabella)
archive obbligatorioIdentifica gli archivi, che sono: BLAST, CFHT, CGPS, DAO, GEMINI, HST, IRIS, JCMT, MACHO, VGPS, VOSpace
namespace facoltativo Identifica il percorso o la cartella del file
fileID obbligatorioIdentifica il file

data service resources assume i seguenti valori:
http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub Risorsa pubblica per il recupero dei DSS. Il protocollo HTTP non richiede le credenziali dell'utente collegato; se per caso si accede a dati riservati, il sistema ridirige all'URL ../data/auth, richiedendo una userid e password.
http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/auth Risorsa riservata agli utenti accreditati al CACD. Richiede la userid e la password di autoenticazione e autorizzazione
https://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub Si tratta del classico SSL data file transfer. È richisto un client certificato per collegarsi. L'accesso è coinsentito solo in base alle credenziali contenute nel certificato
http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/availability Questa è una risosrsa utilizzabile per verificare la disponibilità del servizio DSS. Un comando HTTP GET a questo URL produce un documento XML che descrive lo stato del servizio DSS

Le opzioni per il comando HTTP GET, ossia i parametri ausiliari, quindi non obbligatori, all'URL, quando si usa per richiedere uno specifico file, sono due: ritaglio e sezione, mutualmente esclusivi (o si usa uno o si usa l'altro o nessuno dei due):

cutout: [numero dell'estensione][sezione d'immagine] Quando si richiede un file di tipo FITS, è possibile includere una serie di ritagli, in modo che solo le porzioni richieste siano recuperate dall'archivio. Un singolo parametro di catout pu&eograve; essere inserico come suffisso all'identificatore del file inserito nell'URL (vedi esempi al fonfo della pagina).
sintassi del ritaglio:
[1:512:2,2:512:2] apre un'immagine da 256×256 composta dalle colonne dispari (primo asse) e dalle colonne pari (secondo asse) dell'immagine nella matrice primaria del file.
[*,512:256] apre un'immagine composta da tutte le colonne dell'immagine originale, ma dalle sole righe comprese tra 256 e 512. L'immagine sarà ribaltata lungo il secondo asse, dato che il pixel iniziale (512) è maggiore di quello finale (256).
[-*,*] preleva un'immagine intera, ribaltata lungo il primo asse.
[3][1:256,1:256] apre una sottosessione dell'immagine che si trova nella terza estensione del file.
range: bytes=- (bytes x-y)
bytes=- (tutti i bytes, ad iniziare da x)
bytes=- (gli ultimi x bytes)
L'utente può scaricare una porzione specifica di qualunque file utilizzando questo specifico parametro (vedi esempi al fonfo della pagina).

Ad esempio, per scaricare tutto il file etichettato I001B3H0.fits dall'archivio IRIS (da non confondere con il programma di analisi e calibrazione) è necessario un HTTP GET al seguente URL:

 
  http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/IRIS/I001B3H0.fits
 
Chiaramente, se scrivo la riga nella casella del browser dedicata all'URL (basta provare...), il metodo GET è connaturato alla natura dell'interfaccia, e l'immagine mi appare a video, ma siccome lo scarico dei files di confronto deve essere automatico, devo ricorrere ai comandi che Linux mi mette a disposizione: wget, già visto in precedenza, e curl.
Non solo, se I001B3H0.fits non esiste, mi appare un messaggio sulla pagina del browser, mentre con un metodo iterativo effettuato da un programma, è necessario controllare che sia ricevuta il codice di risposta HTTP/1.1 200, stante ad indicare che il server sta per inviare il file al mio computer.
Sarebbe quindi bene verificare l'esistenza e le autorizzazioni per ciascun file prima di tentare lo scarico. L'URL è ovviamente sempre lo stesso da cui prelevare l'immagine.
La porzione HEAD del protocollo HTTP restituisce al suo interno la conferma dell'esistenza, le autorizzazioni ed una serie di meta-data riguardanti il file.
Per vedere gli headers, prima del downloading, uso l'opzione --head:
 
 con curl:          curl --location --head
           oppure   curl -L -I

 con wget:          wget --server-response --spider

 se curl non fosse residente su UBUNTU, lo si istalla in questo modo:

 paolo@nova:~/SN$ sudo apt-get install curl

 per conoscere tutte le opzioni offerte

 paolo@nova:~/SN$ curl --help
 
Gli headers con prefisso X- sono tipici del CADC, gli altri sono quelli standard del protocollo HTTP 1.1.
HTTP Header Spiegazione
Content-Type The mimetype of the file (optional: only present if type is known)
Content-Encoding The type of encoding (typically compression) used (optional)
Content-Disposition Contains a suggested filename for clients that will write the file
Content-Length Size of the file as delivered
Content-MD5 The MD5 digest of the contents of the file.
Last-Modified Date of the last file modification (optional: not present when modified during delivery)
X-Uncompressed-Length The size of the uncompressed file, in bytes (optional: not present when modified during delivery)
X-Uncompressed-MD5 The MD5 digest of the contents of the file when uncompressed. (optional: not present when modified during delivery)
X-CADC-Stream The name of the Stream to use when performing a PUT request. (optional: Default Stream is used when none specified.)

Ad esempio:
voglio leggere i meta-data (headers) di un'immagine dell'archivio CFHT, di cui conosco l'identificativo, che in questo caso ` 806045o.
Devo usare l'URL http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o passandolo come parametro al comando Linux curl. Nella shell scrivo:

 
  paolo@nova:~/SN$ curl -v --location-trusted -g --head \
                   "http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o"
 
Con l'opzione -v (verbose), sulla shell ottengo la seguente risposta:
* About to connect() to www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca port 80 (#0)
*   Trying 132.246.217.5... connected
* Connected to www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca (132.246.217.5) port 80 (#0)
> HEAD /data/pub/CFHT/806045o HTTP/1.1
> User-Agent: curl/7.21.6 (i686-pc-linux-gnu) libcurl/7.21.6 OpenSSL/1.0.0e zlib/1.2.3.4 libidn/1.22 librtmp/2.3
> Host: www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca
> Accept: */*
> 
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Date: Wed, 28 Nov 2012 22:47:45 GMT
Date: Wed, 28 Nov 2012 22:47:45 GMT
< Content-MD5: 4b13b6163b29b4e73f7f00b23534d701
Content-MD5: 4b13b6163b29b4e73f7f00b23534d701
< ETag: 4b13b6163b29b4e73f7f00b23534d701
ETag: 4b13b6163b29b4e73f7f00b23534d701
< Content-Encoding: x-fits
Content-Encoding: x-fits
< Last-Modified: Sun, 31 Jul 2005 11:47:03 GMT
Last-Modified: Sun, 31 Jul 2005 11:47:03 GMT
< Content-Disposition: inline; filename=806045o.fits.fz
Content-Disposition: inline; filename=806045o.fits.fz
< X-Uncompressed-Length: 707330880
X-Uncompressed-Length: 707330880
< X-Uncompressed-MD5: e343bd22f48767456c0b15a0ca922f19
X-Uncompressed-MD5: e343bd22f48767456c0b15a0ca922f19
< X-File-CRC: 2c73417f
X-File-CRC: 2c73417f
< X-Uncompressed-CRC: 581dec4b
X-Uncompressed-CRC: 581dec4b
< Content-Type: application/fits
Content-Type: application/fits
< Content-Length: 205580160
Content-Length: 205580160
< Connection: close
Connection: close

< 
* Closing connection #0
paolo@nova:~/SN$ 

Come si vede, mi trovo la stringa HTTP/1.1 200 OK (qui in neretto), dove il codice 200 è il codice HTTP che indica l'esistenza del file 806045o.
Questo insieme prolisso di meta-dati può essere letto (a fatica) da un umano, ma posso altresì sfruttare le potenzialità di Linux per creare dei filtri sintattici e prelevare solo le parti che interessano, sfruttandole per algoritmi decisionali.
Si può quindi utilizzare il Content-Disposition restituito nell'header a fronte di un HTTP GET per indicare a wget di scrivere i dati scaricati all'interno di un file di cui si specifica il nome, usando l'opzione --content-disposition, abbinata alla no-clobber per evitare di sovrascrivere files già scaricati in precedenza.
Non esiste un'opzione simile a wget --content-disposition per il comando curl, per questo è necessario utilizzare la pipe per concatenare una serie di comandi ed effettuare un parsing per il Content-Disposition ed il nome del file, quindi prelevare il file e scriverlo su disco con quello specifico nome.
Occorre prestare attenzione agli URL che specificano comandi di ritaglio (cutout), in quando il nome del file suggerito all'interno del mata-name Content-Disposition include una parte supplementare. Questa parte del nome serve per evitare che diversi ritagli dello stesso file siano sovrascritti nella cartella di lavoro.
Questo è un esempio di come estrarre il nome del file dal meta-data Content-Disposition:

 
 paolo@nova:~/SN$ curl -s -g --head "http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o" \
               | grep Content-Disposition | awk -F '=' '{print $2}'
 
Sulla shell mi aspetto la stringa 806045o.fits.fz

Uno script più sofisticato può essere questo, che chiama curl due volte: la prima per prelevare il contenuto dell'header e la seconda volta per prelevare i dati e scriverli nel nome del file suggerito.
Creo un nuovo file con un editor; lo chiamo CADC-Get. All'interno scrivo i seguenti comandi:

 
  #!/bin/bash
  URL=$1
  FNAME=`curl -s -g --head $URL | grep Content-Disposition | awk -F '[=\r]' '{print $2}'`
  echo "recupero: "$FNAME
  curl -g -o $FNAME $URL
 
Lo salvo e da una shell Linux avvio lo script, passandogli l'URL
 
  paolo@nova:~/SN$ CADC-Get "http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o"
 
Sapendo per certo dell'esistenza del file 806045o, lo scarico in questo modo:
 
  paolo@nova:~/SN$ curl --location-trusted -g -o 806045o.fits \
                   "http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o"
 
sulla shell compare lo stato d'avanzamento del dowload, sino alla sua conclusione
 
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  1  196M    1 2419k    0     0  39399      0  0:26:57  0:01:02  0:25:55 19450
 
Dopo tanto attendere, ecco l'immagine:


Esempi d'uso di durl con URL e relativi parametri, come da indicazioni del sito CADC

Il ricorso all'opzione -g è necessario per disabilitare il globbing; in questo modo, curl ignora i caratteri & all'interno dell'URL.
L'archivo di riferimento è CFHT.

Ritaglio di una singola estensione
 HTTP GET a: http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o?cutout=[1]
 paolo@nova:~/SN$ curl --location-trusted -g -o 806045o-cutout1.fits  \
                  "http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o?cutout=[1]"
Ritaglio con le coordinate in pixel
 HTTP GET a: http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHTSG/D3.IQ.R.fits[9979:10490,10573:11084]
 paolo@nova:~/SN$ curl --location-trusted -g -o D3.IQ.R.9979_10490_10573_11084.fits  \
                  "http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHTSG/D3.IQ.R.fits[9979:10490,10573:11084]"
Ritaglio con indicazione d'estensione e coordinate in pixel
 HTTP GET a: http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o?cutout=[1][1:100,1:200]
 paolo@nova:~/SN$ curl --location-trusted -g -o 806045o-cutout2.fits  \
                  "http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o?cutout=[1][1:100,1:200]"
Titaglio con estensioni multiple
 HTTP GET a: http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o?cutout=[1]&cutout=[2]
 paolo@nova:~/SN$ curl --location-trusted -g -o 806045o-cutout3.fits  \
                  "http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o?cutout=[1]&cutout=[2]"
Ritaglio ad estensioni multiple con le coordinate in pixel
 HTTP GET a: http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o?cutout=[1][10:120,20:30]&cutout=[2][10:120,20:30]
 paolo@nova:~/SN$ curl --location-trusted -g -o 806045o-cutout4.fits  \
                  "http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o?cutout=[1][10:120,20:30]&cutout=[2][10:120,20:30]"
Ritaglio con estensione singola (semplificato, senza ?cutout=)
 HTTP GET a: http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o[1]
 paolo@nova:~/SN$ curl --location-trusted -g -o 806045o-cutout5.fits  \
                  "http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o[1]"
Estensioni e ritaglio con coordinate in pixel (semplificato, senza ?cutout=)
 HTTP GET a: http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o[1][1:100,1:200]
 paolo@nova:~/SN$ curl --location-trusted -g -o 806045o-cutout6.fits  \
                  "http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o[1][1:100,1:200]"
Scarica il file 806045o, ma solo l'intervallo di bytes 200-500
 HTTP GET a: http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o
 paolo@nova:~/SN$ curl --location-trusted -g -o 806045o.fits -H "Range: bytes=200-500"  \
                  "http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o"
Scarica il resto del file 806045o, a partire dal byte 500
 HTTP GET a: http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o
 paolo@nova:~/SN$ curl --location-trusted -g -o 806045o.fits -H "Range: bytes=500-"  \
                  "http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o"
Scarica solo gli ultimi 2000 bytes del file 806045o
 HTTP GET a: http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o
 paolo@nova:~/SN$ curl --location-trusted -g -o 806045o.fits -H "Range: bytes=-2000"  \
                  "http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o"
Visualizza (opzione -v) i meta-data dell'immagine 806045o
 HTTP HEAD a: http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o
 paolo@nova:~/SN$ curl -v --location-trusted -g --head  \
                  "http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o"
Visualizza (opzione -v) i meta-data dell'immagine 806045o sottoposta al ritaglio con estensione singola
 HTTP HEAD a: http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o?cutout=[1]
 paolo@nova:~/SN$ curl -v --location-trusted -g --head  \
                  "http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o?cutout=[1]"
Visualizza (opzione -v) i meta-data dell'immagine 806045o sottoposta al ritaglio con estensione singola (semplificato, senza ?cutout=)
ricorda che --location-trusted è uguale a -L
 HTTP HEAD a: http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o[1]
 paolo@nova:~/SN$ curl -v -L -g --head  \
                  "http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/806045o[1]"
Trasferisce il file nuovoFile, che si trova al percorso specificato, nel catalogo CFHT (area pubblica)
L'opzione -T indica la funzione di transfer
 HTTP PUT to: http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/nuovoFile
 paolo@nova:~/SN$ curl -T /percorso/nuovoFile  \
                  "http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/nuovoFile"
Cancella il file nuovoFile dal catalogo CFHT (area pubblica)
L'opzione -X richiede il comando come parametro, in quesot caso DELETE (cancella)
 HTTP DELETE to: http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/nuovoFile
 paolo@nova:~/SN$ curl --location-trusted -X DELETE  \
                  "http://www.cadc-ccda.hia-iha.nrc-cnrc.gc.ca/data/pub/CFHT/nuovoFile"

Python ad uso scientifico e astronomico

Chiunque sappia programmare può, con il tempo, creare programmi ad hoc in base alle proprie necessità. Python 2.X e relative librerie per le interfcacce e seriali e parallele, nonché i vari pacchetti scientifici completamente gratuiti, offre grandi possibilità.
Scaricare Python non costa nulla poicé è fornito sotto licenza GPL compatibile (http://www.python.org/psf/license/).
Linux lo include di serie nelle varie distribuzioni, librerie scientifiche e per la gestione delle periferiche comprese. Nel caso di un Windows OS è necessario seguire alla lettera la seguente procedura (NON scaricare mai la versione 3.0):

    scaricare ed istallare Python 2.7
    https://www.python.org/downloads/release/python-2710/
    scaricare ed istallare l'estensione per Windows
    http://sourceforge.net/projects/pywin32/
    Scaricare e istallare il modulo per la seriale
    https://pypi.python.org/pypi/pyserial
    scaricare e istallare i moduli GUI Python compatibili con la versione di Python 2.x
    http://www.wxpython.org/download.php#msw
    scaricare ed istallare le librerie WXglade
    http://sourceforge.net/projects/wxglade/

Software del progetto per la ricerca di supernovae extragalattiche (per Linux)

Posso condividere alcuni programmi da me scritti, per gli altri mi sembra corretto chiedere un minimo di collaborazione per perfezionarli o migliorarli.
I programmi, se non diversamente indicato, sono utilizzabili unicamente con il sistema operativo Linux UBUNTU 14.02.

IL SOFTWARE CHE POSSO CONDIVIDERE È GRATUITO MA FORNITO COSÌ COM'È, OSSIA PRIVO DI GARANZIE DI ALCUN TIPO E SENZA INTERVENTI DI PERSONALIZZAZIONE.
NON PRESTO ALCUNA GARANZIA IMPLICITA O ESPLICITA, COMPRESE LA GARANZIA D'IDONEITÀ PER SCOPI SPECIFICI, DI COMMERCIABILITÀ, DI NON ARRECARE DANNI A TERZI O COSE E DI NON VIOLARE DIRITTI DI PROPRIETÀ INTELLETTUALE ALTRUI.
NOTA: IL RISCHIO DERIVANTE DALL'USO DEL SOFTWARE È E RIMANE INTERAMENTE A CARICO DELL'UTENTE.



2.7.x
    Orologio Siderale — versione per WINDOWS Xp

    Questo programma apre una finestra dove sono indicati il Giorno Giuliano (JD), l'ora civile locale, il tempo universale (GMT) e l'ora siderale locale in base alla longitudine del luogo e della fascia oraria (time zone) selezionate dall'utente.

    I calcoli utilizzano la data di sistema, quindi assicuratevi che sia corretta.

    Orologio Siderale — versione per Linux UBUNTU 14.02

    Questo programma apre una finestra dove sono indicati il Giorno Giuliano (JD), l'ora civile locale, il tempo universale (GMT) e l'ora siderale locale in base alla longitudine del luogo e della fascia oraria (time zone) selezionate dall'utente.

    I calcoli utilizzano la data di sistema, quindi assicuratevi che sia corretta.

    Parser per il catalogo RC3 (Third Reference Catalogue of Bright Galaxies)

    Il codice legge il file "RC3catalog.txt", che potete prelevare qui (è un ASCII di circa 2,14MB) e, tramite una serie di filtri esclusivi impostabili dell'utente, produce un file ridotto con le sole galassie d'interesse, chiamato "RC3ridotto.txt".
    Quest'ultimo file, che contiene il nome dell'oggetto, le coordinate equatoriali e la magnitudine, potrà essere utilizzato per la generazione di un database con i dati utili alla guida remota di un telescopio.

    Generatore del database delle galassie fotografabili — versione 3.00 del 21.11.12

    Il codice legge il file "RC3ridotto.txt", che contiene il sott'insieme di oggetti ritenuti idonei all'osservazione da parte dell'utente e, tramite una serie di filtri impostabili, produce una coppia di database che saranno utilizzati per la guida automatica e per recuperare le immagini di confronto.
    La nuova versione del 21.11.12 corregge un baco che non permetteva di aggiungere in elenco le galassie osservabili una volta superato il limite in A.R. delle 24h 00'.

    Guida Celestron C8 Advanced GT + Reflex o CCD a fuoco diretto — versione 3.00 del 21.11.12

    Il codice apre il database delle galassie selezionate in precedenza e ne preleva sequenzialmente le coordinate equatoriali, quindi avvia il puntamento dei singoli oggetti e la loro ripresa rispettando i tempi tecnici imposti nei parametri di filtro usati con il precedente programma.
    Il programma sfrutta due seriali (reali o simulate via USB) per pilotare la testata equatoriale e la Reflex digitale oppure il CCD.
    L'unica condizione da rispettare è che il telescopio sia già messo in stazione e allineato al polo secondo la procedura richiesta dal sistema Nexstar. In caso contrario, la procedura non parte fintanto che non rileva l'indicazione di allineamento polare completato.

    Procedura di confronto tra foto e immagini campione — versione 3.00 del 21.11.12

    Questo è il "il programma del giorno dopo", ossia il codice di lettura del database delle galassie fotografate che si preoccupa di scaricare le immagini di confronto dal catalogo DIGITAL SKY SURVEY DSS, opportunamente scalate, e di avviare il confronto a video.
    Sono disponibili due opzioni; una FULL-AUTO con analisi digitale d'immagine e la classica tecnica del blinking, per la verifica visuale.

Sotto Linux, o si rende eseguibile il programma in Python con il comando chmod ugo+x nome_programma e quindi lo si avvia con

 paolo@nova:~/SN$ ./ParserRC3catalog.pyc
oppure lo si avvia direttamente dall'interprete python, scrivendo sulla shell:
 paolo@nova:~/SN$ python ParserRC3catalog.pyc
Sotto Windows OS, con Python regolarmente istallato, è sufficiente lanciare il modulo ".pyc" con il classico doppio-click sull'icona.


© Paolo B.
www.000webhost.com