Decumulate rain fieldsΒΆ

and write it back to GRIB, ensuring proper validity

[1]:
import usevortex
import epygram
import os
Vortex 1.5.1 loaded ( Wednesday 19. December 2018, at 13:47:27 )
[2]:
pwd = os.getcwd()
os.chdir('/home/mary/tmp')
[3]:
vortex_description = dict(# Resource...
                          kind='gridpoint',
                          geometry='ncaled0025',
                          nativefmt='grib',
                          origin='historic',
                          model='arome',
                          vapp='arome',
                          vconf='caledonie',
                          cutoff='prod',
                          term=range(4),
                          date='2018050800',
                          # Provider...
                          namespace='vortex.multi.fr',
                          experiment='oper',
                          block='forecast',
                          # Container
                          shouldfly=True)
[4]:
with usevortex.quiet_get():
    resources = usevortex.get_resources(getmode='epygram',
                                        **vortex_description)
# [2018/12/19-13:47:28][common.util.usepygram][<module>:0031][INFO]: Epygram 1.3.5 loaded.
[5]:
rain = [r.readfield('indicatorOfParameter:150') for r in resources[1:]]  # term 0, no rain
[6]:
for i in range(len(rain)):
    if i == 0: continue  # term 1, no decumulation to do
    rain[i].operation('-', rain[i-1])
    rain[i].validity[0].set(cumulativeduration=(rain[i].validity[0].get()-rain[i-1].validity[0].get()))
[7]:
rain_series = epygram.formats.resource(os.path.join(pwd,'../outputs/rain_series.grib'), 'w', fmt='GRIB')
for r in rain:
    print(r.validity[0])
    rain_series.writefield(r)
rain_series.close()
FieldValidity containing:
    _basis: 2018-05-08 00:00:00
    _date_time: 2018-05-08 01:00:00
    _statistical_process_on_duration: None
    _cumulativeduration: 1:00:00
FieldValidity containing:
    _basis: 2018-05-08 00:00:00
    _date_time: 2018-05-08 02:00:00
    _statistical_process_on_duration: None
    _cumulativeduration: 1:00:00
FieldValidity containing:
    _basis: 2018-05-08 00:00:00
    _date_time: 2018-05-08 03:00:00
    _statistical_process_on_duration: None
    _cumulativeduration: 1:00:00