11 Juillet 2021/ Situation des suivis Eros 1 CCD

L'enregistrement des caractéristiques des images Eros 1 CCD a mis en évidence des erreurs tel que des fichiers vides, tronqués ou corrompus. Pour éviter de telles déconvenues, il m'a semblé utile de vérifier les fichiers de suivis avant de lancer leur sauvegarde.

Une telle vérification présente toutefois une sérieuse difficulté faute d'un outil certifié. L'outil utilisé résulte d'interprétations de différentes notes et fragments de code. Il semble donner des résultats cohérents dans la plupart des cas mais comment interpréter les échecs ?

Méthode de vérification

Un fichier de suivi débute par un entête et cet entête débute à un entier de quatre octets donnant la taille du suivi. Ce premier mot est très utile car il permet deux vérifications. Si l'entier lu correspond à la taille du fichier, on sait 1) que le fichier n'est pas tronqué et 2) que l'ordre des octets dans le fichier correspond à l'ordre ‟naturel” de lecture des données. Si ce n'est pas le cas, on peut tenter d'inverser l'ordre des 4 octets et reconstruire un entier. S'il y a correspondance avec la taille du fichier, celui-ci n'est pas tronqué mais les octets doivent être permutés avant d'être utilisés (byte swapping). Et s'il n'y a toujours pas de correspondance le fichier est tronqué. Il n'est donc pas utile de continuer.

L'entête contient deux autres informations utilisables pour une vérification : le nombre d'images analysées et un marqueur qui doit être identique aux nombres d'images. Le programme d'analyse peut utiliser ce marqueur pour indiquer une corruption interne du suivi. Tous les suivis analysés passent avec succès ces deux vérifications.

Cependant, une curiosité est apparue dans un cas : le nombre d'images et le marqueur de validité sont à zéro – donc le fichier est valide - mais la taille du suivi laisse penser que des mesures ont été enregistrées. On peut même déduire le nombre d'images à partir de la taille du fichier. La vérification des Time Infos récupérés donne des résultats corrects.

Ce cas curieux a l'avantage de montrer que la seule vérification de l'entête et de la taille du fichier n'est pas suffisante. Il faut aussi vérifier son contenu. La seule solution pouvant être mise en œuvre consiste à contrôler la cohérence des descripteurs des images analysées (Time Info). Ces descripteurs étant entrelacés avec les mesures effectuées sur les étoiles, des corruptions conduiraient à de sérieuses suspicions quant à la validité des mesures.

La seule référence à laquelle confronter les Time Infos est la liste des images enregistrées dans la base de données. Dans ce contexte, deux entiers sont utilisables : le premier correspond à un encodage de différentes caractéristiques de l'image analysée, le second est la date d'observation obtenue de l'entête FITS de l'image. Si donc on peut reconstruire le nom de l'image à partir de son code photo et vérifier son existence dans la base de données, on peut être raisonnablement sûr que le Time Info est valide. Il y cependant différentes situations où le code photo est incohérent. Mais on peut reconstruire la date d'observation à partir du Time Info et chercher dans la base de données une image correspondant à cette date.

Si rien ne marcher, le Time Info est considéré comme corrompu, ce qui entraine une sérieuse suspicion quant au suivi.

A l'inverse, l'absence de l'image dans la base de données alors que son nom a correctement été reconstruit n'implique pas que le Time Info est invalide mais plutôt que l'image est perdue.

Et si le code photo est incorrect mais que la date permet de trouver l'image, le Time Info n'est pas considéré comme corrompu, mais plutôt qu'il a été victime d'un bug… 220 Time Infos sont dans ce cas. A chaque fois, l'erreur vient de ce que le jour déduit du code photo donne 32, ce qui n'est pas acceptable. Détail amusant, toutes ces erreurs correspondent au 32 Janvier de 1992, une année bissextile…

215 erreurs non récupérables ont été détectées dans 2 suivis différents. Le fait que toutes ces erreurs soient en fin de fichier conduit à soupçonner une sévère corruption. Ou alors l'outil de vérification a perdu ces repères dans les entrelacements des Time Infos et des mesures. Mais alors, pourquoi seulement sur ces deux cas… ?

Résultats

Les archives présentent dans le HPSS contiennent 1601 suivis répartis en 56 répertoires pour les 4 différentes campagnes. Seuls les programmes LMC (code "x") et SMC (code "s") ont été analysés.

  • 1575 suivis sont considérés comme valides.
  • 23 suivis contiennent des Time Infos bogués mais dont les images existent.
  • 2 semblent sévèrement corrompus.
  • 1 correspond au cas où aucune image n'est déclarée dans l'entête alors que des mesures existent qui semblent valides.

Au total 244 227 images ont été analysées et sont référencées dans les suivis, dont 98 plusieurs fois.

207 618 images ont été identifiées grâce à la base de données. Et si on force le chargement du fichier sans image déclarée, on peut rajouter 146 images, toutes valides.

36 480 images n'existent pas dans la base de données, mais 5 répertoires contenant des suivis n'ont pas d'équivalent dans l'arborescence des images, qui sont donc bel et bien perdues. Ceci représente 31 553 références dans les suivis. Si on fait abstraction de ces 5 répertoires manquants, près de 5 000 images restent encore absentes.

Mais au moins, grâce aux décodages des suivis, il est possible de connaitre les noms de ces images perdues.

Conclusions

2 fichiers seulement semblent sérieusement compromis et 24 pourraient être considérés comme douteux. Il semblerait donc logique de sauver tous les suivis et d'enregistrer dans la base de données un code donnant le résultat des vérifications effectuées. Il pourrait aussi être utile de conserver dans Irods, peut être dans les répertoires des suivis, les sommaires des vérifications, sous la forme de fichiers CSV.

Le sommaire des vérifications :

Nb Suivis  Nb Images  Nb Checked Nb Valids  Nb Missing Nb Errors  Nb Duplicatd
---------- ---------- ---------- ------------ ---------- ---------- ----------
      1601     244325     244314     207618      36480        436           98

Status     Count
---------- ----------
CORRUPTED           2
VALID            1575
NO_IMAGE            1
ERRORS             23

Suivi              Status       Checked    Valids     Missing    Errors     Recovered
------------------ ------------ ---------- ---------- ---------- ---------- ----------
s4f244g05R.suivi00 ERRORS              142        141          0          1
s4g064g16B.suivi02 CORRUPTED           126         10          0        116
s4i084i18B.suivi07 CORRUPTED           189         90          0         99
x2a202b03B.suivi00 ERRORS              150        148          2         10         10
x2a202b03B.suivi01 ERRORS              150        146          4         10         10
x2a202b03B.suivi02 ERRORS              149        144          5         10         10
x2a202b03B.suivi03 ERRORS              148        143          5         10         10
x2a202b03B.suivi04 ERRORS              148        143          5         10         10
x2a202b03B.suivi07 ERRORS              148        140          8         10         10
x2a202b03B.suivi08 ERRORS              148        143          5         10         10
x2a202b03B.suivi09 ERRORS              147        142          5         10         10
x2a202b03B.suivi10 ERRORS              148        143          5         10         10
x2a202b03B.suivi11 ERRORS              148        143          5         10         10
x2a202b03B.suivi12 ERRORS              147        142          5         10         10
x2a202b03R.suivi00 ERRORS              163        163          0         10         10
x2a202b03R.suivi01 ERRORS              163        163          0         10         10
x2a202b03R.suivi02 ERRORS              163        163          0         10         10
x2a202b03R.suivi03 ERRORS              163        163          0         10         10
x2a202b03R.suivi04 ERRORS              163        163          0         10         10
x2a202b03R.suivi07 ERRORS              162        162          0         10         10
x2a202b03R.suivi08 ERRORS              162        162          0         10         10
x2a202b03R.suivi09 ERRORS              161        161          0         10         10
x2a202b03R.suivi10 ERRORS              160        160          0         10         10
x2a202b03R.suivi11 ERRORS              160        160          0         10         10
x2a202b03R.suivi12 ERRORS              152        152          0         10         10
x2l233a01B.suivi01 NO_IMAGE              0          0          0
Ce contenu a été publié dans Base de données, Eros1. Vous pouvez le mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *