Ce topic à pour objectif de définir l'expression du besoin pour le nouveau projet logiciel de visualisateur/editeur de fichiers OIFITS.

N'hesitez pas à modifier le contenu de ce topic ou simplement laisser un message wink

Cahier des charges pour un OI-FITS viewer

Intro

OlivierChesneau : Il existe déjà beaucoup de fits viewer comme fv qui est très satisfaisant. Le développement d'un OI-FITS viewer doit répondre à des besoins spécifiques en interférométrie. Ci dessous une liste de 'v½ux au père Noel'. Elle regroupe des besoins variés. Il ne faut pas cacher le fait que l'intérêt du viewer est d'autant plus grand qu'il a des fonctions de trie des données élaborées. Ce type de fonctions ne sont pas simples, loin de là…

Fonctions

Fonctions communes à tout Fits viewer

  • Importer, exporter,
  • Manipuler les données et les headers,
  • Visualiser les données de chaque champ (plot ou image)

Fonctions spécifiques à l'interférométrie

Manipulation de fichier(s)

  • Pouvoir séparer ou joindre des OI-FITS sur les critères suivants
    • Séparer / sélectionner / binner des données: filtres sur les dates/heures, les fréquences spatiales, les longueurs d'onde, les angles horaires, les barres d'erreur.
    • Binner des données avec positions similaires dans l'espace des fréquences spatiales (implique un bon traitement statistique avec prise en compte des erreurs),
    • Binner des données dispersées ou possibilité d'extraire des données dans un filtre de bande spectrale de largeur donnée,
    • Binner des données prises à des moments similaires ou séparer des données qui ont été prises à des moments éloignés. Possibilité de faire des comparatifs temporels.
    • Possibilité de faire des sélections/bin différents pour les V2 et les CP.

Visualisation

    • Visualisation systématique après modification des jeux de données donc basée sur mêmes critères, en y ajoutant un code couleur ou symbole pour des oifits provenant d'instruments différents (voire, pour un même instrument, pour les oifits obtenus avec des modes spectraux et instrumentaux différents)
    • Visualisation visibilité versus fréquence spatiale avec code couleur pour la direction de la base projetée
    • Visualisation visibilité versus angle de position de la base, avec code couleur pour la fréquence spatiale,
    • Idem pour les clôtures de phase.
    • Visualisation des couvertures uv avec code couleur pour la longueur d'onde ou pour le temps, ou pour la valeur (ou intervalles?) de l'erreur sur la mesure, ou pour la valeur de la CP, ou de la visibilité …
    • Visualisation de points de visibilités similaires au cours du temps pour détecter des variations temporelles ou des problèmes instrumentaux,
    • Pouvoir zoomer sur les graphs avec la souris
    • Pouvoir superposer des courbes continues de modèles

Priorité viewer simple
  • plot des visibilités carrées / visibilités différentielles en fonction de la base projetée.
  • plot des visibilités carrées / visibilités différentielles en fonction de la fréquence spatiale projetée.
  • plot des visibilités carrées / visibilités différentielles en fonction de l'angle de position de la base.
  • plot des visibilités carrées / visibilités différentielles en fonction de la longueur d'onde.
  • plot des visibilités carrées / visibilités différentielles en fonction de l'angle horaire.
  • plot des clotures de phase en fonction de la base projetée maximale du triangle.
  • plot des clotures de phase en fonction de la fréquence spatiale projetée maximale du triangle.
  • plot des clotures de phase en fonction de la longueur d'onde.
  • plot des clotures de phase en fonction de l'angle horaire.
  • plot des phases différentielles en fonction de la longueur d'onde.

Avec d'office, l'ordonnée des visibilités entre 0 et 1 (pour les clôtures et les phases différentielles entre min/max) et l'abscisse entre le max et le min de la valeur, mais avec possibilité de zoomer et de-zoomer.

Interaction avec les plots

  • Pouvoir isoler ('flagger') et supprimer facilement (en cliquant?) tout point aberrant (sur les critères mentionnés ci dessus (date/heure, erreur, etc) mais aussi avoir la possibilité de le faire en sélectionnant une base en particulier).
  • Pouvoir créer en sortie un nouveau fichier nettoyé (manuellement ou sous critère basé sur la barre d'erreur),
* Pouvoir générer un fichier OI-FITS calibré à partir de plusieurs fichiers OI-FITS 'bruts' d'une source de science et d'un ou plusieurs calibrateurs.
  • Pouvoir visualiser une selection de point de plots dans une table ou sur un plot lié a ces points de mesure (plan UV inclut)

Validation

  • Valider vis a vis de la norme : mode simple / detaillé (en evitant les répétitions inutiles)
  • Indiquer l'impact que peuvent avoir les erreurs du fichier
  • Proposer de corriger les erreurs simples (a priori difficile a realiser)

Fonctions générales

  • Pouvoir exporter les graphes en PDF.
  • Pouvoir exporter les graphes sous format ascii pour réutilisation dans un autre outil de plot.
  • Afficher les infos pertinentes permettant de caracteriser un fits a premiere vue ( nbr bases, nbr longueurs d'onde, nbr vis vis2 t3, tbd... ) probablement en lien avec la reflexion portail Oifits.

Produits existants sur lesquel s'inspirer, avoir des specifications de codage:

+ commentaires ci-dessous

Commentaires

From Aspro2 OIFits viewer specs

" This component is a generic OIFits file viewer to plot visibilities that must be interoperable with Aspro 2, LITpro ...
A new JMMC module named OITools is in development. Main functionalities are :

  • load completely an OIFits file : done
  • validate an OIFits file (OIValidator like) or an object model (before saving the file) : done
  • save an OIFits file : done
  • text summary : provide a textual description of an OIFits file (xml / xslt) with baseline, target, wavelength band, min-max(data) and error_min/error_max(data) for few data columns (VIS, VIS2, T3) - see what is pertinent to users
  • plot VIS, VIS2, T3 like Aspro OIFits Explorer (pdf export)
  • feature to investigate : reuse and compute the theoretical model to plot on the uv coverage and visibility and phase plots
  • uv coverage plot
  • GUI must support handling multiple OIFits files to provide a comparison tools (plots, uv coverage)
  • display data tables and header information (meta data) with widgets (readonly and later editable)
  • provide a data selection tool to flag data as invalid

It uses the nom.tam fits library from HEASARC instead of eso JFits library to support both reading and writing Fits files. "

Liste de priorités (Dec 2012, discussion Myriam+JB)

Priorité 0

  • fonctions de visualisation d'ordre 0 sont déjà disponibles dans le prototype.
  • code couleur pour les différentes bases / instruments / interféromètre
  • afficher les infos pertinentes (Nbases, Nlambda, NVis, NVis2, NT3)

Priorité 1

  • notion de subset: pouvoir sélectionner un jeu de données. Cela peut être sous la forme d'une sélection en lambda (ex: de 2.1 à 2.2 pour avoir la raie Brackett Gamma) ou en base (ex: de 80 à 120 m de base) ou en angle de position (ex: le long de PA=170deg parce que je pense que mon disque est orienté dans cette direction)

Priorité 2

  • pouvoir appliquer des fonctions (qui vont altérer les données) à des subsets en longueur d'onde.
  • Cela peut être une moyenne (ex: j'ai 15 canaux spectraux dans la bande H mais je voudrais pour me simplifier la vie commencer par travailler en large bande, et n'avoir qu'une visibilité et CP sur la bande H pour cette observation)
  • ou un binnage (ex: j'ai 1500 canaux spectraux entre 2.0 et 2.4 microns, ce qui m'intéresse est uniquement la raie Brackett gamma qui se situe à 2.166 et englobe seulement 10 canaux spectraux. Je veux pouvoir soit réduire le nombre total de canaux spectraux : je binne tous les 5 canaux spectraux, et je n'ai plus que 300 canaux au total, dont 2 dans ma raie.) On peut imaginer un gui qui me demande de définir à la main, le lambda_min, lambda_max et nombre de canaux spectraux dans cet intervalle.
  • ou un binnage plus intelligent: ex: dans cet exemple, je voudrais avoir 2 canaux spectraux de part et d'autre de ma raie Brackett Gamma et 5 dans la raie. Le binnage dans la raie, ou en dehors, est différent. Je voudrais donc pouvoir définir autant de [lambda_min,lambda_max,N_lambda] que bon me semble. Par exemple, je ferai : dans le continu à gauche de la raie [2.0,2.155,2], dans le continu à droite de la raie [2.175,2.4,2] et dans la raie [2.155,2.175,5].

Priorité 3

  • pouvoir appliquer des fonctions à des subsets dans le plan UV.
  • par exemple, j'ai un super plan UV et en fait, mon code met 10 jours à tourner pour me fournir un modèle. Du coup, je n'ai pas le temps de chercher un bon fit sur tous mes points dans le plan UV, et j'aimerais regrouper les points avant de les fitter. Je vais choisir de regrouper les points dans le plan UV : soit en les regroupant par intervalles de temps (je bin les V2/CP des points toutes les 10 minutes), soit par intervalles d'angle de position (peu m'importe que la base soit différente, je veux voir tout ce qui se passe le long de PA~170 degres, donc je vais moyenner sur 15 degres autour de 170 degres).

Priorité 4

  • autres fonctions de visualisation: e.g., point dans le plan UV en fonction de la taille de l'erreur ou de la valeur de la CP (exemple representation des données SAM : Fig.3 (dernière page) de http://arxiv.org/pdf/1211.5721v1.pdf
  • cliquer pour flaguer
  • connecter le flag dans les tables exportées ou dans d'autres plots (e.g. je flag une V2 pourrie, et la CP correspondante s'affiche en rouge)
  • merger les oifits

-- LaurentBourges - 04 May 2012

Edit | Attach | Watch | Print version | History: r16 | r14 < r13 < r12 < r11 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r12 - 2012-12-19 - MyriamBenisty
 
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback