FV3-JEDI
model.py
Go to the documentation of this file.
1 import os
2 import datetime
3 import ewok
4 import solo
5 
6 
7 __all__ = ["fc_file", "obs_file", "r2d2_obsfile", "r2d2_anfile", "r2d2_fixfile"]
8 
9 
10 def fc_file(fcout, step):
11  fc = {}
12  fc['date'] = fcout['date']
13  keys = [fcout['exp'], fcout['type'], fcout['date'], ewok.jediformat(step)]
14  fname = '.'.join(keys)
15  fc['filename'] = os.path.join(fcout['datadir'], fname)
16  return fc
17 
18 
19 def obs_file(conf):
20  obsfile = conf['obsdatain']
21  return obsfile
22 
23 
24 def r2d2_obsfile(conf, date):
25  sdate = ewok.jediformat(date)
26  r2d2keys = ['fv3jedi', conf['source'], sdate, 'nc']
27  r2d2file = '.'.join(r2d2keys)
28  return r2d2file
29 
30 
31 def _get_restarts(conf, date):
32  # rdate = date.strftime('%Y%m%d.%H')
33 
34  ntiles = conf.get('ntiles', 6)
35 
36  ftypes = conf.get('ftypes', ['fv_core.res', 'fv_srf_wnd.res', 'fv_tracer.res', 'sfc_data'])
37  ftiles = [f'tile{t+1}' for t in range(0, ntiles)]
38 
39  restarts = []
40  fname = 'coupler.res'
41  restarts.append(fname)
42  for ftype in ftypes:
43  for tile in ftiles:
44  # fname = f'{rdate}0000.{ftype}.{tile}.nc'
45  fname = f'{ftype}.{tile}.nc'
46  restarts.append(fname)
47  return restarts
48 
49 
50 def _get_fv3files(conf):
51 
52  npz = conf.get('npz', 64)
53  res = conf.get('resolution', 'c12')
54 
55  flist = conf.get('fv3filesList', [f'akbk{npz}.nc4', 'field_table', 'fmsmpp.nml', f'input_gfs_{res}.nml', 'inputpert_4dvar.nml'])
56 
57  fv3files = []
58  for fname in flist:
59  fv3files.append(fname)
60 
61  return fv3files
62 
63 
64 def _get_fieldsets(conf):
65 
66  flist = conf.get('fieldsetsList', ['dynamics.yaml'])
67 
68  fieldsets = []
69  for fname in flist:
70  fieldsets.append(fname)
71 
72  return fieldsets
73 
74 
75 def r2d2_anfile(conf, date):
76 
77  anlfileDict = {}
78  restarts = _get_restarts(conf, date)
79  fv3files = _get_fv3files(conf)
80  fieldsets = _get_fieldsets(conf)
81 
82  anlfileDict = {'restarts' : restarts,
83  'fv3files' : fv3files,
84  'fieldsets': fieldsets}
85 
86  return anlfileDict
model.obs_file
def obs_file(conf)
Definition: model.py:19
model._get_fv3files
def _get_fv3files(conf)
Definition: model.py:50
model.r2d2_obsfile
def r2d2_obsfile(conf, date)
Definition: model.py:24
model.fc_file
def fc_file(fcout, step)
Definition: model.py:10
model._get_restarts
def _get_restarts(conf, date)
Definition: model.py:31
model.r2d2_anfile
def r2d2_anfile(conf, date)
Definition: model.py:75
model._get_fieldsets
def _get_fieldsets(conf)
Definition: model.py:64