Environnement de travail

Dans tous les cas, pour récupérer les données, il faut se positionner sur so machine rosina1

$ ssh solar@rosina1

Les opérations se sont dans le répertoire /home/solar/EDDS/STREAM_CLIENT.irap

Utilisation d’un alias

$ ..R

Environnement python 3

..p3    équivalent à  ~/py3.venc/bin/activate

Permet activation environnement virtuel (venv) python3.

Certaines commandes ne marchent en effet qu’avec python3, d’autre uniquement sous python2.

Manque de temps pour tout porter sous python3

Lancement StreamClient Java

Le client Java va permettre de récupérer la télémesure SWA en temps réel depuis le serveur EDS de l’ESOC, situé à Darmstadt.

$ sh StreamClientLaunch.sh

Relance le client Java de streaming, qui récupère la TM en temps réel, pour une requête de type Data Streaming.

La requête est normalement lancée par le MSSL, et reste valide pour plusieurs jours (semaines).

Le client Java va enregistrer les nouveaux paquets de TM dans le fichier <requestId>.hex situé dans répertoire courant.

C’est un fichier texte, contenant des paquets CCSDS, format hexadécimal, qui s’incremente au fur et a mesure…

L’ID de la requête se trouve dans config.properties : ne pas le modifier.

requestId = StreamRequest.PktTmStream.SOL.0.2020.097.08.17.50.471.DzzP

On peut vérifier l'état de la requête

$ python -m EDDS status
Reading config from config.properties
Login EDDS C695826CE367A948076015CC36FD4376
Check status for job : StreamRequest.PktTmStream.SOL.0.2020.097.08.17.50.471.DzzP
           RequestId : StreamRequest.PktTmStream.SOL.0.2020.097.08.17.50.471.DzzP
               State : ACTIVE
               Error : None
              Reason : None
      SubmissionTime : 2020-04-06 08:17:50.471000+00:00
          ExpiryTime : 2020-04-21 23:51:55+00:00

On voit que la requête active a été lancé le 6 avril et se terminera le 21 à 23:51.

Traitement pour une journée type

Pour une journee données (2020/04/14 par exemple)

S’assurer que le client Java est lancé, avec le bon requestId (voir config.properties).

$ ./RUN_RT

Détecte les modifications du fichier <requestId>.hex, et chaque fois qu’un nouveau paquet arrive, recopie ce fichier dans

/DATA/SOLAR/DATA/L0/yyyymmdd/solo_L0_swa-pas-tm_V00.bin

Puis relance traitement de la télémesure

$ PRODUCE_L1 -a yyyy-mm-dd
Note On pourrra relancer PRODUCE_L1 manuellement en cas de besoin, à la condition d’avoir copié manuellement des données sous
/DATA/SOLAR/DATA/L0/20200414/solo_LO_swa-pas-tm_20200414_V00.hex

Récupération des TC

$ python -m EDDS batch_TC 2020-04-14T00:00 P1D

Relance une requête batch sur le serveur EDDS, pour récupérer les données des TC du 14/04, et génère le fichier

20200414_000000_20200415_000000.swa-batch-tc.xml

Conversion du fichier.xml en .hex

$ python -m batch_TC 20200414_000000_20200415_000000.swa-batch-tc.xml

Va convertir ce fichier .xml en 3 formats différents : .txt, .hex et .bin

LeS 3 fichiers sont créés dans le même répertoire, en changeant juste l’extension.

Prise en compte du fichier des TC

Recopier manuellement le fichier TC hexadécimal se trouvant dans le répertoire courant

$ cp 20200414_000000_20200415_000000.batch_tc.hex
     solo_L0_swa-batch-tc_20200414_V00.hex

Ce fichier sera pris en compte automatiquement par ./RUN_RT lors du prochain traitement (qlq secondes)

Sinon, on peut forcer la relecture par

$ touch refresh

Réveille ./RUN_RT comme si de nouvelles données étaient apparues

Mise à jour serveur WEB

$ POST_PROCESS 2020-04-14

Mis a jour du serveur WEB.

Il faudra modifier trunk/software/bin/POST_PROCESS et décommenter la ligne

python -m create_views

Qui va régénérer les plots HK et Science automatiquement, et les mettre à disposition sur le serveur.

Caution ne fonctionne qu’avec python2.7 : utiliser nouveau shell sans lancer ..p3

Problèmes possibles

Aucune données ne semblent apparaitre en temps réel

Si rien n’arrive dans le stream à l’heure attendue… contacter MSSL par tél ou mail

Demander l'état de la requète : voir RequestId dans config.properties

S’ils disent que c’est OK ⇒ relancer client Java

$ sh StreamClientLaunch.sh

Si ca repart pas, relancer nous même une requête streaming :

  • Stopper le client java actuel (Ctlr C, CtirlD)

  • Tuer les process inotify qui restenten attente :

$ ps -ael | grep inotify

$ kill -9 <pids>

Relancer la nouvelle requête data streaming

$ python -m EDDS stream 2020-04-14T00 P1D

Renvoie une nouvelle requête, d’identifiant requestId, l’enregistre dans config.properties et relance le client Java qui récupère les données.

Chaque nouveau paquet est affiché dans la fenètre et engregistré dans le fichire requestId.hex

Relancer le traitement en temps réel

./RUN_RT

Le mode streaming ne marche définitivement pas

Il est arrivé par le passé que le mode streaming du serveur EDDS ne fonctionne plus…

Il reste la possibilité de lancer des requêtes en mode batch :

$ python -m EDDS batch_TM 2020-04-14T00:00 P1D

Génère un fichier

20200414_000000_20200415_000000.swa-batch-tm.bin

Cela peut durer de quelques secondes à plusieurs minutes, et il faudra en relancer à intervalles réguliers pour récupérer de nouvelles données.

On peut bien sur diminuer l’intervalle de récupération des données:

$ python-m EDDS batch_TM 2020-04-14T12:00 PT2H

Va générer le fichier correspondant à l’intervalle : 12H/14H

20200414_120000_20200414_140000.swa-batch-tm.bin

Recopier ensuite ce fichier manuellement dans /DATA/SOLAR/DATA/LO

$ cp 20200414_000000_20200415_000000.swa-batch-tc.bin /DATA/SOLAR/DATA/L0/20200414/solo_L0_swa-pas-tm_V00.bin
Caution

Attention au nom du fichier dans /DATA/SOLAR/DATA/L0/20200414

Comparer avec les noms des fichiers L0 d’autres journées pour vérifier

Relancer la génération des CDF L1

$ PRODUCE_L1 -b 2020-04-14

L’option -b indique que le fichier L0 est au format binaire, contrairement à l’option -a utilisée pour les données récupérées en mode streaming (fichier texte en hexadécimal)

On peut faire de même pour récupérer les TC

$ python -m EDDS batch_TC 2020-04-14T00:00 P1D

Va générer fichier XML

20200414_000000_20200415_000000.swa-batch-tc.xml

Le convertir en binaire

$ python -m batch_TC 20200414_000000_20200415_000000.swa-batch-tc.xml

Génère même fichier sous trois formats différents, avec les extensions .txt, .hex et .bin

Concaténer les deux fichiers binaires dans le fichier L0

$ cat 20200414_000000_20200415_000000.swa-batch-tc.bin
      20200414_000000_20200415_000000.swa-batch-tm.bin
      > /DATA/SOLAR/DATA/L0/20200414/solo_L0_swa-pas-tm_V00.bin
Caution

Il faut concaténer dans un certain ordre :

$ cat swa-batch-tc swa-batch-tm > swa-pas-tm

Là-aussi, bien respecter la syntaxe des noms de fichiers L0