1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
#! @PYTHON@
from cdoTest import *
from collections import defaultdict
HAS_NETCDF=cdo_check_req("has-nc")
OPERATORS=[
"timmin", "timmax", "timrange", "timsum", "timavg", "timmean", "timstd", "timstd1", "timvar", "timvar1",
"yearmin", "yearmax", "yearrange", "yearsum", "yearavg", "yearmean", "yearstd", "yearstd1", "yearvar", "yearvar1",
"monmin", "monmax", "monrange", "monsum", "monavg", "monmean", "monstd", "monstd1", "monvar", "monvar1",
"daymin", "daymax", "dayrange", "daysum", "dayavg", "daymean", "daystd", "daystd1", "dayvar", "dayvar1"]
IFILES=defaultdict(lambda : f'{DATAPATH}/ts_mm_5years',{"day" : f'{DATAPATH}/ts_6h_1mon' , "mon" : f'{DATAPATH}/ts_1d_1year'})
FMS=["srv","grb"]
if (HAS_NETCDF):
FMS+=["nc"]
test_module = TestModule()
for FILE_MOD in ["","m"]:
WITHMISSVALS="+missvals" if FILE_MOD == "m" else ""
for OPERATOR in OPERATORS:
IFILE=IFILES[OPERATOR[:3]]
IFILE=IFILE + "_m" if FILE_MOD == "m" else IFILE
RFILE=f'{DATAPATH}/{OPERATOR}{FILE_MOD}_ref'
OFILE=f'{OPERATOR}{FILE_MOD}_res'
t=TAPTest(f'({",".join(FMS)}) {OPERATOR} {WITHMISSVALS}')
for FM in FMS:
t.add(f'{CDO} -f {FM} {OPERATOR} {IFILE} {OFILE}')
t.add(f'{CDO} diff,abslim=0.004 {OFILE} {RFILE}')
t.clean(OFILE)
test_module.add(t)
test_module.run()
|