Closed brancomat closed 3 years ago
Ho dato un'occhiata ai template 4.*, pare che, al momento non ci siano altre eccezioni, per cui se potessimo fare un fallback, tale che se non è definito generatingProcessIdentifier
prendiamo observationGeneratingProcessIdentifier
e possiamo ignorare la non definizione di backgroundGeneratingProcessIdentifier
dovremmo essere a posto almeno per qualche anno in avanti.
A proposito, l'esigenza di includere anche backgroundGeneratingProcessIdentifier
tra i metadati sapete da dove arriva? In Cosmo non è definito e dubito che l'abbiamo mai usato, potremmo essere ancora in tempo a toglierlo.
Se invece dobbiamo essere proattivi nel prevenire l'errore di decodifica, allora i template 4 che hanno observationGeneratingProcessIdentifier
e non gli altri due sono al momento 4.30 (deprecato), 4.31 e 4.35.
l'esigenza di includere anche
backgroundGeneratingProcessIdentifier
tra i metadati sapete da dove arriva? In Cosmo non è definito e dubito che l'abbiamo mai usato, potremmo essere ancora in tempo a toglierlo
Non ricordo più come sia stata decisa la sezione origin
per i GRIB2.
Ho fatto una rapida cernita sui dataset grib2 attualmente operativi al SIMC ed è ignorato in tutti i config.
Sul toglierlo, il problema principale che vedo è il seguente: essendo precedente come ordine al generatingProcessIdentifier
che è moderatamente usato in svariati filter
, l'update di una versione di arkimet priva di backgroundGeneratingProcessIdentifier
andrebbe coordinata con una riscrittura di tutti i filter
che usano il processo generatore.
Questa cosa per le nostre catene operative si può fare (basta saperlo), il problema è come trasmettere questa informazione a eventuali usi esterni di cui magari non abbiamo quadro completo (si potrebbe usare come campanello d'allarme l'aumento di una major? non so).
Sul tema sono un po' combattuto perché da un lato si può stare conservativi dall'altro ho sempre trovato l'origin dei GRIB2 un po' troppo ricca di campi.
Se deve creare più danni che vantaggi, lasciamo perdere questa "riforma costituzionale", l'importante è trovare una soluzione per interpretare quei grib.
backgroundGeneratingProcessIdentifier
è nel metadato origin solo perché c'è in GRIB2, e non metterlo significa che se due GRIB2 differiscono solo per quella parte della loro origin, non possono entrare entrambi in un dataset arkimet.
Non so però se questo sian un caso d'uso significativo. Quando è stata fatta la scansione, non avevo specifiche sull'uso effettivo di quei campi, e ho dato per scontato che fossero tutti significativi.
Se vogliamo toglierlo posso toglierlo dal metadato (rendendolo opzionale e ignorato se presente, per non dover fare rescan dei dataset esistenti), e non cambiare la sintassi dei matcher, semplicemente ignorando backgroundGeneratingProcessIdentifier
e magari dando un warning se qualcuno lo specifica
Date magari un'occhiata a come viene scansionato e chiudete l'issue se tutto è come ve lo aspettate
Se abbiamo risolto il caso della possibile non-definizione delle chiavi di cui sopra, a questo punto non toglierei backgroundGeneratingProcessIdentifier
, ripensandoci è pur sempre una feature e chissà che non ci ritorni utile il giorno in cui, come si suol dire, nascerà Italia Meteo e faremo largamente uso di assimilazione e del concetto di "background".
con arkimet 1.34-1 pare a posto:
$ arki-query --summary-short --yaml '' MSG4_Seviri_1_5_WV_073_20210312_2115.grib
SummaryStats:
Size: 7467561
Count: 1
Reftime: 2021-03-12T21:15:00Z to 2021-03-12T21:15:00Z
Items:
Origin:
GRIB2(00098, 00000, 000, 255, 254)
Product:
GRIB2(00098, 003, 000, 000, 004, 000)
Level:
GRIB2S( -, -, -)
Area:
GRIB(tn=90)
Proddef:
GRIB(tod=0)
Run:
MINUTE(21:15)
(o meglio, la parte Level
è curiosa ma è eventualmente roba altra issue)
scoperto con @pat1 :
il problema credo sia che
/etc/arkimet/scan/grib2.py
non è dipendente dalproductDefinitionTemplateNumber
(finora abbiamo sempre smistato dati previsti):il grib2 del satellite (allegato, vedi anche https://github.com/ARPA-SIMC/meteosatlib/issues/2) ha un
productDefinitionTemplateNumber = 31 [Satellite product (grib2/tables/4/4.0.table) ]
e nella sezione 4 al posto digeneratingProcessIdentifier
haobservationGeneratingProcessIdentifier
Aggiungo anche @dcesari e @edigiacomo agli assignees perché le ramificazioni dell'impatto sullo scan dei grib2 riguardano un po' tutti.
msg4_grib.tar.gz