ARPA-SIMC / wreport

C++ library and applications to work with weather reports. The library provides featureful BUFR and CREX encoding and decoding.
Other
9 stars 9 forks source link

Wrong decodification of a descriptor #43

Closed dcesari closed 3 years ago

dcesari commented 3 years ago

La decodifica del messaggio allegato B005.zip, AMV, Atmospheric Motion Vectors, derivato da dati satellitari, il cui template è probabilmente cambiato di recente, fallisce perché il primo descrittore sembra male interpretato:

# wrep -D B005_2021030300
310077 (group)
  000103 (missing in B table /usr/share/wreport/B0000000000000031000.txt)
  001034 Identification of originating/generating sub-centre[COMMON CODE TABLE C-12]
  025061 Software identification and version number[CCITTIA5]
...

mentre:

# bufr_dump -d B005_2021030300
***** FILE: B005_2021030300 
001033  centre  IDENTIFICATION OF ORIGINATING/GENERATING CENTRE [Common CODE TABLE C-1]
001034  subCentre       IDENTIFICATION OF ORIGINATING/GENERATING SUB-CENTRE [Common CODE TABLE C-12]
025061  softwareVersionNumber   SOFTWARE IDENTIFICATION AND VERSION NUMBER [CCITT IA5]
...

cioè 001033 al posto di 000103 che è in effetti fuori dai limiti dei valori presenti nella relativa sezione della tabella. Tutti gli altri descrittori sembrano decodificati correttamente. Se trucco la tabella aggiungendo la riga 000103 uguale a 001033 la decodifica arriva in fondo. C'è un bug in decodifica o il messaggio ha qualche stranezza inedita?

spanezz commented 3 years ago

Sembra un errore del parsing della tabella D. La voce 310077 ha un numero di entry che sposta in avanti il primo opcode, e sballa il parsing a colonne.

Ora vedo di sistemare il parser: evidentemente il formato, non documentato, non era inteso a colonne. ma i valori vanno separati per sequenze di spazi consecutivi :)

 310072  3 310068
           101026
           310069
 310077 127 001033
           001034
           025061
           025062                                                                                                                                                                   
           001007
           002153
dcesari commented 3 years ago

Fantastico, grazie!