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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
|
#! @PYTHON@
#
from cdoTest import *
HAS_CGRIBEX=cdo_check_req("has-cgribex")
IFILE=f'{DATAPATH}/pl_data.grb'
OPERATORS=["select","delete"]
test_module = TestModule()
SELARGS={ "select" : ["code=130,152","code=130,152,level=9000,90","code=130,152,level=9000,90,timestep=2,3,5","code=130","level=90000"],
"delete" : ["code=129","code=129,130,level=90000,900","code=129,130,level=90000,900,timestep=1,4"]}
for OPER in OPERATORS:
for TNUM,SELECT in enumerate(SELARGS[OPER],1):
RFILE=f'{DATAPATH}/select{TNUM}_ref'
OFILE=f'{OPER}{TNUM}_res'
t=TAPTest(f'{OPER} {SELECT}')
t.add(f'{CDO} {OPER},{SELECT} {IFILE} {OFILE}')
t.add(f'{CDO} diff {OFILE} {RFILE}')
t.clean(OFILE)
test_module.add(t)
SELARGS={ "select" : ["param=130.128,152.128","param=130.128,152.128,levidx=2,4","param=130.128,152.128,levidx=2,4,day=3,4,6","param=130.128","levidx=1,zaxisname=pressure"],
"delete" : ["param=129.128","param=129.128,130.128,levidx=1,3","param=129.128,130.128,levidx=1,3,day=2,5"]}
for OPER in OPERATORS:
for TNUM,SELECT in enumerate(SELARGS[OPER],1):
RFILE=f'{DATAPATH}/select{TNUM}_ref'
OFILE=f'{OPER}{TNUM}_res'
t=TAPTest(f'{OPER} {SELECT}')
t.add(f'{CDO} {OPER},{SELECT} {IFILE} {OFILE}')
t.add(f'{CDO} diff {OFILE} {RFILE}')
t.clean(OFILE)
test_module.add(t)
if (HAS_CGRIBEX):
SELARGS={ "select" : ["name=t,lsp","name=t,lsp,level=9000,90","name=t,lsp,level=9000,90,timestep_of_year=2,3,5","name=t","levrange=90000,90000"],
"delete" : ["name=geosp","name=geosp,t,level=90000,900","name=geosp,t,level=90000,900,timestep_of_year=1,4"]}
for OPER in OPERATORS:
for TNUM,SELECT in enumerate(SELARGS[OPER],1):
RFILE=f'{DATAPATH}/select{TNUM}_ref'
OFILE=f'{OPER}{TNUM}_res'
t=TAPTest(f'{OPER} {SELECT}')
t.add(f'{CDO} {OPER},{SELECT} {IFILE} {OFILE}')
t.add(f'{CDO} diff {OFILE} {RFILE}')
t.clean(OFILE)
test_module.add(t)
test_module.prepare(f'{CDO} -f srv -seq,1,5 maskfile')
OPER="select"
SELARGS={"steptype=instant",
"zaxisname=pressure,surface,gridname=lonlat",
"zaxisnum=1,2,gridnum=1",
"year=1978,month=1,day=2/6",
"season=DJF",
"dom=2jan,3jan,4jan,5jan,6jan",
"timestepmask=maskfile",
"date=1978-01-02,1978-01-03,1978-01-04,1978-01-05,1978-01-06",
"date=1978-01-02T12:00:00,1978-01-03T12:00:00,1978-01-04T12:00:00,1978-01-05T12:00:00,1978-01-06T12:00:00",
"startdate=1978-01-02T12:00:00,enddate=1978-01-06T12:00:00"}
for SELECT in SELARGS:
OFILE=f'{OPER}{TNUM}_res'
t=TAPTest(f'{OPER} {SELECT}')
t.add(f'{CDO} {OPER},{SELECT} {IFILE} {OFILE}')
t.add(f'{CDO} diff {OFILE} {IFILE}')
t.clean(OFILE)
test_module.add(t)
t.clean(f'maskfile')
TNUM=6
OPER="select"
SELARGS={"code=129,130,134,140", "timestep=1/16", "startdate=1978-01-02T12:00:00,enddate=1978-01-17T12:00:00"}
IFILES=f'{DATAPATH}/seldata?.grb'
RFILE=f'{DATAPATH}/select{TNUM}_ref'
OFILE=f'{OPER}{TNUM}_res'
for SELECT in SELARGS:
t=TAPTest(f'{OPER} {SELECT}')
t.add(f'{CDO} {OPER},{SELECT} {IFILES} {OFILE}')
t.add(f'{CDO} diff {OFILE} {RFILE}')
t.clean(OFILE)
test_module.add(t)
TNUM=7
OPER="select"
SELARGS={"code=130,134,timestep=3/14/2"}
IFILES=f'{DATAPATH}/seldata?.grb'
RFILE=f'{DATAPATH}/select{TNUM}_ref'
OFILE=f'{OPER}{TNUM}_res'
for SELECT in SELARGS:
t=TAPTest(f'{OPER} {SELECT}')
t.add(f'{CDO} {OPER},{SELECT} {IFILES} {OFILE}')
t.add(f'{CDO} diff {OFILE} {RFILE}')
t.clean(OFILE)
test_module.add(t)
TNUM=8
OPER="select"
SELARGS={"code=130,140,timestep=7/12", "code=130,140,startdate=1978-01-08T12:00:00,enddate=1978-01-13T12:00:00"}
IFILES=f'{DATAPATH}/seldata?.grb'
RFILE=f'{DATAPATH}/select{TNUM}_ref'
OFILE=f'{OPER}{TNUM}_res'
for SELECT in SELARGS:
t=TAPTest(f'{OPER} {SELECT}')
t.add(f'{CDO} {OPER},{SELECT} {IFILES} {OFILE}')
t.add(f'{CDO} diff {OFILE} {RFILE}')
t.clean(OFILE)
test_module.add(t)
test_module.run()
|