ARPA-SIMC / libsim

Command-line utilities and fortran modules for meteorological data processing
GNU General Public License v2.0
7 stars 1 forks source link

Calcolo cumulata con comp-start diverso da istante di emissione #108

Open edigiacomo opened 7 months ago

edigiacomo commented 7 months ago

Partendo da un GRIB con cumulate dall'inizio dell'istante di emissione (neveL.grib.zip):

$ grib_ls -pdataDate,dataTime,stepRange,shortName neveL.grib 
neveL.grib
dataDate    dataTime    stepRange   shortName   
20231203    1200        0           snoc       
20231203    1200        0-1         snow_con   
20231203    1200        0-2         snow_con   
20231203    1200        0-3         snow_con   
20231203    1200        0-4         snow_con   
20231203    1200        0-5         snow_con   
20231203    1200        0-6         snow_con   
20231203    1200        0-7         snow_con   
20231203    1200        0-8         snow_con   
20231203    1200        0-9         snow_con   
20231203    1200        0-10        snow_con   
20231203    1200        0-11        snow_con  
...
20231203    1200        0-68        snow_con   
20231203    1200        0-69        snow_con   
20231203    1200        0-70        snow_con   
20231203    1200        0-71        snow_con   
20231203    1200        0-72        snow_con   
73 of 73 messages in neveL.grib

73 of 73 total messages in 1 files

Vorrei calcolare le cumulate 24h a partire da 12h dopo l'istante di emissione (in questo caso, 2023-12-04 00:00):

$ vg6d_transform --comp-stat-proc=1 --comp-start='2023-12-04 00:00' --comp-step='1 00' --comp-full-steps neveL.grib out.grib

Ma ottengo delle cumulate di 24h a partire dall'istante di emissione, come se --comp-start fosse ignorato:

$ grib_ls -pdataDate,dataTime,stepRange,shortName out.grib 
out.grib
dataDate    dataTime    stepRange   shortName   
20231203    1200        0-24        snow_con   
20231203    1200        24-48       snow_con   
20231203    1200        48-72       snow_con   
3 of 3 messages in out.grib

3 of 3 total messages in 1 files

Mi aspetterei invece dei messaggi con dataDate=20231204 e dataTime=0000

dcesari commented 7 months ago

Come sospettavo, confermo che comp-start è ignorato nelle cumulazioni per differenze di previsioni, non saprei dire il motivo esatto, ma forse perché aggiungeva complicazione alla già complicata gestione delle casistiche. È invece gestito nella cumulazione per aggregazione di intervalli, per cui una soluzione rapida è di fare:

# qui step puo' essere 12 ore o un suo sottomultiplo, con 12 e' piu' preciso probabilmente
vg6d_transform --comp-stat-proc=1 --comp-step='0 12' --comp-full-steps neveL.grib tmp.grib
vg6d_transform --comp-stat-proc=1 --comp-start='2023-12-04 00:00' --comp-step='1 00' --comp-full-steps tmp.grib out.grib

Possiamo comunque lasciare aperta la issue, nel caso trovo una maniera di gestire comp-start direttamente.

edigiacomo commented 7 months ago

Grazie mille Davide! Nel caso in cui tu trovi un modo per gestire il comp-start direttamente, immagino che il comportamento delle soluzione rapida rimarrà invariato, giusto?

dcesari commented 7 months ago

Si, certo, quello non dovrebbe cambiare.