本文整理汇总了Python中cdo.Cdo.copy方法的典型用法代码示例。如果您正苦于以下问题:Python Cdo.copy方法的具体用法?Python Cdo.copy怎么用?Python Cdo.copy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类cdo.Cdo
的用法示例。
在下文中一共展示了Cdo.copy方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: create_climo_file
# 需要导入模块: from cdo import Cdo [as 别名]
# 或者: from cdo.Cdo import copy [as 别名]
def create_climo_file(fp_in, fp_out, t_start, t_end, variable):
'''
Generates climatological files from an input file and a selected time range
Paramenters:
f_in: input file path
f_out: output file path
t_start (datetime.datetime): start date of climo period
t_end (datetime.datetime): end date of climo period
variable (str): name of the variable which is being processed
Requested date range MUST exist in the input file
'''
supported_vars = {
'cddETCCDI', 'csdiETCCDI', 'cwdETCCDI', 'dtrETCCDI', 'fdETCCDI',
'gslETCCDI', 'idETCCDI', 'prcptotETCCDI', 'r10mmETCCDI', 'r1mmETCCDI',
'r20mmETCCDI', 'r95pETCCDI', 'r99pETCCDI', 'rx1dayETCCDI',
'rx5dayETCCDI', 'sdiiETCCDI', 'suETCCDI', 'thresholds', 'tn10pETCCDI',
'tn90pETCCDI', 'tnnETCCDI', 'tnxETCCDI', 'trETCCDI', 'tx10pETCCDI',
'tx90pETCCDI', 'txnETCCDI', 'txxETCCDI', 'wsdiETCCDI', 'tasmin',
'tasmax', 'pr'
}
if variable not in supported_vars:
raise Exception("Unsupported variable: cant't yet process {}".format(variable))
# Allow different ops by variable? # op = 'sum' if variable == 'pr' else 'mean'
op = 'mean'
cdo = Cdo()
date_range = '{},{}'.format(d2s(t_start), d2s(t_end))
if not os.path.exists(os.path.dirname(fp_out)):
os.makedirs(os.path.dirname(fp_out))
with NamedTemporaryFile(suffix='.nc') as tempf:
cdo.seldate(date_range, input=fp_in, output=tempf.name)
# Add extra postprocessing for specific variables.
vt = var_trans(variable)
if 'yr' in fp_in:
cdo_cmd = '{vt} -tim{op} {fname}'.format(fname=tempf.name, op=op, vt=vt)
else:
cdo_cmd = '{vt} -ymon{op} {fname} {vt} -yseas{op} {fname} {vt} -tim{op} {fname}'\
.format(fname=tempf.name, op=op, vt=vt)
cdo.copy(input=cdo_cmd, output=fp_out)
示例2: test_readCdf
# 需要导入模块: from cdo import Cdo [as 别名]
# 或者: from cdo.Cdo import copy [as 别名]
def test_readCdf(self):
cdo = Cdo()
input= "-settunits,days -setyear,2000 -for,1,4"
cdfFile = cdo.copy(options="-f nc",input=input)
if cdo.hasNetcdf:
cdf = cdo.readCdf(cdfFile)
self.assertEqual(sorted(['lat','lon','for','time']),sorted(list(cdf.variables.keys())))
示例3: test_fillmiss
# 需要导入模块: from cdo import Cdo [as 别名]
# 或者: from cdo.Cdo import copy [as 别名]
def test_fillmiss(self):
cdo = Cdo()
if not SHOW:
return
if cdo.hasNetcdf:
if 'CDO' in os.environ:
cdo.setCdo(os.environ.get('CDO'))
cdo.debug = DEBUG
rand = cdo.setname('v',input = '-random,r25x25 ', options = ' -f nc')
missRange = '0.25,0.85'
withMissRange = tempfile.NamedTemporaryFile(delete=True,prefix='cdoPy').name
arOrg = cdo.copy(input = rand,returnMaArray = 'v')
arWmr = cdo.setrtomiss(missRange,input = rand,output = withMissRange,returnMaArray='v')
arFm = cdo.fillmiss( input = withMissRange,returnMaArray = 'v')
arFm1s= cdo.fillmiss2(2, input = withMissRange,returnMaArray = 'v')
if 'setmisstonn' in cdo.operators:
arM2NN= cdo.setmisstonn( input = withMissRange,returnMaArray = 'v')
pool = multiprocessing.Pool(8)
pool.apply_async(plot, (arOrg, ),{"title":'org' })#ofile='fmOrg')
pool.apply_async(plot, (arWmr, ),{"title":'missing' })#ofile='fmWmr')
pool.apply_async(plot, (arFm, ),{"title":'fillmiss' })#ofile= 'fmFm')
pool.apply_async(plot, (arFm1s,),{"title":'fillmiss2'})#ofile='fmFm2')
if 'setmisstonn' in cdo.operators:
pool.apply_async(plot, (arM2NN,), {"title":'setmisstonn'})#, ofile='fmsetMNN')
pool.close()
pool.join()
else:
print("test_fillmiss disables because of missing python-netCDF4")