SolarOrbiter CDF L2 data format =============================== Documents : * link:/documents/METADATA[] == Level 1 CDF files content === PAS L1 3D data ++/DATA/SOLAR/DATA/L1/yyyymmdd/solo_L1_swa-pas-3d_yyyymmdd_V00.cdf++ [options="header", cols="10,10,10,10,50"] |=== | Variable | Type | Size | Vary | Description | Epoch | TT2000 | | T | Start acquisition time | Duration | CDF_FLOAT | | T | Acquisition duration | CCSDS_coarse_time | CDF_UINT4 | | T | CCSDS coarse time | CCSDS_fine_time | CDF_UINT2 | | T | CCSDS fine time | SCET_coarse_time | CDF_UINT4 | | T | SCET coarse time | SCET_fine_time | CDF_UINT2 | | T | SCET fine time | SOURCE | CDF_UINT1 | | T | Source (0: Normal, 1: Snapshot, 2: Burst, 3: Trigger | SAMPLE | CDF_INT2 | | T | Current sample | NB_SAMPLE | CDF_INT2 | | T | Number of samples | K | CDF_INT2 | | T | Current sub-sampling | NB_K | CDF_INT2 | | T | Number of sub-samping per second | FIRST_ENERGY | CDF_INT2 | | T | First energy bin | NB_ENERGY | CDF_INT2 | | T | Number energy bins | FIRST_ELEVATION | CDF_INT2 | | T | First elevation bin | NB_ELEVATION | CDF_INT2 | | T | Number elevation bins | NB_CEM | CDF_INT2 | | T | Number CEM | INFO | CDF_UINT1 | | T | Info | SCHEME | CDF_UINT1 | | T | Scheme | FULL_3D | CDF_UINT1 | | T | Full 3D | COMPRESSED | CDF_UINT1 | | T | Compressed data | MAX_CNT_ENERGY | CDF_INT2 | | T | Max count energy bin | MAX_CNT_ELEVATION | CDF_INT2 | | T | Max count elevation number | MAX_CNT_CEM | CDF_INT2 | | T | Max count CEM | COUNTS | CDF_UINT2 | 11x9x96 | T | 3D counts | Energy_table | CDF_REAL4 | 96 | F | Cenetr of energy bins | Energy_delta_plus | CDF_REAL4 | 96 | F | Energy bins delta plus values | Energy_delta_minus | CDF_REAL4 | 96 | F | Energy bins delta minus values | CEM_table | CDF_REAL4 | 11 | F | Center of CEM bins | Elevation_table | CDF_REAL4 | 9 | F | Center of elevation bins | CEM_table_delta | CDF_REAL4 | 11 | F | CEM_table_delta | Elevation_table_delta | CDF_REAL4 | 9 | F | Elevation_table_delta |=== === Remarques ==== Datation * Epoch : correspond au Start-acquisition time * Duration : duree acquisition en secondes La date d'acquisition est calculee a partir de : * SCET_coarse : nombre de secondes (depuis 2000-01-1T00:00:00Z) * SCET_fine : nombre de 1/65536 s On dispose aussi de CCSDS_fine et CCSDS_coarse : represente date de transmission par le soft de bord (SCET < CCSDS) Duration vaut normalement 1s ou 1s/NB_K quand il y a de 1 a NB_K sous-echantillons par secondes ==== 3D description Chaque enregistrement comptient une matrice de comptages possibles : 9 x 11 x 96 x UINT2. Tout ou partie de la matrice de comptage contient des comptages, definis par : - FIRST_ENERGY, NB_ENERGY : numero premiere et nombre d'energies energie - FIRST_ELEVATION, NB_ELEVATION : numero premiere elevation et nombre d'elevations - NB_CEM : nombre de canaux Il y a donc NB_ENERGY x NB_ELEVATION x NB_CEM comptages utiles. Le reste etant des FILLVALUE [CAUTION] -- Il manque une variable START_CEM qui est codee en dur dans le code de traitement. Cela depend de NB_CEM pouvant etre egal a 7 ou 11 On prend les CEM centraux si NB_CEM = 7 => START_CEM = 1 -- Les variables SAMPLE et NB_SAMPLE indiquent pour le mode burst (max 5 minutes = 300 enregistrements) le numero de l'echantillon. D'autres variables decrivent les donnees : - FULL_3D : (0/1) indique que tous les comptages sont renseignes : on doit avoir 92 x 9 x 11 valeurs - COMPRESSED : (0/1) indique que les donnees ont ete compressees a bord - SOURCE : Normal, Snapshot, Burst mode, Trigger mode - INFO : Ground, Normal, Snaphsot, Burst - SCHEME : dynamique ou statique Il y a aussi des indices pour savoir dans quelle cellule on a rencontre le maximum de comptages : - MAX_COUNT_ENERGY, MAX_COUNT_ELEVATION et MAX_COUNT_CEM ==== Example link:/documents/METADATA/PAS_3D_20190911.txt[] === Description matrice des comptages CAUTION: Il faudra revoir cette partie qui est plus complexe que ce qui est decrit ci-dessous La matrice de comptages est un tableau de dimension 3. Chaque dimension est decrite par une variable "globale" pour chaque fichier CDF. - Energy_table : 96 valeurs (centrales) - CEM_table : 11 valeurs (centrales) - Elevation_table : 9 valeurs (centrales) CEM_table et Elevation_table ont un DELTA_PLUS et DELTA_MINUS fixe representant un demi-intervalle (degres) Energy_table necessite deux variables DELTA_PLUS et DELTA_MINUS de 96 valeurs correspondant permettant de decrire chaque intervalle logarithmique (differences avec valeur centrale) NOTE: Les valeurs des tables sont representees dans le repere instrument. == Level 2 CDF files === Datation D'apres les documents du groupe de travail sur les metadonnees il faudrait suivre les recommandations suivantes : - EPOCH : devrait representer le milieu de l'intervalle d'acquisition, et avoir les attributs ** DELTA_PLUS_VAR = half_interval ** DELTA_MINUS_VAR = half_interval - half_interval : duree de la moitie de l'intervalle (1s/2, ou 1/2/NB_K s) Autres variables : On pourra conserver quand meme le start_acquisition dans une autre variable, par exemple SCET avec duration = 2 * half_interval Plutot que de conserver les deux variables coarse_time et fine_time, le document demande de definir une seule variable, de type CDF_REAL8, contenant un nombre de secondes. Par exemple : SCET = (float) SCET_coarse + SCET_fine / 65536 CCSDS = (float) CCSDS_coarse + CCSDS_fine / 65536 Cela facilite les traces et les calculs de differences entre deux acquisitions. === Autres recommandations * Matrice passage instrument => salellite Le document link:/documents/METADATA/METADATA_MADAWG.pdf[] conseille d'ajouter dans les fichiers CDF la matrice de passage du repere instrument (PAS) au repere satellite. * Autres metadonnees Il faudra decrire plus de metadonnees : y a t-il un groupe de travail (MADAWG) charge de la verification, coherence des metadonnees === Estimation volume des donnees Chaque enregistrement contient 9 x 11 x 96 x CDF_REAL4 = 38016 octets Il peut y avoir 24 x 60 x 60 / 4s = 21600 enregistrements Soit une taille de 821145600 octets 783 Mio ~ 800 MB === Commentaires sur document Andrei === Description des diverses tables Preciser pour chaque table : - les tables ou dimensions qui sont dependante du temps (record varying = True) ==== PAS_to_RTN_cosines On peut envisager d'utiliser les spice-kernels pour passer du reperte instrument -> satellite -> RTN On doit pouvoir generer la matrice de rotation en fonction du temps de chaque enregistrement. Sinon, preciser les dimensions qui dependent du temps (elevation et CEM a priori). Les energies ne dependent pas de la position du satellite. Il faut peut etre eclater les tableaux Azimuth_table[96][9][11] et Elevation_table [96][9][11] Si on doit fournir une matrice de definition [96][9][11] pour chaque enregistrement, cela multiple par 4 la taille des donnees : comptage, emin, emax, emoy (pour chaque bin en energie) 800 MB => 3.2 GB