Ce topic à pour objectif de définir l'expression du besoin pour le nouveau projet logiciel de visualisateur/editeur de fichiers OIFITS.
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 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:
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
Réunion 8 Février 2016 (LBo, GDu, GMe, JBLB, MBe)
Pour commencer:
- Supprimer l'option "[] Draw line"
- Mettre les ranges par défaut -0.1 à 1.1 pour les visibilités. -190/+190 pour les CP et phase. Si valeurs en dehors de ces ranges, l'indiquer. Eventuellement mettre des box dans lequelles on rempli le range ou garder en mémoire la box du dernier zoom.
- Mettre une color by pour le temps, baseline PA, insname. Mettre un split by?
- Définir l'arborescence (visible sur la gauche). A DEFINIR!
- Pouvoir sélectionner un ensemble de données suivants differents criteres : 1-n oifits, 1-n tables ... (beaucoup de tickets)
- Pouvoir afficher le spectre (implementer GRAVITY, verifier avec Matisse et OIFits2, ne pas traiter AMBER qui est trop particulier) (Ticket 569 quasi fait!)
- Amélioration du tooltip (ticket 565): ne pas relier V2/T3.
- Eviter un plantage pour le cas d'un chargement de fichier OIFits sans table de données (voir cas donnée MIDI Myriam)
Par la suite:
- Faire en priorité 3 interfaces multiview par défaut pour GRAVITY MATISSE et PIONIER.
- Pouvoir supprimer une table, une target et exporter un oifits modifié (comment fait-on s'il y a plus d'un oifits en entrée ? )
--
MyriamBenisty - 10 February 2016