VEGA/CHARA Automatic control pipeline pour obtenir les informations de qualités de la nuit DM, V1 14-11-2009 1. Situation initiale (La nuit d’observation est finie) : a. L’observateur fait le ménage dans les répertoires de la nuit b. Le script de regroupement et rapatriement des données s’exécute et l’on a les données dans le répertoire de la nuit dans /datadisk1. c. Il faut copier ce répertoire dans /data1 2. Identifier dans le disque d’archive pour la nuit considérée et de manière automatique un jeu cohérent de répertoires vis-à-vis de la configuration spectrale en regardant dans chacun des fichiers .info et fichiers .logobs. Récupérer le réseau, la longueur d’onde et la configuration de chambre utilisée. Faire des lots cohérents pour la nuit. Un lot cohérent correspond à un fichier logobs et contient un ou plusieurs répertoires d’étoiles science, aucun un ou plusieurs répertoires d’étoiles de calibration et un répertoire avec la calibration spectrale de ce lot. La date et heure de ces répertoires étoile science et calibrateur ne peuvent pas être supérieur à la date de la calibration spectrale. a. Les programmes d’enrichissement de la base de données en Python savent lire les fichiers .info et logobs. 3. Pour chaque lot (boucle si X lots à monter d’un niveau probablement) : a. Définir un identificateur de lot. b. Copier ces données dans le répertoire /data/STAR/TEMP c. Appliquer sur le répertoire « prepare.sh » (shell .sh) qui : i. Converti les données et les placent dans /data/STAR/nomEtoileDate ii. Génère dans chaque répertoire nomEtoileDate un fichier .inp (exemple en annexe1) d. Générer un répertoire de calibration spectrale contenant les fichiers des coefficients, calculés automatiquement à partir des informations précédentes (calibration spectrale sommaire mais suffisante ou méthode plus sophistiquée) (TBD : définir les lois de calcul). Application à définir mais probablement en IDL. Les fichiers .disp générés sont mis dans /data/DISP . (Travail à faire sur les concepts proposés par Denis : codage + tests sur différentes résolution du spectro et différents jeux de données) e. Générer dans /data/AUTO/ un répertoire dont le nom est composé de : date/heure de la calibration spectrale + l’indentificateur de « lot ». f. Créer un répertoire Rouge et Bleu. g. Pour chaque répertoire à faire en Rouge et en Bleu i. Générer (litLp_R0) le fichier « inp » dans le répertoire de données et contrôler la validité des fichiers de photons (TBD : critère à définir comme nombre d’images, nombre de photons (vrais pas ceux indiqués dans les headers d’image), nombre de fichiers). ii. Générer le fichier de commande .cmd (modèle à définir en R et B) idem issu IHM. Générer ce fichier de commande en mode AC et pour une bande spectrale fixe centrée sur la longueur d’onde centrale et de largeur fixe dépendant du mode de résolution utilisée (TBD : définir les largeurs spectrales en fonction des modes). Voir exemple fichier en annexe2. iii. Générer la séquence de traitement et l’exécuter deux fois, une fois en mode normal (pic fixé sur le cumul) et une fois en mode détection du pic. Vega_gen_conf_file qui crée le script qui est ensuite lancé en csh « lance_ac ». iv. Générer un fichier en Postscript puis Pdf (TBD : à voir à partir de l’appli amdlib ) contenant les résultats du traitement sous forme graphique et table, à savoir : 1. Header contenant toutes les informations pertinentes (TBD) 2. V²(t) en mode cumul et en mode détection (courbe voir code IDL) 3. OPD(t) issu du mode détection (courbe voir code IDL) 4. Critères de qualité (SNR pic, correction trou…(TBD) 5. Table contenant les valeurs (liste des colonnes TBD) 6. Autres informations : TBD v. Générer un fichier OIFITS contenant les V² non calibrées mais avec corrections des biais systématiques (vega_post_ac_cal .. TBC) h. Pour un ensemble identifiable « Cal-*-Cal » de trois répertoires (méthode TBD à partir des mots clés du fichier info ou à partir de données fournies en input de la séquence (mais alors ce n’est plus automatique)) générer un fichier OIFITS des V² calibrées. i. Effacer les répertoires de traitement (automatique sinon ce sera lourd TBC) j. Effacer les données copiées (automatique sinon ce sera lourd TBC) et le répertoire de calibration qui a été généré (à priori non si solution à Denis généralisable TBC). 4. Mise à disposition de tous les fichiers pdf et oifits dans /data/RESULTS/nuitxxx (TBD : où et comment, duplication sur vegadrs ….) 5. Remplissage de la base de données a. Voir si ouverture de ports possible pour mise à jour de la base depuis MWI b. Idem pour transfert sur Vegadrs des fichiers adhoc (OIFits, pdf, calibrations, etc) peut être par NFS à travers le firewall ou mise en place d’un cable réseau entre vegadrs et le VPN de la salle Vega. c. Ajout de champs dans la base pour les liens vers fichiers OIFits et pdf 6. Archivage (c’était quoi ca déjà TBD : comment) 7. Sujet de stage d’IUT Avril/Mai 2010 voir annexe 4 Annexe 1 : Exemple fichier inp Annexe2 : Exemple de fichier .cmd en AC Annexe3 : Exemple de fichier lance_ac Annexe 4 : Sujet de stage d’IUT Titre : Automatisation du processus de réduction de données de l’instrument Vega Responsable du stage : Clausse Jean-Michel 0493405354 [email protected] Lieu du stage : Observatoire de la Côte d’Azur, Centre de Grasse Roquevignon Rémunération du stage : OUI, environ 1000€ Possibilité de CDD emploi d’été à la suite du stage probable selon extension possible du sujet. OS : linux fedora Langages : C, shell script, Python, IDL (idem matlab) Description : Ce stage porte sur l’automatisation d’un processus (pipeline) de traitement de notre instrument localisé près de Los Angeles en Californie sur le télescope Chara, télé opérable depuis Grasse. De nombreux éléments du pipeline existent sous différents langages (shell, C, IDL, Yorick, Python, base de données MySql, postscript). Il s’agira soit d’effectuer des appels de code existant soit de porter le code par exemple celui en Yorick (look C) vers du C par exemple. Le langage de structuration global est à définir (shell, Python, IDL) à la suite d’une étude approfondie du cahier des charges et l’inventaire de l’existant. Le stagiaire devra savoir s’adapter aux différents langages, appréhendé un peu les concepts scientifiques, être relativement autonome. C’est un sujet assez difficile qui sera immédiatement mis en opération.