Cette page regroupe les informations pour le développement de la brique de production d'observables interférométriques pour un plan UV donné.
La vidéoconférence du 21 juin a permis de faire un premier contour de l'outil reporté dans les points ci-dessous que l'on complétera au fur et à mesure des développements itératifs.
Utilisation d'Aspro2 en ligne de commande pour production d'observables interférométriques
Descriptif générale
Entrées
- des cubes d'images (modèles rapides ou grilles de modèles). Fichier fits 2D/3D suivant le format des modèles utilisateurs, par ex. issue d'un code de transfert radiatif.
- des OIFits d'observation (observables spectro-interférométriques, plan uv, longueurs d'onde, etc), par exemple issu d'une observation réelle.
Sorties
- oifits avec les observables spectro-interférométriques identiques aux observations, mais issus des modèles
- chi^2 correspondant (éventuellement des cartes de chi^2 si on varie des paramètres géométriques tels que la distance et/ou l'angle de position de l'image)
Traitements
- calcul des observables (sans modèle d'erreur) en reutilisant la brique UserModel d'ASPRO2 mais pas l'export OIFITS existant car il faut rester au plus pres du format OIFITS en entrée (à étudier en profondeur comment adapter le code)
Proto V1
Deux besoins sont retenus pour la première itération
Besoin 1 : génération des observables interferométriques
Le logiciel doit produire un fichier OIFits avec les données simulées d'un modèle utilisateur d'après le plan UV fourni.
test 1.1
- jeux de données
- images d'entrée
- oifits d'entrée
-
- oifits de sortie (Référence) avec les mesures simulées (outil externe)
- Fichiers de références IDL_Achernar_all_Pionier_oiDataCalib_2012-09-17--image_disco_amhra.fis et IDL_Achernar_all_Pionier_oiDataCalib_2012-09-17--image_disco_amhra_UD2mas.fits
- Critères de validation:
- Le fichier de sortie du logiciel doit être équivalent au fichier Référence :
- même structure (tables, plan UV, temps ...)
- seules les valeurs VIS2DATA, (VISAMP, VISPHI) ou T3AMP, T3PHI doivent changer et correspondre à la simulation.
- Prototype réalisé (2017/7/26):
Aspro2 alpha:
http://jmmc.fr/~bourgesl/Aspro2/Aspro2-0.9.9.3beta5.jar
- Comparaison avec le prototype réalisée (2017/08/08):
- La comparaison avec une routine externe (routines IDL de Armando) semble être en bon accord pour les V^2 (petites différences probablement provenant de différences par exemple dans l'interpolation de l'image ?). Par contre il y a une grande différence pour la triple amplitude (T3AMP et T3PHI). D'après les testes (cf. fichier de comparaison OIFits Explorer) les différences semblent venir du fait que dans l'outil Aspro2 OIFits processor il y a du bruit qui est introduit. Cette conclusion vient principalement de la comparaison avec le modèle de disque uniforme (fichier image_disco_amhra_UD2mas.fits) pour lequel on connaît les valeurs théoriques des observables.
- Prototype corrigé (2017/9/11):
Aspro2 public:
http://jmmc.fr/~bourgesl/Aspro2/Aspro2-0.9.9.3.jar
-
- Correction du calcul des T3 (erreur dans les indices); aucun bruit n'est ajouté aux données simulées
- Comme T3Phi vaut 0 dans le test, il faudrait un autre modèle de test pour simuler des clôtures aux valeurs intéressantes (et non pas 0 ou PI) ce qui permettra de mieux les comparer
- Comparaison avec le prototype du 2017/9/11 réalisée (2017/09/15):
- Test avec disque uniforme de 2 mas: la comparaison avec du prototype corrigé avec une routine externe (routines IDL de Armando) montre (résultats_testes_prototype_2017-09.pdf) que maintenant les clôtures sont proches de la valeurs attendue, mais il y a encore une petite différence (dans le fichier pdf avec les comparaisons on voit une clôture 1e-4 a 1e-5 dans le prototype, quand les routines IDL donnent 1e-10 à 1e-13). Ces tests sont toujours faits avec un disque uniforme.
- Test avec un modèle "étoile+disque": la comparaison entre les deux routines sont en bon accord (mais certainement il y a toujours les différences du point précédent). Il y a aussi toujours une petite différence en V^2. J'ai remarqué aussi que dans OIFitsExplorer les longueurs d'onde affichées ne correspondent pas à celles du fichier fits avec l'image du modèle. Est-ce que les observables interférométriques sont bien calculées avec les longueurs d'onde du modèle ou une autre valeur ?
- ASPRO2 utilise les longueurs d'onde du fichier OIFITS fourni (OI_WAVELENGTH) et ne fait aucune interpolation sur les images (en longueur d'onde). Par exemple, si le fichier OIFITS donne lambda = 1.0 2.0 3.0 et que les images fournies sont à 1.5 2.5 3.5, comment ASPRO2 devrait 'corriger' le décalage de 0.5 entre OIFITS et le modèle ?
- Pour l'instant, il calcule les fréquences spatiales (OIFITS) et utilise l'image la plus proche à partir du modèle: soit Image(1.5), Image(1.5) et Image (2.5) pour les canaux 1.0 2.0 3.0 donc la 3eme image n'est pas utilisée car la distance (2.5-2.0=(3.5-3.0) !
- Comparaison avec le prototype du 2017/9/11 réalisée (2017/10/13):
- A cette date j'ai (Armando) rajouté une comparaison plus détaillée entre les OIFits ASPRO2 et ceux des routines IDL de Armando. Les résultats sont inclus dans le fichier résultats_testes_prototype_2017-09.pdf. Dans ce fichier il y a des graphiques calculés avec une routine en Python. C'est intéressant de noter ce teste n'a pas pu être effectué en IDL car la routine read_oidata.pro de J.Monnier n'arrive a lire le OIFits créé par ASPRO2. On voit mieux maintenant les différences entre le prototype et la routine IDL externe. Ces différences sont plus faibles pour le modèle de disque uniforme que pour le modèle "étoile+disque". Probablement ces petites différences sont la conséquence de la différence de gestion des longueurs d'ondes et donc des fréquences spatiales (cf. point précédant).
- Comparaison avec le prototype du 2017/9/11 réalisée (2017/11/03):
- Comme suite à la réunion du 16 octobre j'ai (Armando) fait la comparaison entre le prototype et mes routines IDL en utilisant un modèle de disque uniforme de grand diamètre (6 mas). L'image et les résultats sont attachés (image_disco_amhra_UD6mas.fits et resultats_testes_prototype_2017-11.pdf). J'ai aussi changé la gestion des longueurs d'onde pour avoir quelque chose de plus semblable au prototype. Les résultats dans resultats_testes_prototype_2017-11.pdf montrent un bon accord entre les deux routines.
- Prototype corrigé (2017/11/20):
Aspro2 public:
http://jmmc.fr/~bourgesl/Aspro2/Aspro2-0.9.9.4beta1.jar
-
- support des nouvelles options: -fast=true/false -supersampling=1..n -math=FAST/DEFAULT
- voir liste des options ci-dessous:
Il faut utiliser la ligne de commande pour fournir les options:
[-process] process an OIFITS file and model to compute observables
[-image] the input FITS model to process
[-input] the input OIFITS file to process
[-output] the output OIFITS file to write (optional)
[-fast] [true] to ignore useless data; false to have highest precision
[-supersampling] supersampling per spectral channel [3]
[-math] Math mode: ['FAST'] faster, 'DEFAULT' highest accuracy or 'QUICK' fastest BUT low accuracy
Voici un exemple pour les fichiers de test 1.1:
DIR=./src/test/resources/amhra/
INPUT=Achernar_all_Pionier_oiDataCalib_2012-09-17.fits
IMAGE=aeri_rot_1.65um_hr.fits
OUTPUT="$INPUT--$IMAGE"
java -Djava.awt.headless -jar target/aspro2-TRUNK-jar-with-dependencies.jar -process -input $DIR/$INPUT -image $DIR/$IMAGE -output $DIR/$OUTPUT
IMAGE=image_disco_amhra.fits
OUTPUT="$INPUT--$IMAGE"
java -Djava.awt.headless -jar target/aspro2-TRUNK-jar-with-dependencies.jar -process -input $DIR/$INPUT -image $DIR/$IMAGE -output $DIR/$OUTPUT
ASPRO2 charge le fichier OIFits et le modèle (vérifie que les longueurs d'onde sont compatibles) puis calcule les observables (V2, T3) et VIS (experimental) avec un super-sampling spectral de 9 (9 samples par canal) puis sauvegarde le fichier au format OIFits (V1).
test 1.2
- Testes du prototype Aspro2-0.9.9.5beta8.jar avec scale et rotate (2018/09/29) (Aspro2 public: http://jmmc.fr/~bourgesl/Aspro2/Aspro2-0.9.9.5beta8.jar)
- Laurent a ajouté des champs scale (X/Y) pour définir les incréments en milli-arcsec et la rotation en degrés dans le GUI (donc valeurs absolues) et définit de même pour la ligne de commande. Par exemple "-scale 0.02 -rotate 24.5"
- Plusieurs testes réalisés par Armando:
- Différence de valeurs d'observables (e.g. V^2) constatée entre Aspro 0.9.9.4 et 0.9.9.5. D'après Laurent, effectivement les V2 sont un peu différentes ~ 8e-3 donc inférieure à 1%. Pour tes tests, Laurent recommande de FIXER les parametres suivants: "-fast=false -supersampling=5". Ainsi tu auras la précision maximale sur les OIFits, de manière reproductible. Cela a été le cas d'après les nouveaux testes d'Armando.
- Divers testes réalisés avec différentes valeurs et combinaisons de "-scale" et "-rotate" donnent des résultats cohérents.
- Étant donné que les tests valident la l'utilisation de rotate et scale nous allons faire les modifications pour introduire ces deux paramètres dans le prototype de l'outil de simulation (OIFitsModeler), pour qu'ils apparaissent dans l'interface web AMHRA.
Besoin 2 : fonctionner en ligne de commande
Le logiciel doit pouvoir être exécuté en ligne de commande. Pas de GUI.
* version python en ligne de commande (2018/05/19):
- Une version en ligne de commande en python a été créée (Armando) pour générer N oifits modèle avec aspro2 à partir de N oifits d'observation pour une image de modèle donnée comme entrée. Les chi^2 sont également calculés et écrits dans le header principal de chaque oifits modèle. J'ai placé un fichier .zip (oifitsmodeler_2018-05-18.zip) qui permet de tester la routine en ligne de commande avec un exemple contenant 2 oifits data, 1 image de modèle, 1 fichier d'input demandé par python, 1 script .sh pour lancer aspro2. Il faut aussi avoir un répertoir vide (e.g. oifits_model) pour contenir les oifits modèle. Pour lancer la roune python (3.X) il faut faire ceci: python oifitsmodeler.py test_input_oifitsmodeler.txt
test 2.2
- TODO : fournir
- url du programme
- syntaxe de la commande
- Critères de validation:
- La commande
- doit produire un fichier de sortie si les entrées sont valides
- doit générer une erreur si les entrées sont invalides
Plan de travail / Protos futurs
Lister ci-dessous les futurs besoins qui seront rajoutés au protos suivants après décision commune.
Besoin 3 : calcul d'un chi^2 / carte de chi^2
un programme doit pouvoir calculer un chi^2 ()
- Note
- OIFitsExplorer intégrera prochainement la possibilité de plotter simultanément obs/simu et rajouter l'info de chi^2 sera une excellente nouveauté
test 3.1
* TODO fournir le chi^2 ou la carte de chi^2 pour le fichier de référence de sortie du test 1.1
Besoin 4 : adoption du format de fichier standardisé pour IMAGE-OI pour le stockage des observables simulées
Le fichier de sortie doit correspondre au fichier d'entrée complété par les nouvelles colonnes
New column in OI VIS table |
Label |
Format |
Description |
MODEL VISAMP |
D(NWAVE ) |
Model of the visibility amplitude |
MODEL VISAMPERR |
D(NWAVE ) |
Model of the error in visibility amplitude (optional) |
MODEL VISPHI |
D(NWAVE ) |
Model of the visibility phase in degrees |
MODEL VISPHIERR |
D(NWAVE ) |
Model of the error in visibility phase in degrees (optional) |
New column in OI VIS2 table |
Label |
Format |
Description |
MODEL VIS2 |
D(NWAVE ) |
Model of the squared visibility |
MODEL VIS2ERR |
D(NWAVE ) |
Model of the error in squared visibility (optional) |
New columns in OI T3 table |
Label |
Format |
Description |
MODEL T3AMP |
D(NWAVE ) |
Model of the triple-product amplitude |
MODEL T3AMPERR |
D(NWAVE ) |
Model of the error in triple-product amplitude (optional) |
MODEL T3PHI |
D(NWAVE ) |
Model of the triple-product phase in degrees |
MODEL T3PHIERR |
D(NWAVE ) |
Model of the error in triple-product phase in degrees (optional) |
Voir le document de standardisation en ligne (table 3 en particulier):
test 4.1
- reprendre le jeu de fichiers de test 1.1 avec
- image d'entrée
- oifits d'entrée
- oifits de sortie de référence avec les mesures simulées dans les nouvelles colonnes
- Critères de validation:
- Le fichier de sortie du logiciel doit être équivalent au fichier de résultat de test 3 :
- même structure (tables, plan UV, temps ...)
- les colonnes VIS2DATA VISDATA ou T3 doivent correspondre exactement au fichier d'entrée
- les colonnes MODEL_VIS2DATA MODEL_VISDATA ou MODEL_T3 doivent correspondre exactement au fichier de référence
Besoin 5 : intégration dans le GUI ?
- est-ce utile dans l'interface graphique ASPRO2 de pouvoir extraire les conditions d'observations (target, interferometre, instrument = lambda + uv) d'un OIFITS et donc de gérer des données OIFITS ou juste le plan UV dans ASPRO2 ?
- pouvoir sélectionner des modèles (de cartes issues de codes/services externes) directement depuis l'interface d'Aspro (ici l'OIFits serait calculé suivant la config instrumentale interne à Aspro)
- faire le recensement des codes existants
Notes/remarques pour le plus long terme
- réutiliser le modèle de bruit d'ASPRO2