Outils pour les suivis

Plusieurs outils ont été développés autour des suivis Eros afin de simplifier leur exploration.

  • DumpSuivi affiche les différents éléments d'un suivi sous la forme de tables
  • ExtendedLightcurve ajoute des informations sur les images et les dates d'observation aux courbes de lumière
  • RawCurve présente les mesures directement extraites d'un suivi dans un format inspiré des courbes de lumière
  • SuiviConvert assure la conversion d'un suivi dans un format alternatif.

Attention: ces outils sont encore expérimentaux et demanderait une évaluation plus poussée.

Dump Suivi

DumpSuivi est un outil pour l'exploration des fichiers de suivi. Bien qu'initialement destiné à l'étude et la compréhension de la structure interne des suivis binaires, DumpSuivi s'avère un outil utile pour l'exploration de tous les types de suivi. Optimisé pour un accès rapide aux suivis binaires, il présente des performances raisonnables avec les suivis JSon ou JSon GZip.

Utilisation

DumpSuivi est destiné à présenter sous la forme de tables le contenu des différents éléments d'un suivi. Les éléments pouvant être présentés sont l'entête du suivi, le bloc de commentaire, les signatures déclarées des éléments, les informations globales, la description des étoiles, la description des images ou l'ensemble des mesures.

DumpSuivi [options] suivi

Les options permettant d'accéder aux différentes structures du suivi sont les suivantes:

  • -header: présentation de l'entête
  • -stars: présentation des étoiles
  • -times: présentation des images
  • -all: présentation de toutes les données

Si aucune option de présentation n'est indiquée, seul l'entête du suivi est affiché. Cependant, l'option -header présente non seulement l'entête mais aussi le bloc de commentaires et le bloc des signatures. Ceci étant, ces deux blocs étant définis de manière statique dans le code C et n'étant pas strictement conforme à la structure du suivi, l'intérêt est un peu réduit.

Présentation par défaut

Par défaut, seul l'entête du suivi est présenté. L'exemple suivant montre l'accès à un fichier binaire traditionnel.

% DumpSuivi -verb lm01000krp501.sv
28-May-2021 17:32 (INFO) Loading binary suivi
28-May-2021 17:32 (INFO) Suivi report
#Suivi Parameters
Name          Programme Champ Camera Ccd Filtre Production Bloc Type   Nametype Byteorder
------------- --------- ----- ------ --- ------ ---------- ---- ------ -------- -------------
lm01000krp501 lm        010        0   0 r      p5            1 EROS_2 EROS_2   LITTLE_ENDIAN

#Header
Total Size Header Size Nb Stars Nb Mesures Mesures/Block Type Cor Marker SwapFlag
---------- ----------- -------- ---------- ------------- ---- ---------- --------
 139662445         217    32768        134            10   10        134   0xFFFF
28-May-2021 17:32 (INFO) Done

Fichier Json comprimé

Contrairement à l'accès à un fichier binaire qui peut être chargé partiellement si la présentation est réduite à l'entête, l'accès aux fichiers Json ou Json comprimé ne peut se faire que par la lecture de l'ensemble du fichier.

% DumpSuivi -verb lm01000krp501.json.gz
28-May-2021 17:33 (INFO) Loading other format suivi
28-May-2021 17:34 (INFO) Suivi report
#Suivi Parameters
Name          Programme Champ Camera Ccd Filtre Production Bloc Type   Nametype Byteorder
------------- --------- ----- ------ --- ------ ---------- ---- ------ -------- ---------
lm01000krp501 lm        010        0   0 r      p5            1 EROS_2 EROS_2

#Header
Total Size Header Size Nb Stars Nb Mesures Mesures/Block Type Cor Marker SwapFlag
---------- ----------- -------- ---------- ------------- ---- ---------- --------
 139662445         217    32768        134            10   10        134   0xFFFF
28-May-2021 17:34 (INFO) Done

Le temps de chargement est bien sûr plus long mais reste raisonnable.

Présentation des entêtes

Dans ce mode de présentation, le bloc d'entête, les commentaires et le bloc des signatures sont présentés.

% DumpSuivi -verb lm01000krp501.json.gz -header
28-May-2021 17:34 (INFO) Loading other format suivi
28-May-2021 17:35 (INFO) Suivi report
#Suivi Parameters
Name          Programme Champ Camera Ccd Filtre Production Bloc Type   Nametype Byteorder
------------- --------- ----- ------ --- ------ ---------- ---- ------ -------- ---------
lm01000krp501 lm        010        0   0 r      p5            1 EROS_2 EROS_2

#Header
Total Size Header Size Nb Stars Nb Mesures Mesures/Block Type Cor Marker SwapFlag
---------- ----------- -------- ---------- ------------- ---- ---------- --------
 139662445         217    32768        134            10   10        134   0xFFFF

#Record Signatures
Record       Signature
------------ -----------------------------------------------------------------------------------------------
SvGlobalInfo IIIIIIIFFFFFDDDDDDDDDDDDDDDDDDDDDDDDDDDDI
SvStarInfo   IIFFFFFFFFSSSSSSSSSS
SvTimeInfo   IIIIIFFFFFFFFFFFFFDDDDDDDDDDDDDDDDDDDDDDDDDDDDIFFIFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFSSSSISSFF
SvMesure     FFSSSSSSSSSSS

#Comments
Comments
--------------------------------------------------------------------------
 Fichier de suivi Type 10 (CCD EROS/ MARLY)
GlobInfo : NumCCD Couleur NumChamp IRes[4] AlphaHr DeltaDg GainCCD FRes[2]
StarInfo : NumEt XRef FlxMean FlxSig FLuxRef XPos YPos
.          FgRef NbVois Voisin[8] DisMin DisM2 DisM2R
TimeInfo : NumPhoto TStart Expose NbOkPS NbOKGF Fond SigFond
.          SigX SigY Rho SgX SgY PxSiz[2] CrVal[2] DelX DelY
..         PolxyRC[3][2] PolxyCR[3][2] LargX[2] LargY[2] MidX[2] MidY[2]
...        XMin[2] XMax[2] YMin[2] YMax[2] DegPolTG Absorption AirMass
....       FgCalib Calib[8] Resol[3][6] PFitErr[2][5]
.....      PSF1D PSF2D Version Revision DateHeure TSid ObsId FRes[2]
Mesure   : Flux Xi2 ErrFlux Fond Flx0 Fnd0 Xi20
.          S9Pix PixMax X Y SigX SigY
28-May-2021 17:35 (INFO) Done

Présentation des descripteurs d'images

Dans la terminologie historique Eros, les descripteurs d'images sont répertoriés comme des mesures dans l'entête mais sont enregistrés dans des structures nommées Time Infos, peut-être parce que les dates d'observation sont intégrées aux images FITS. Toujours est-il que la présentation des images est associée à l 'option --times...

L'exemple suivant ne montre que le début du rapport, le suivi comptant 134 mesures, c'est-à-dire 134 images analysées.

% DumpSuivi -verb lm01000krp501.sv -times | head -16
28-May-2021 17:36 (INFO) Loading binary suivi
28-May-2021 17:36 (INFO) Suivi report
#Time Infos
Img Ref Date Locale          Date Observation     Date Exposition Sideral Hour Expose
------- -------------------- -------------------- --------------- ------------ ------
6g29121 30-Jul-1996 06:04:59 30-Jul-1996 06:04:58                 01:55:22        180
6g31147 01-Aug-1996 06:14:39 01-Aug-1996 06:14:38                 02:12:56        180
6h0759  08-Aug-1996 05:46:14 08-Aug-1996 05:46:14                 02:12:04        180
6h1978  20-Aug-1996 05:36:16 20-Aug-1996 05:36:16                 02:49:22        180
6h28121 29-Aug-1996 04:04:25 29-Aug-1996 04:04:24                 01:52:44        180
6i04124 05-Sep-1996 05:07:01 05-Sep-1996 05:07:00                 03:23:08        180
6i15102 16-Sep-1996 03:55:23 16-Sep-1996 03:55:22                 02:54:40        180
6i2856  29-Sep-1996 04:54:53 29-Sep-1996 04:54:52                 04:45:34        180
6i27106 28-Sep-1996 04:54:48 28-Sep-1996 04:54:48                 04:41:32        180
6j0890  09-Oct-1996 02:06:03 09-Oct-1996 02:06:02                 02:35:42        180
6j1849  19-Oct-1996 05:51:27 19-Oct-1996 05:51:26                 06:00:58        180
6j14124 15-Oct-1996 04:37:41 15-Oct-1996 04:37:40                 04:31:16        180
6j2695  27-Oct-1996 02:52:54 27-Oct-1996 02:52:54                 03:33:28        180
28-May-2021 17:36 (INFO) Done

Extended Lightcurve

Les courbes de lumière Eros 2 (voir Format des courbes de lumière) présente les principaux paramètres des étoiles suivies par l'expérience comme un tableau ASCII, à raison d'une courbe par étoile et donc par fichier. L'exemple suivant montre le début d'un tel fichier.

# star:  erosid      MagR    ErrMR   XR      YR     MagB    ErrMB   XB      YB
#        lm0101k72   19.791  0.552 1220.75 1576.93  20.551  0.596 1166.87 1609.60
#
#   date      MagR    ErMagR MagB    ErMagB
   296.92857  20.891  2.087  99.999  9.999
   303.90878  21.487  2.848  99.999  9.999
   315.90198  19.308  1.411  21.300  4.590
   324.83806  19.783  1.110  99.999  9.999
   326.84836  19.709  0.631  20.078  0.381
   354.87292  19.326  0.357  99.999  9.999

La date présentée est exprimée comme un jour julien héliocentrique dont l'origine est décalée au 9 Octobre 1995, à midi. Une telle date n'a sans doute pas de signification particulière si ce n'est qu'elle décale l'origine des EHJD (Eros Heliocentric Julian Days) de 2 millions 450 milles jours par rapport à l'origine officielle des jours juliens - et permet donc de présenter des chiffres plus facile à lire.

Ceci étant, passer d'un EHJD à une date réelle n'est pas une mince affaire ! Par exemple, pourquoi l'estimation de la magnitude bleue de la date 296.928... a-t-elle échouée (la valeur 99.999 correspond à moins l'infini en termes de magnitude) ? Une solution serait d'aller voir l'image. Mais comment la trouver !? Par la base de données, bien sûr ! Mais encore faudrait-il connaitre la date d'observation pour pouvoir l'interroger.

L'application Extended Lightcurve est là pour cela.

% ExtendedLightcurve -verb lm0101k72.time | head -12
26-May-2021 13:35 (INFO) Reading lightcurve lm0101k72.time
26-May-2021 13:35 (INFO) Loading reference dates
26-May-2021 13:35 (INFO) Connecting database
26-May-2021 13:35 (INFO) Database connection time: 5046 ms
26-May-2021 13:35 (INFO) Collecting images parameters
26-May-2021 13:35 (INFO) All images parameters collect time: 4275 ms
26-May-2021 13:35 (INFO) Building extended lightcurve
26-May-2021 13:35 (INFO) Extended lightcurve build time: 756 ms
26-May-2021 13:35 (INFO) Building report
# star: erosid    Magr   Errmgr Xr      Yr      Magb   Errmgb Xb      Yb
#       lm0101k72 19.791  0.552 1220.75 1576.93 20.551  0.596 1166.87 1609.60
#
# Ehjd     MagRed ErMgR  MagBlue ErMgB  Mjd        Exposition           Observation              Imagered          Imageblue
 296.92857 20.891  2.087  99.999  9.999 50296.4280 01-Aug-1996:10:16:19 01-Aug-1996:06:14:39 lm01001trr6g31147 lm01011tbr6g31147
 303.90878 21.487  2.848  99.999  9.999 50303.4082 08-Aug-1996:09:47:48 08-Aug-1996:05:46:14 lm01001trr6h0759  lm01011tbr6h0759
 315.90198 19.308  1.411  21.300  4.590 50315.4014 20-Aug-1996:09:38:01 20-Aug-1996:05:36:16 lm01001trr6h1978  lm01011tbr6h1978
 324.83806 19.783  1.110  99.999  9.999 50324.3375 29-Aug-1996:08:06:00 29-Aug-1996:04:04:25 lm01001trr6h28121 lm01011tbr6h28121
 326.84836 19.709  0.631  20.078  0.381 50326.3478 31-Aug-1996:08:20:50 31-Aug-1996:04:19:18 lm01001trr6h30109 lm01011tbr6h30109
 354.87292 19.326  0.357  99.999  9.999 50354.3725 28-Sep-1996:08:56:24 28-Sep-1996:04:54:48 lm01001trr6i27106 lm01011tbr6i27106
 375.87045 19.266  0.252  99.999  9.999 50375.3702 19-Oct-1996:08:53:05 19-Oct-1996:05:51:27 lm01001trr6j1849  lm01011tbr6j1849
 385.83895 19.467  0.469  99.999  9.999 50385.3388 29-Oct-1996:08:07:52 29-Oct-1996:05:06:17 lm01001trr6j2891  lm01011tbr6j2891
26-May-2021 13:35 (INFO) Number of checked images: 962

Connaissant l'image, ici lm01011tbr6g31147, il est facile d'interroger la base de données grâce à ReportImages

% ReportImages nom=lm01011tbr6g31147
Nom               Objet Champ Camera Ccd Sous Image Filtre Traitement Nuit        Ordre Date Exp est.        Erreur
----------------- ----- ----- ------ --- ---------- ------ ---------- ----------- ----- -------------------- ------
lm01011tbr6g31147 lm    010        1   1 t          b      r          31-Jul-1996   147 01-Aug-1996 10:14:39 OK

ou consulter son entête par FitsHeader

% FitsHeader lm01011tbr6g31147
SIMPLE  =                    T
BITPIX  =                   16
NAXIS   =                    2
NAXIS1  =                 2048
NAXIS2  =                 2048
NUMCAM  =                    2
NUMCCD  =                    1
NUMADC  =                    8
CCDACT  = '01234567  '
NUMSEQ  =                    0
MAXSEQ  =                    1
INDSEQ  =                    0
DATE-OBS= '01/08/96  '
TM-EXPOS=                  180
TM-FLASH=                    0
TM-START= '06:14:39  '
TM-END  = '06:17:45  '
TU-START= '10:14:39  '
TU-END  = '10:17:45  '
TS-START= '02:12:57  '
TS-END  = '02:16:03  '
AIRMASS =         1.069356E+09
OBJECT  = 'lmc-lentilles'
ALPHA   = '05:07:39.2'
DELTA   = '-69:44:22 '
...

Comme le montre l'exemple, la courbe de lumière ‟étendue” reprend le format de base de la courbe de lumière standard: elle débute par le même entête décrivant les paramètres généraux de l'étoile et affiche les mêmes 5 premières colonnes. Les informations étendues sont ajoutées à la suite de ces colonnes de base, ce qui garantie la compatibilité de la courbe de lumière ‟étendue” avec la courbe de base.

Les messages d'information présentés dans cet exemple montre que Extended Lightcurve se connecte à la base de données pour vérifier l'existence des images décrites. Cette précaution coute quelques secondes, en fonction de la qualité du réseau, permet de récupérer les informations d'observation des images.

Raw Curve

RawCurve est un autre outil d'exploration lié aux courbes de lumière et aux suivis. Son rôle est d'extraire des fichiers de suivi les valeurs brutes des mesures réalisées sur une étoile particulière et de les présenter sous une forme tabulaire, similaire aux formats des courbes de lumière.

Contrairement à ExtendedLightcurve qui s'appuie sur une courbe de lumière existante, RawCurve accède directement aux suivis. Il est donc possible d'accéder aux valeurs d'une étoile pour laquelle il n'existe pas de courbes de lumière. En outre, RawCurve présente toutes les informations relatives à l'étoile interrogée, alors que les courbes de lumière ne présentent que les informations pertinentes en termes de physique.

RawCurve est utilisable de trois manières: pour un seul et unique suivi, comme le fait par exemple DumpSuivi, pour plusieurs blocs de suivis d'un même quart de CCD, ou pour l'ensemble des blocs de suivis liés au quart de CCD dans les deux couleurs.

L'ordre dans lequel les suivis sont indiqués est sans importance, RawCurve les réordonne de manière à les présenter dans l'ordre où ils ont été produits.

L'application propose deux modes de présentation des résultats: tel qu'ils apparaissent dans le ou les fichiers de suivi, ou en les classant par date d'observation et en éliminant les doublons, résultant du traitement multiples de certaines images. Il convient toutefois de noter que dans le mode bicolore, lorsque les suivis des deux caméras sont traités ensembles, le mode dit ‟réduit” est imposé.

Par ailleurs, lorsque plusieurs suivis sont traités, l'application vérifie leur cohérence et signale une erreur si ces suivis ne correspondent pas au même quart de CCD.

Dans tous les cas, l'étoile est désignée par son identifiant Eros. Une différence est faite toutefois entre les modes monochrome et bicolore quant à son interprétation. En mode monochrome, l'étoile est désignée par son numéro dans le suivi. En mode bicolore, l'étoile est désignée par son numéro "rouge", c'est-à-dire le numéro qu'elle porte dans le suivi rouge. Cette étoile "rouge" est alors associée à l'étoile "bleue" en se basant sur le numéro d'association de l'étoile "rouge". Dans ce mode bicolore, seules les étoiles associées sont retenues. Dans le mode monochrome, il suffit que l'étoile existe dans le suivi.

Usage

jrun RawCurve [-[no]reduce] [-xref] starid suivis...

En mode monochrome, l'étoile est identifiée par son numéro dans le suivi.

En mode bicolore, l'étoile est identifiée par son numéro de suivi "rouge" et associée à l'étoile du suivi "bleu". Ce numéro "rouge" est le numéro utilisé pour construire sa courbe de lumière (voir par exemple ExtendedLightcurve).

L'option -xref permet de désigner l'étoile à présenter non par son numéro dans le suivi mais par le numéro de son étoile associée dans le suivi de l'autre couleur. Cette option est essentiellement destinée à la présentation d'une étoile bleue connaissant son numéro par sa courbe de lumière, qui est le numéro de l'étoile en rouge. Cette option est ignorée dans le mode bicolore.

L'option -noreduce permet de ne pas classer les mesures par date d'observation ni réduire les doublons.

L'application étant d'un usage réduit, elle n'est accessible que grâce à la commande de lancement jrun.

Présentation monochrome

Le mode ‟monochrome” correspond à la situation où les suivis traités correspondent au même quart de CCD pour une seule caméra - c'est-à-dire une même couleur.

% jrun RawCurve -verb 72 data/eros2/suivis/lm01000krp50*.sv
26-May-2021 14:31 (INFO) Reading suivi data\eros2\suivis\lm01000krp501.sv
26-May-2021 14:31 (INFO) Reading suivi data\eros2\suivis\lm01000krp502.sv
26-May-2021 14:31 (INFO) Reading suivi data\eros2\suivis\lm01000krp503.sv
26-May-2021 14:31 (INFO) Reading suivi data\eros2\suivis\lm01000krp504.sv
26-May-2021 14:31 (INFO) Reading suivi data\eros2\suivis\lm01000krp505.sv
26-May-2021 14:31 (INFO) Reading suivi data\eros2\suivis\lm01000krp506.sv
26-May-2021 14:31 (INFO) Building raw cuve
Ehjd       Mjd        Tstart    Observation          Nuit        ImageR            FluxR      ErrFlxR X    Y     Xi2        Fond  Flx0 Fnd0 Xi20 S9pix Pixmax Sigx Sigy
---------- ---------- --------- -------------------- ----------- ----------------- ---------- ------- ---- ----- ---------- ----- ---- ---- ---- ----- ------ ---- ----
 294.92176 50294.4201 207558299 30-Jul-1996:06:04:59 29-Jul-1996 lm01000trr6g29121     66.095    9062  265  5988  1.6289196   102   -4  105 2534   -37    100  211  216
 296.92857 50296.4268 207731679 01-Aug-1996:06:14:39 31-Jul-1996 lm01000trr6g31147  -1095.073    3786  498  6119  1.7809194  2602   -4  105  -10   -37   2594  211  216
 303.90878 50303.4071 208334774 08-Aug-1996:05:46:14 07-Aug-1996 lm01000trr6h0759   -2448.510    2270  879  6381  2.1035507  1514   -4  105  -12   -37   1357  211  216
 315.90198 50315.4002 209370976 20-Aug-1996:05:36:16 19-Aug-1996 lm01000trr6h1978   -2679.031    1425  913  5433   2.621788  1336   -4  105  -10   -37   1308  211  216
 324.83806 50324.3364 210143065 29-Aug-1996:04:04:25 28-Aug-1996 lm01000trr6h28121    356.836   12245  142  5944 0.95331544  3467   -4  105  -10   -37   3484  211  216
 326.84836 50326.3467 210316758 31-Aug-1996:04:19:18 30-Aug-1996 lm01000trr6h30109   -353.551    8109  572  5769  1.7885089  2691  632 1119  -10  4976   2685  336  316
 331.88154 50331.3799 210751621 05-Sep-1996:05:07:01 04-Sep-1996 lm01000trr6i04124  -9999.000     436    0  3466    -2000.0  -999   -4  105 -700   -37      0  211  216
 342.83169 50342.3301 211697723 16-Sep-1996:03:55:23 15-Sep-1996 lm01000trr6i15102  -9999.000     436    0  3659    -2000.0  -999   -4  105 -700   -37      0  211  216
 354.87292 50354.3714 212738088 28-Sep-1996:04:54:48 27-Sep-1996 lm01000trr6i27106  -9999.000     436   82  3277    -2000.0  -999   -4  105  -12   -37   2975  211  216
 355.83131 50355.3714 212824493 29-Sep-1996:04:54:53 28-Sep-1996 lm01000trr6i2856   -9999.000     436    0  3261    -2000.0  -999   -4  105 -700   -37      0  211  216
 365.75563 50365.2542 213678363 09-Oct-1996:02:06:03 08-Oct-1996 lm01000trr6j0890   -9999.000     436    0  3918    -2000.0  -999   -4  105 -700   -37      0  211  216
 371.81918 50371.3178 214202261 15-Oct-1996:04:37:41 14-Oct-1996 lm01000trr6j14124  -9999.000     436    0  3043    -2000.0  -999   -4  105 -700   -37      0  211  216
 375.87045 50375.3691 214552287 19-Oct-1996:05:51:27 18-Oct-1996 lm01000trr6j1849   -9999.000     436   77  2757    -2000.0  -999   -4  105  -12   -37   1294  211  216
 379.79571 50379.2944 214891437 23-Oct-1996:04:03:57 22-Oct-1996 lm01000trr6j22111  -9999.000     436    1  3359    -2000.0  -999   -4  105  -22   -37   1682  211  216
 383.74637 50383.2451 215232774 27-Oct-1996:02:52:54 26-Oct-1996 lm01000trr6j2695   -9999.000     436    0  3481    -2000.0  -999   -4  105  -10   -37      0  211  216
 385.83895 50385.3377 215413577 29-Oct-1996:05:06:17 28-Oct-1996 lm01000trr6j2891    -339.283    9669  280  3086   2.120081  3076   -4  105  -10   -37   3090  211  216
 388.85272 50388.3515 215673967 01-Nov-1996:05:26:07 31-Oct-1996 lm01000trr6j31110    -89.735   30587  187  3108  1.4491819  1376   -4  105  -10   -37   1434  211  216

La présentation débute par les dates d'observation avec en premier l'EHJD (Eros Heliocentric Julian Day), le jour julien héliocentrique corrigé Eros (voir ExtendedLightcurve), puis le jour julien modifié "standard" (MJD). La date d'observation telle qu'elle apparait dans le suivi est présentée ensuite sous la forme numérique codée dans le suivi (Tstart) puis convertie en une date locale. La nuit d'observation est également indiquée. C'est en effet le code de la nuit qui est utilisé pour construire le nom des images. Le nom de l'image est présentée ensuite.

Le reste de la présentation montre les différentes valeurs liées à la mesure réalisée telle qu'elles sont enregistrées dans le suivi: flux, erreur sur le flux, position X et Y de l'étoile, et autres...

Présentation bicolore

Le mode ‟bicolore” correspond au cas où l'ensemble des suivis du même quart de CCD sont sélection afin de regrouper les présentations pour les deux couleurs.

% jrun RawCurve -verb 72 data/eros2/suivis/lm010*p5*.sv
26-May-2021 14:42 (INFO) Reading suivi data\eros2\suivis\lm01000krp501.sv
26-May-2021 14:42 (INFO) Reading suivi data\eros2\suivis\lm01000krp502.sv
26-May-2021 14:42 (INFO) Reading suivi data\eros2\suivis\lm01000krp503.sv
26-May-2021 14:42 (INFO) Reading suivi data\eros2\suivis\lm01000krp504.sv
26-May-2021 14:42 (INFO) Reading suivi data\eros2\suivis\lm01000krp505.sv
26-May-2021 14:42 (INFO) Reading suivi data\eros2\suivis\lm01000krp506.sv
26-May-2021 14:42 (INFO) Reading suivi data\eros2\suivis\lm01010kbp501.sv
26-May-2021 14:42 (INFO) Reading suivi data\eros2\suivis\lm01010kbp502.sv
26-May-2021 14:42 (INFO) Reading suivi data\eros2\suivis\lm01010kbp503.sv
26-May-2021 14:42 (INFO) Reading suivi data\eros2\suivis\lm01010kbp504.sv
26-May-2021 14:42 (INFO) Reading suivi data\eros2\suivis\lm01010kbp505.sv
26-May-2021 14:43 (INFO) Reading suivi data\eros2\suivis\lm01010kbp506.sv
26-May-2021 14:43 (INFO) Building raw cuve
Ehjd       Mjd        Tstart    Observation          Nuit        ImageRed          ImageBlue         FluxRed    FluxBlue   ErrFlxR ErrFlxB XRed XBlue YRed  YBlue Xi2R       Xi2B       FondR FondB Flx0R Flx0B Fnd0R Fnd0B Xi20R Xi20B S9PixR S9PixB PixMaxR PixMaxB SigXR SigXB SigYR SigYB
---------- ---------- --------- -------------------- ----------- ----------------- ----------------- ---------- ---------- ------- ------- ---- ----- ----- ----- ---------- ---------- ----- ----- ----- ----- ----- ----- ----- ----- ------ ------ ------- ------- ----- ----- ----- -----
 294.92176 50294.4201 207558299 30-Jul-1996:06:04:59 29-Jul-1996 lm01000trr6g29121 lm01010tbr6g29121     66.095  -9999.000    9062     519  265     0  5988  6954  1.6289196    -2000.0   102  -999    -4    66   105     0  2534  -700    -37     73     100       0   211     0   216     0
 296.92857 50296.4268 207731679 01-Aug-1996:06:14:39 31-Jul-1996 lm01000trr6g31147 lm01010tbr6g31147  -1095.073  -9999.000    3786     519  498     0  6119  7036  1.7809194    -2000.0  2602  -999    -4    66   105     0   -10  -700    -37     73    2594       0   211     0   216     0
 303.90878 50303.4071 208334774 08-Aug-1996:05:46:14 07-Aug-1996 lm01000trr6h0759  lm01010tbr6h0759   -2448.510  -9999.000    2270     519  879   263  6381  7328  2.1035507    -2000.0  1514  -999    -4    66   105     0   -12   -12    -37     73    1357     828   211     0   216     0
 315.90198 50315.4002 209370976 20-Aug-1996:05:36:16 19-Aug-1996 lm01000trr6h1978  lm01010tbr6h1978   -2679.031  -9999.000    1425     519  913   279  5433  6353   2.621788    -2000.0  1336  -999    -4    66   105     0   -10   -10    -37     73    1308     637   211     0   216     0
 324.83806 50324.3364 210143065 29-Aug-1996:04:04:25 28-Aug-1996 lm01000trr6h28121                      356.836              12245          142        5944       0.95331544             3467          -4         105         -10          -37           3484           211         216
 326.84026 50326.3387 210316060 31-Aug-1996:04:07:40 30-Aug-1996                   lm01010tbr6h30107             -9999.000             519          0        6956               -2000.0        -999          66           0        -700            73               0           0           0
 326.84836 50326.3467 210316758 31-Aug-1996:04:19:18 30-Aug-1996 lm01000trr6h30109 lm01010tbr6h30109   -353.551  -9999.000    8109     519  572     0  5769  6712  1.7885089    -2000.0  2691  -999   632    66  1119     0   -10   -10   4976     73    2685       0   336     0   316     0
 331.88154 50331.3799 210751621 05-Sep-1996:05:07:01 04-Sep-1996 lm01000trr6i04124                    -9999.000                436            0        3466          -2000.0             -999          -4         105        -700          -37              0           211         216
 342.83169 50342.3301 211697723 16-Sep-1996:03:55:23 15-Sep-1996 lm01000trr6i15102 lm01010tbr6i15102  -9999.000  -9999.000     436     519    0     0  3659  4580    -2000.0    -2000.0  -999  -999    -4    66   105     0  -700  -700    -37     73       0       0   211     0   216     0
 354.87292 50354.3714 212738088 28-Sep-1996:04:54:48 27-Sep-1996 lm01000trr6i27106                    -9999.000                436           82        3277          -2000.0             -999          -4         105         -12          -37           2975           211         216
 355.83131 50355.3714 212824493 29-Sep-1996:04:54:53 28-Sep-1996 lm01000trr6i2856  lm01010tbr6i2856   -9999.000  -9999.000     436     519    0     0  3261  4207    -2000.0    -2000.0  -999  -999    -4    66   105     0  -700  -700    -37     73       0       0   211     0   216     0
 365.75563 50365.2542 213678363 09-Oct-1996:02:06:03 08-Oct-1996 lm01000trr6j0890  lm01010tbr6j0890   -9999.000  -9999.000     436     519    0     0  3918  4844    -2000.0    -2000.0  -999  -999    -4    66   105     0  -700  -700    -37     73       0       0   211     0   216     0
 371.81918 50371.3178 214202261 15-Oct-1996:04:37:41 14-Oct-1996 lm01000trr6j14124 lm01010tbr6j14124  -9999.000  -9999.000     436     519    0     0  3043  3990    -2000.0    -2000.0  -999  -999    -4    66   105     0  -700  -700    -37     73       0       0   211     0   216     0

Les informations présentées concernent cette fois les mesures réalisées dans les deux couleurs. Les colonnes sont donc doublées, une en rouge, la seconde en bleue, sauf pour ce qui concerne les dates puisque l'image rouge et l'image bleue sont réalisées simultanément durant la même observation.

Suivi Convert

SuiviConverter converti un suivi d'un format vers un autre.

La conversion est pilotée par l'extension des noms des suivis. Pour être possible, le format du fichier à convertir doit être supporté en lecture et le format du fichier de destination doit l'être en écriture.

La conversion d'un suivi binaire traditionnel vers le format Json, par exemple, est possible, le format binaire étant supporté en lecture, mais la conversion inverse ne l'est pas, ce format binaire n'étant pas supporté en écriture.

Usage

L'application étant d'un usage réduit, elle n'est accessible que grâce à la commande de lancement jrun.

jrun SuiviConvert <input-sv> <output-sv>

Les formats supportés sont les suivants:

Extension Format Direction Support
json Json lecture/écriture complet
json.gz Json comprimé lecture/écriture complet
sv Natif binaire lecture seule complet
tab Tabulé écriture seule partiel
csv CSV écriture seule partiel

Le support est complet lorsque toutes les valeurs du fichier sont prises en compte. A l'inverse, dans le cas d'un support partiel, les valeurs complexes, comme par exemple les tableaux, sont (provisoirement) laissées de côté.

L'exemple suivant converti un fichier binaire natif en un fichier Json comprimé:

% jrun SuiviConvert lm01000krp501.sv lm01000krp501.json.gz

% dir -lh lm01000krp501.sv
-rw-r--r-- 1 albert LAL+Group(513) 134M 23 mai 11:12 lm01000krp501.sv

% dir -lh lm01000krp501.*
-rw-r--r-- 1 albert LAL+Group(513) 1.3G 23 mai 17:43 lm01000krp501.json
-rw-r--r-- 1 albert LAL+Group(513) 125M 23 mai 17:58 lm01000krp501.json.gz

La conversion Json augmente considérablement la taille du suivi - environ un facteur 10. Mais la compression Gzip sur ce genre de fichier est très efficace et le fichier Json Gzip est même légèrement plus petit que le fichier binaire natif.

Bien évidemment, le temps de chargement des fichiers Json ou Json Gzip est sensiblement augmenté par rapport au fichier binaire.

Python

Un intérêt du format Json est qu'il est naturellement supporté dans de multiples langages de programmation, dont Python, très en vogue en physique actuellement.

L'exemple suivant montre le chargement et la présentation de valeurs lues dans l'entête d'un suivi converti en Json.

import json

json_file = open('lm01000krp501.json')
suivi = json.load(json_file)
print('Nom: ', suivi["name"])
print('nombre d\'étoiles: ', suivi["header"]["nbStars"])
print('nombre d\'images:  ', suivi["header"]["nbMesures"])

et le résultat:

% time python jsonload.py
Nom:  lm01000krp501
nombre d'étoiles:  32768
nombre d'images:   134

real    0m36.070s
user    0m20.984s
sys     0m14.797s

Evidemment, les performances s'en ressentent.

Note: il y a surement moyen de faire de même avec le fichier Gzippé, mais on attend là les limites de mes connaissances en Python...