-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Abbiamo scoperto (in realtà lo sapevo da un annetto, ma avevo nascosto sotto al tappeto) che i grib2 di cosmo prodotti in modalità analisi, contenenti quantità elaborate su un intervallo (precipitazione cumulata e pochi altri per intenderci), sono codificati diversamente da come avevamo deciso di codificarli noi a suo tempo secondo i nostri standard interni.
Convenzione SIMC
sezione 1
- reference time (year, month, day, etc.) punta all'inizio dell'intervallo di elaborazione
- typeOfProcessedData ignorato ma tipicamente = 1 [Forecast products]
sezione 4, template 4.8
- forecastTime = 0
- lengthOfTimeRange = durata del periodo di elaborazione
- typeOfTimeIncrement = 1 [Successive times processed have same forecast time, start time of forecast is incremented]
- *OfEndOfOverallTimeInterval (year, month, day, etc.) puntano alla fine dell'intervallo di elaborazione
Convenzione Cosmo
sezione 1
- reference time (year, month, day, etc.) punta alla fine dell'intervallo di elaborazione
- typeOfProcessedData = 2 [Analysis products]
sezione 4, template 4.8
- forecastTime = 0
- lengthOfTimeRange = durata del periodo di elaborazione
- typeOfTimeIncrement = 2 [Successive times processed have same start time of forecast, forecast time is incremented]
- *OfEndOfOverallTimeInterval (year, month, day, etc.) sbagliato per un bug di Cosmo, ma l'intenzione era la stessa che avevamo nella nostra convenzione, comunque lo ignoriamo di solito
Insomma la grossa differenza è che reference time punta all'inizio o alla fine, la nostra scelta è dettata da questa frase del WMO: "The reference time in section 1 and the forecast time together define the beginning of the overall time interval." v. pag. 28 del doc. WMO che pare dire che abbiamo ragione noi :-).
Al momento, per permettere l'elaborazione dei grib2 di Cosmo (rianalisi SPHERA) ho fatto una modifica per cui se typeOfProcessedData==2 e typeOfTimeIncrement==2 il grib è riconosciuto come "convenzione cosmo" e il reftime interpretato di conseguenza in fase di importazione. In teoria si potrebbe anche fare l'operazione opposta in fase di codifica, cioè se il template fornito ha typeOfProcessedData==2 e typeOfTimeIncrement==2 il reftime viene spostato alla fine e si setta typeOfTimeIncrement resta =2, ma non l'ho fatto per ora.
L'unica applicazione nota, oltre a SPHERA, credo che sia l'analisi ERG5, mentre le varie analisi operative di Cosmo sono ancora in grib1.
Non possiamo pensare di ricodificare SPHERA.
Con l'abbandono del nudging per LETKF non mi aspetto in futuro un grande uso di analisi elaborate nel tempo prodotte da Cosmo/Icon, ma qualcosa ci sarà per la qualità dell'aria. (Però ignoro se ICON produce output cumulato in modalità analisi).
Le domande principali sono quindi:
- Sposare la convenzione Cosmo e ricodificare ERG5 (sarebbe un peccato perché la nostra convenzione mi pare più corretta)?
- Implementare la codifica dei grib stile Cosmo anche in scrittura?
- Varie ed eventuali