vortex-nwp 2.0.0b1__py3-none-any.whl → 2.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- vortex/__init__.py +75 -47
- vortex/algo/__init__.py +3 -2
- vortex/algo/components.py +944 -618
- vortex/algo/mpitools.py +802 -497
- vortex/algo/mpitools_templates/__init__.py +1 -0
- vortex/algo/serversynctools.py +34 -33
- vortex/config.py +19 -22
- vortex/data/__init__.py +9 -3
- vortex/data/abstractstores.py +593 -655
- vortex/data/containers.py +217 -162
- vortex/data/contents.py +65 -39
- vortex/data/executables.py +93 -102
- vortex/data/flow.py +40 -34
- vortex/data/geometries.py +228 -132
- vortex/data/handlers.py +436 -227
- vortex/data/outflow.py +15 -15
- vortex/data/providers.py +185 -163
- vortex/data/resources.py +48 -42
- vortex/data/stores.py +540 -417
- vortex/data/sync_templates/__init__.py +0 -0
- vortex/gloves.py +114 -87
- vortex/layout/__init__.py +1 -8
- vortex/layout/contexts.py +150 -84
- vortex/layout/dataflow.py +353 -202
- vortex/layout/monitor.py +264 -128
- vortex/nwp/__init__.py +5 -2
- vortex/nwp/algo/__init__.py +14 -5
- vortex/nwp/algo/assim.py +205 -151
- vortex/nwp/algo/clim.py +683 -517
- vortex/nwp/algo/coupling.py +447 -225
- vortex/nwp/algo/eda.py +437 -229
- vortex/nwp/algo/eps.py +403 -231
- vortex/nwp/algo/forecasts.py +416 -275
- vortex/nwp/algo/fpserver.py +683 -307
- vortex/nwp/algo/ifsnaming.py +205 -145
- vortex/nwp/algo/ifsroot.py +215 -122
- vortex/nwp/algo/monitoring.py +137 -76
- vortex/nwp/algo/mpitools.py +330 -190
- vortex/nwp/algo/odbtools.py +637 -353
- vortex/nwp/algo/oopsroot.py +454 -273
- vortex/nwp/algo/oopstests.py +90 -56
- vortex/nwp/algo/request.py +287 -206
- vortex/nwp/algo/stdpost.py +878 -522
- vortex/nwp/data/__init__.py +22 -4
- vortex/nwp/data/assim.py +125 -137
- vortex/nwp/data/boundaries.py +121 -68
- vortex/nwp/data/climfiles.py +193 -211
- vortex/nwp/data/configfiles.py +73 -69
- vortex/nwp/data/consts.py +426 -401
- vortex/nwp/data/ctpini.py +59 -43
- vortex/nwp/data/diagnostics.py +94 -66
- vortex/nwp/data/eda.py +50 -51
- vortex/nwp/data/eps.py +195 -146
- vortex/nwp/data/executables.py +440 -434
- vortex/nwp/data/fields.py +63 -48
- vortex/nwp/data/gridfiles.py +183 -111
- vortex/nwp/data/logs.py +250 -217
- vortex/nwp/data/modelstates.py +180 -151
- vortex/nwp/data/monitoring.py +72 -99
- vortex/nwp/data/namelists.py +254 -202
- vortex/nwp/data/obs.py +400 -308
- vortex/nwp/data/oopsexec.py +22 -20
- vortex/nwp/data/providers.py +90 -65
- vortex/nwp/data/query.py +71 -82
- vortex/nwp/data/stores.py +49 -36
- vortex/nwp/data/surfex.py +136 -137
- vortex/nwp/syntax/__init__.py +1 -1
- vortex/nwp/syntax/stdattrs.py +173 -111
- vortex/nwp/tools/__init__.py +2 -2
- vortex/nwp/tools/addons.py +22 -17
- vortex/nwp/tools/agt.py +24 -12
- vortex/nwp/tools/bdap.py +16 -5
- vortex/nwp/tools/bdcp.py +4 -1
- vortex/nwp/tools/bdm.py +3 -0
- vortex/nwp/tools/bdmp.py +14 -9
- vortex/nwp/tools/conftools.py +728 -378
- vortex/nwp/tools/drhook.py +12 -8
- vortex/nwp/tools/grib.py +65 -39
- vortex/nwp/tools/gribdiff.py +22 -17
- vortex/nwp/tools/ifstools.py +82 -42
- vortex/nwp/tools/igastuff.py +167 -143
- vortex/nwp/tools/mars.py +14 -2
- vortex/nwp/tools/odb.py +234 -125
- vortex/nwp/tools/partitioning.py +61 -37
- vortex/nwp/tools/satrad.py +27 -12
- vortex/nwp/util/async.py +83 -55
- vortex/nwp/util/beacon.py +10 -10
- vortex/nwp/util/diffpygram.py +174 -86
- vortex/nwp/util/ens.py +144 -63
- vortex/nwp/util/hooks.py +30 -19
- vortex/nwp/util/taskdeco.py +28 -24
- vortex/nwp/util/usepygram.py +278 -172
- vortex/nwp/util/usetnt.py +31 -17
- vortex/sessions.py +72 -39
- vortex/syntax/__init__.py +1 -1
- vortex/syntax/stdattrs.py +410 -171
- vortex/syntax/stddeco.py +31 -22
- vortex/toolbox.py +327 -192
- vortex/tools/__init__.py +11 -2
- vortex/tools/actions.py +110 -121
- vortex/tools/addons.py +111 -92
- vortex/tools/arm.py +42 -22
- vortex/tools/compression.py +72 -69
- vortex/tools/date.py +11 -4
- vortex/tools/delayedactions.py +242 -132
- vortex/tools/env.py +75 -47
- vortex/tools/folder.py +342 -171
- vortex/tools/grib.py +341 -162
- vortex/tools/lfi.py +423 -216
- vortex/tools/listings.py +109 -40
- vortex/tools/names.py +218 -156
- vortex/tools/net.py +655 -299
- vortex/tools/parallelism.py +93 -61
- vortex/tools/prestaging.py +55 -31
- vortex/tools/schedulers.py +172 -105
- vortex/tools/services.py +403 -334
- vortex/tools/storage.py +293 -358
- vortex/tools/surfex.py +24 -24
- vortex/tools/systems.py +1234 -643
- vortex/tools/targets.py +156 -100
- vortex/util/__init__.py +1 -1
- vortex/util/config.py +378 -327
- vortex/util/empty.py +2 -2
- vortex/util/helpers.py +56 -24
- vortex/util/introspection.py +18 -12
- vortex/util/iosponge.py +8 -4
- vortex/util/roles.py +4 -6
- vortex/util/storefunctions.py +39 -13
- vortex/util/structs.py +3 -3
- vortex/util/worker.py +29 -17
- vortex_nwp-2.1.0.dist-info/METADATA +67 -0
- vortex_nwp-2.1.0.dist-info/RECORD +144 -0
- {vortex_nwp-2.0.0b1.dist-info → vortex_nwp-2.1.0.dist-info}/WHEEL +1 -1
- vortex/layout/appconf.py +0 -109
- vortex/layout/jobs.py +0 -1276
- vortex/layout/nodes.py +0 -1424
- vortex/layout/subjobs.py +0 -464
- vortex_nwp-2.0.0b1.dist-info/METADATA +0 -50
- vortex_nwp-2.0.0b1.dist-info/RECORD +0 -146
- {vortex_nwp-2.0.0b1.dist-info → vortex_nwp-2.1.0.dist-info/licenses}/LICENSE +0 -0
- {vortex_nwp-2.0.0b1.dist-info → vortex_nwp-2.1.0.dist-info}/top_level.txt +0 -0
vortex/nwp/data/consts.py
CHANGED
|
@@ -8,7 +8,11 @@ from vortex.data.contents import DataRaw, JsonDictContent, TextContent
|
|
|
8
8
|
from vortex.data.geometries import GaussGeometry, LonlatGeometry
|
|
9
9
|
from vortex.data.outflow import ModelGeoResource, ModelResource, StaticResource
|
|
10
10
|
from vortex.syntax.stdattrs import month_deco
|
|
11
|
-
from vortex.syntax.stddeco import
|
|
11
|
+
from vortex.syntax.stddeco import (
|
|
12
|
+
namebuilding_append,
|
|
13
|
+
namebuilding_delete,
|
|
14
|
+
namebuilding_insert,
|
|
15
|
+
)
|
|
12
16
|
|
|
13
17
|
#: No automatic export
|
|
14
18
|
__all__ = []
|
|
@@ -18,159 +22,162 @@ class GenvModelResource(ModelResource):
|
|
|
18
22
|
"""Abstract class for gget driven resources."""
|
|
19
23
|
|
|
20
24
|
_abstract = True
|
|
21
|
-
_footprint = [
|
|
25
|
+
_footprint = [
|
|
26
|
+
gvar,
|
|
27
|
+
]
|
|
22
28
|
|
|
23
29
|
|
|
24
30
|
class GenvModelGeoResource(ModelGeoResource):
|
|
25
31
|
"""Abstract class for gget driven resources."""
|
|
26
32
|
|
|
27
33
|
_abstract = True
|
|
28
|
-
_footprint = [
|
|
34
|
+
_footprint = [
|
|
35
|
+
gvar,
|
|
36
|
+
]
|
|
29
37
|
|
|
30
38
|
|
|
31
39
|
class GPSList(GenvModelResource):
|
|
32
40
|
"""
|
|
33
41
|
Class of a GPS satellite ground coefficients. A Genvkey can be given.
|
|
34
42
|
"""
|
|
43
|
+
|
|
35
44
|
_footprint = dict(
|
|
36
|
-
info
|
|
37
|
-
attr
|
|
38
|
-
kind
|
|
39
|
-
values
|
|
40
|
-
remap
|
|
41
|
-
),
|
|
42
|
-
clscontents = dict(
|
|
43
|
-
default = TextContent,
|
|
45
|
+
info="Set of GPS coefficients",
|
|
46
|
+
attr=dict(
|
|
47
|
+
kind=dict(
|
|
48
|
+
values=["gpslist", "listgpssol"],
|
|
49
|
+
remap=dict(listgpssol="gpslist"),
|
|
44
50
|
),
|
|
45
|
-
|
|
46
|
-
default
|
|
51
|
+
clscontents=dict(
|
|
52
|
+
default=TextContent,
|
|
47
53
|
),
|
|
48
|
-
|
|
54
|
+
gvar=dict(default="list_gpssol"),
|
|
55
|
+
),
|
|
49
56
|
)
|
|
50
57
|
|
|
51
58
|
@property
|
|
52
59
|
def realkind(self):
|
|
53
|
-
return
|
|
60
|
+
return "gpslist"
|
|
54
61
|
|
|
55
62
|
|
|
56
63
|
class MODESList(GenvModelResource):
|
|
57
64
|
"""
|
|
58
65
|
Class of a MODE-S satellite white list for Bator.
|
|
59
66
|
"""
|
|
67
|
+
|
|
60
68
|
_footprint = dict(
|
|
61
|
-
info
|
|
62
|
-
attr
|
|
63
|
-
kind
|
|
64
|
-
values
|
|
65
|
-
remap
|
|
69
|
+
info="Set of MODE-S coefficients",
|
|
70
|
+
attr=dict(
|
|
71
|
+
kind=dict(
|
|
72
|
+
values=["modeslist", "listmodes"],
|
|
73
|
+
remap=dict(listmodes="modeslist"),
|
|
66
74
|
),
|
|
67
|
-
clscontents
|
|
68
|
-
default
|
|
75
|
+
clscontents=dict(
|
|
76
|
+
default=TextContent,
|
|
69
77
|
),
|
|
70
|
-
gvar
|
|
71
|
-
default
|
|
78
|
+
gvar=dict(
|
|
79
|
+
default="list_modes",
|
|
72
80
|
),
|
|
73
|
-
)
|
|
81
|
+
),
|
|
74
82
|
)
|
|
75
83
|
|
|
76
84
|
@property
|
|
77
85
|
def realkind(self):
|
|
78
|
-
return
|
|
86
|
+
return "modeslist"
|
|
79
87
|
|
|
80
88
|
|
|
81
89
|
class BatodbConf(GenvModelResource):
|
|
82
90
|
"""
|
|
83
91
|
Default parameters for BATOR execution. A Genvkey can be given.
|
|
84
92
|
"""
|
|
93
|
+
|
|
85
94
|
_footprint = dict(
|
|
86
|
-
info
|
|
87
|
-
attr
|
|
88
|
-
kind
|
|
89
|
-
values
|
|
90
|
-
remap
|
|
91
|
-
parambator
|
|
92
|
-
batorconf
|
|
95
|
+
info="Batodb parametrization",
|
|
96
|
+
attr=dict(
|
|
97
|
+
kind=dict(
|
|
98
|
+
values=["batodbconf", "batorconf", "parambator"],
|
|
99
|
+
remap=dict(
|
|
100
|
+
parambator="batodbconf",
|
|
101
|
+
batorconf="batodbconf",
|
|
93
102
|
),
|
|
94
103
|
),
|
|
95
|
-
clscontents
|
|
96
|
-
default
|
|
97
|
-
),
|
|
98
|
-
gvar = dict(
|
|
99
|
-
default = 'param_bator_cfg'
|
|
104
|
+
clscontents=dict(
|
|
105
|
+
default=TextContent,
|
|
100
106
|
),
|
|
101
|
-
|
|
107
|
+
gvar=dict(default="param_bator_cfg"),
|
|
108
|
+
),
|
|
102
109
|
)
|
|
103
110
|
|
|
104
111
|
@property
|
|
105
112
|
def realkind(self):
|
|
106
|
-
return
|
|
113
|
+
return "batodbconf"
|
|
107
114
|
|
|
108
115
|
|
|
109
116
|
class BatorAveragingMask(GenvModelResource):
|
|
110
117
|
"""
|
|
111
118
|
Configuration file that drives the averaging of radiances in Bator.'''
|
|
112
119
|
"""
|
|
120
|
+
|
|
113
121
|
_footprint = dict(
|
|
114
|
-
info
|
|
115
|
-
attr
|
|
116
|
-
kind
|
|
117
|
-
values
|
|
118
|
-
|
|
119
|
-
|
|
122
|
+
info="Definition file for the bator averaging",
|
|
123
|
+
attr=dict(
|
|
124
|
+
kind=dict(
|
|
125
|
+
values=[
|
|
126
|
+
"avgmask",
|
|
127
|
+
]
|
|
120
128
|
),
|
|
121
|
-
|
|
122
|
-
|
|
129
|
+
sensor=dict(),
|
|
130
|
+
clscontents=dict(
|
|
131
|
+
default=TextContent,
|
|
123
132
|
),
|
|
124
|
-
gvar
|
|
125
|
-
default
|
|
133
|
+
gvar=dict(
|
|
134
|
+
default="MASK_[sensor]",
|
|
126
135
|
),
|
|
127
|
-
)
|
|
136
|
+
),
|
|
128
137
|
)
|
|
129
138
|
|
|
130
139
|
@property
|
|
131
140
|
def realkind(self):
|
|
132
|
-
return
|
|
141
|
+
return "avgmask"
|
|
133
142
|
|
|
134
143
|
|
|
135
144
|
class AtmsMask(BatorAveragingMask):
|
|
136
145
|
"""Kept for backward compatibility with cy40 (see BatorAveragingMask)."""
|
|
146
|
+
|
|
137
147
|
_footprint = dict(
|
|
138
|
-
attr
|
|
139
|
-
kind
|
|
140
|
-
values
|
|
141
|
-
remap
|
|
148
|
+
attr=dict(
|
|
149
|
+
kind=dict(
|
|
150
|
+
values=["atms", "atmsmask"],
|
|
151
|
+
remap=dict(atms="atmsmask"),
|
|
142
152
|
),
|
|
143
|
-
sensor
|
|
144
|
-
default
|
|
145
|
-
optional
|
|
153
|
+
sensor=dict(
|
|
154
|
+
default="atms",
|
|
155
|
+
optional=True,
|
|
146
156
|
),
|
|
147
157
|
)
|
|
148
158
|
)
|
|
149
159
|
|
|
150
160
|
@property
|
|
151
161
|
def realkind(self):
|
|
152
|
-
return
|
|
162
|
+
return "atmsmask"
|
|
153
163
|
|
|
154
164
|
|
|
155
165
|
class RtCoef(GenvModelResource):
|
|
156
166
|
"""
|
|
157
167
|
Class of a tar-zip file of satellite coefficients. A Genvkey can be given.
|
|
158
168
|
"""
|
|
169
|
+
|
|
159
170
|
_footprint = dict(
|
|
160
|
-
info
|
|
161
|
-
attr
|
|
162
|
-
kind
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
gvar = dict(
|
|
166
|
-
default = '[kind]_tgz'
|
|
167
|
-
),
|
|
168
|
-
)
|
|
171
|
+
info="Set of satellite coefficients",
|
|
172
|
+
attr=dict(
|
|
173
|
+
kind=dict(values=["rtcoef", "mwave_rtcoef"]),
|
|
174
|
+
gvar=dict(default="[kind]_tgz"),
|
|
175
|
+
),
|
|
169
176
|
)
|
|
170
177
|
|
|
171
178
|
@property
|
|
172
179
|
def realkind(self):
|
|
173
|
-
return
|
|
180
|
+
return "rtcoef"
|
|
174
181
|
|
|
175
182
|
|
|
176
183
|
class RRTM(GenvModelResource):
|
|
@@ -178,21 +185,22 @@ class RRTM(GenvModelResource):
|
|
|
178
185
|
Class of a tar-zip file of coefficients for radiative transfers computations.
|
|
179
186
|
A Genvkey can be given.
|
|
180
187
|
"""
|
|
188
|
+
|
|
181
189
|
_footprint = dict(
|
|
182
|
-
info
|
|
183
|
-
attr
|
|
184
|
-
kind
|
|
185
|
-
values
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
default = 'rrtm_const'
|
|
190
|
+
info="Coefficients of RRTM scheme",
|
|
191
|
+
attr=dict(
|
|
192
|
+
kind=dict(
|
|
193
|
+
values=[
|
|
194
|
+
"rrtm",
|
|
195
|
+
]
|
|
189
196
|
),
|
|
190
|
-
|
|
197
|
+
gvar=dict(default="rrtm_const"),
|
|
198
|
+
),
|
|
191
199
|
)
|
|
192
200
|
|
|
193
201
|
@property
|
|
194
202
|
def realkind(self):
|
|
195
|
-
return
|
|
203
|
+
return "rrtm"
|
|
196
204
|
|
|
197
205
|
|
|
198
206
|
class CoefModel(GenvModelResource):
|
|
@@ -200,22 +208,21 @@ class CoefModel(GenvModelResource):
|
|
|
200
208
|
TODO.
|
|
201
209
|
A Genvkey can be given.
|
|
202
210
|
"""
|
|
211
|
+
|
|
203
212
|
_footprint = dict(
|
|
204
|
-
info
|
|
205
|
-
attr
|
|
206
|
-
kind
|
|
207
|
-
values
|
|
208
|
-
remap
|
|
209
|
-
),
|
|
210
|
-
gvar = dict(
|
|
211
|
-
default = 'coef_model'
|
|
213
|
+
info="Coefficients for some purpose... but which one ?",
|
|
214
|
+
attr=dict(
|
|
215
|
+
kind=dict(
|
|
216
|
+
values=["coef_model", "coefmodel"],
|
|
217
|
+
remap=dict(autoremap="first"),
|
|
212
218
|
),
|
|
213
|
-
|
|
219
|
+
gvar=dict(default="coef_model"),
|
|
220
|
+
),
|
|
214
221
|
)
|
|
215
222
|
|
|
216
223
|
@property
|
|
217
224
|
def realkind(self):
|
|
218
|
-
return
|
|
225
|
+
return "coef_model"
|
|
219
226
|
|
|
220
227
|
|
|
221
228
|
class ScatCMod5(GenvModelResource):
|
|
@@ -223,22 +230,21 @@ class ScatCMod5(GenvModelResource):
|
|
|
223
230
|
TODO.
|
|
224
231
|
A Genvkey can be given.
|
|
225
232
|
"""
|
|
233
|
+
|
|
226
234
|
_footprint = dict(
|
|
227
|
-
info
|
|
228
|
-
attr
|
|
229
|
-
kind
|
|
230
|
-
values
|
|
231
|
-
remap
|
|
232
|
-
),
|
|
233
|
-
gvar = dict(
|
|
234
|
-
default = 'scat_cmod5_table'
|
|
235
|
+
info="Coefficients for some purpose... but which one ?",
|
|
236
|
+
attr=dict(
|
|
237
|
+
kind=dict(
|
|
238
|
+
values=["cmod5", "cmod5table", "scat_cmod5", "scatcmod5"],
|
|
239
|
+
remap=dict(autoremap="first"),
|
|
235
240
|
),
|
|
236
|
-
|
|
241
|
+
gvar=dict(default="scat_cmod5_table"),
|
|
242
|
+
),
|
|
237
243
|
)
|
|
238
244
|
|
|
239
245
|
@property
|
|
240
246
|
def realkind(self):
|
|
241
|
-
return
|
|
247
|
+
return "cmod5"
|
|
242
248
|
|
|
243
249
|
|
|
244
250
|
class BcorIRSea(GenvModelResource):
|
|
@@ -246,24 +252,23 @@ class BcorIRSea(GenvModelResource):
|
|
|
246
252
|
Obsolete.
|
|
247
253
|
A Genvkey can be given.
|
|
248
254
|
"""
|
|
255
|
+
|
|
249
256
|
_footprint = dict(
|
|
250
|
-
info
|
|
251
|
-
attr
|
|
252
|
-
kind
|
|
253
|
-
values
|
|
254
|
-
),
|
|
255
|
-
scope = dict(
|
|
256
|
-
values = ['irsea'],
|
|
257
|
+
info="Some bias ?",
|
|
258
|
+
attr=dict(
|
|
259
|
+
kind=dict(
|
|
260
|
+
values=["bcor"],
|
|
257
261
|
),
|
|
258
|
-
|
|
259
|
-
|
|
262
|
+
scope=dict(
|
|
263
|
+
values=["irsea"],
|
|
260
264
|
),
|
|
261
|
-
|
|
265
|
+
gvar=dict(default="bcor_meto_[scope]"),
|
|
266
|
+
),
|
|
262
267
|
)
|
|
263
268
|
|
|
264
269
|
@property
|
|
265
270
|
def realkind(self):
|
|
266
|
-
return
|
|
271
|
+
return "bcor_irsea"
|
|
267
272
|
|
|
268
273
|
|
|
269
274
|
class RmtbError(GenvModelResource):
|
|
@@ -271,24 +276,23 @@ class RmtbError(GenvModelResource):
|
|
|
271
276
|
Obsolete.
|
|
272
277
|
A Genvkey can be given.
|
|
273
278
|
"""
|
|
279
|
+
|
|
274
280
|
_footprint = dict(
|
|
275
|
-
info
|
|
276
|
-
attr
|
|
277
|
-
kind
|
|
278
|
-
values
|
|
279
|
-
),
|
|
280
|
-
scope = dict(
|
|
281
|
-
values = ['airs', 'noaa'],
|
|
281
|
+
info="Some bias ?",
|
|
282
|
+
attr=dict(
|
|
283
|
+
kind=dict(
|
|
284
|
+
values=["rmtberr"],
|
|
282
285
|
),
|
|
283
|
-
|
|
284
|
-
|
|
286
|
+
scope=dict(
|
|
287
|
+
values=["airs", "noaa"],
|
|
285
288
|
),
|
|
286
|
-
|
|
289
|
+
gvar=dict(default="[scope]_rmtberr"),
|
|
290
|
+
),
|
|
287
291
|
)
|
|
288
292
|
|
|
289
293
|
@property
|
|
290
294
|
def realkind(self):
|
|
291
|
-
return
|
|
295
|
+
return "rmtberr"
|
|
292
296
|
|
|
293
297
|
|
|
294
298
|
class ChanSpectral(GenvModelResource):
|
|
@@ -296,27 +300,26 @@ class ChanSpectral(GenvModelResource):
|
|
|
296
300
|
Obsolete.
|
|
297
301
|
A Genvkey can be given.
|
|
298
302
|
"""
|
|
303
|
+
|
|
299
304
|
_footprint = dict(
|
|
300
|
-
info
|
|
301
|
-
attr
|
|
302
|
-
kind
|
|
303
|
-
values
|
|
304
|
-
remap
|
|
305
|
-
),
|
|
306
|
-
scope = dict(
|
|
307
|
-
optional = True,
|
|
308
|
-
default = 'noaa',
|
|
309
|
-
values = ['noaa'],
|
|
305
|
+
info="Coefficients for some purpose... but which one ?",
|
|
306
|
+
attr=dict(
|
|
307
|
+
kind=dict(
|
|
308
|
+
values=["chanspec", "chan_spec"],
|
|
309
|
+
remap=dict(autoremap="first"),
|
|
310
310
|
),
|
|
311
|
-
|
|
312
|
-
|
|
311
|
+
scope=dict(
|
|
312
|
+
optional=True,
|
|
313
|
+
default="noaa",
|
|
314
|
+
values=["noaa"],
|
|
313
315
|
),
|
|
314
|
-
|
|
316
|
+
gvar=dict(default="[scope]_chanspec"),
|
|
317
|
+
),
|
|
315
318
|
)
|
|
316
319
|
|
|
317
320
|
@property
|
|
318
321
|
def realkind(self):
|
|
319
|
-
return
|
|
322
|
+
return "chanspec"
|
|
320
323
|
|
|
321
324
|
|
|
322
325
|
class Correl(GenvModelResource):
|
|
@@ -324,25 +327,24 @@ class Correl(GenvModelResource):
|
|
|
324
327
|
TODO.
|
|
325
328
|
A Genvkey can be given.
|
|
326
329
|
"""
|
|
330
|
+
|
|
327
331
|
_footprint = dict(
|
|
328
|
-
info
|
|
329
|
-
attr
|
|
330
|
-
kind
|
|
331
|
-
values
|
|
332
|
-
),
|
|
333
|
-
scope = dict(
|
|
334
|
-
optional = True,
|
|
335
|
-
default = 'misc',
|
|
332
|
+
info="Coefficients for some purpose... but which one ?",
|
|
333
|
+
attr=dict(
|
|
334
|
+
kind=dict(
|
|
335
|
+
values=["correl"],
|
|
336
336
|
),
|
|
337
|
-
|
|
338
|
-
|
|
337
|
+
scope=dict(
|
|
338
|
+
optional=True,
|
|
339
|
+
default="misc",
|
|
339
340
|
),
|
|
340
|
-
|
|
341
|
+
gvar=dict(default="[scope]_correl"),
|
|
342
|
+
),
|
|
341
343
|
)
|
|
342
344
|
|
|
343
345
|
@property
|
|
344
346
|
def realkind(self):
|
|
345
|
-
return
|
|
347
|
+
return "correl"
|
|
346
348
|
|
|
347
349
|
|
|
348
350
|
class CstLim(GenvModelResource):
|
|
@@ -350,27 +352,26 @@ class CstLim(GenvModelResource):
|
|
|
350
352
|
Obsolete.
|
|
351
353
|
A Genvkey can be given.
|
|
352
354
|
"""
|
|
355
|
+
|
|
353
356
|
_footprint = dict(
|
|
354
|
-
info
|
|
355
|
-
attr
|
|
356
|
-
kind
|
|
357
|
-
values
|
|
358
|
-
remap
|
|
359
|
-
),
|
|
360
|
-
scope = dict(
|
|
361
|
-
optional = True,
|
|
362
|
-
default = 'noaa',
|
|
363
|
-
values = ['noaa'],
|
|
357
|
+
info="Coefficients for some purpose... but which one ?",
|
|
358
|
+
attr=dict(
|
|
359
|
+
kind=dict(
|
|
360
|
+
values=["cstlim", "cst_lim"],
|
|
361
|
+
remap=dict(autoremap="first"),
|
|
364
362
|
),
|
|
365
|
-
|
|
366
|
-
|
|
363
|
+
scope=dict(
|
|
364
|
+
optional=True,
|
|
365
|
+
default="noaa",
|
|
366
|
+
values=["noaa"],
|
|
367
367
|
),
|
|
368
|
-
|
|
368
|
+
gvar=dict(default="[scope]_cstlim"),
|
|
369
|
+
),
|
|
369
370
|
)
|
|
370
371
|
|
|
371
372
|
@property
|
|
372
373
|
def realkind(self):
|
|
373
|
-
return
|
|
374
|
+
return "cstlim"
|
|
374
375
|
|
|
375
376
|
|
|
376
377
|
class RszCoef(GenvModelResource):
|
|
@@ -378,22 +379,21 @@ class RszCoef(GenvModelResource):
|
|
|
378
379
|
Obsolete.
|
|
379
380
|
A Genvkey can be given.
|
|
380
381
|
"""
|
|
382
|
+
|
|
381
383
|
_footprint = dict(
|
|
382
|
-
info
|
|
383
|
-
attr
|
|
384
|
-
kind
|
|
385
|
-
values
|
|
386
|
-
remap
|
|
387
|
-
),
|
|
388
|
-
gvar = dict(
|
|
389
|
-
default = 'rszcoef_fmt'
|
|
384
|
+
info="Coefficients for some purpose... but which one ?",
|
|
385
|
+
attr=dict(
|
|
386
|
+
kind=dict(
|
|
387
|
+
values=["rszcoef", "rsz_coef"],
|
|
388
|
+
remap=dict(autoremap="first"),
|
|
390
389
|
),
|
|
391
|
-
|
|
390
|
+
gvar=dict(default="rszcoef_fmt"),
|
|
391
|
+
),
|
|
392
392
|
)
|
|
393
393
|
|
|
394
394
|
@property
|
|
395
395
|
def realkind(self):
|
|
396
|
-
return
|
|
396
|
+
return "rszcoef"
|
|
397
397
|
|
|
398
398
|
|
|
399
399
|
class RtCoefAirs(GenvModelResource):
|
|
@@ -401,21 +401,20 @@ class RtCoefAirs(GenvModelResource):
|
|
|
401
401
|
Obsolete.
|
|
402
402
|
A Genvkey can be given.
|
|
403
403
|
"""
|
|
404
|
+
|
|
404
405
|
_footprint = dict(
|
|
405
|
-
info
|
|
406
|
-
attr
|
|
407
|
-
kind
|
|
408
|
-
values
|
|
409
|
-
),
|
|
410
|
-
gvar = dict(
|
|
411
|
-
default = 'rtcoef_airs_ieee'
|
|
406
|
+
info="Coefficients for some purpose... but which one ?",
|
|
407
|
+
attr=dict(
|
|
408
|
+
kind=dict(
|
|
409
|
+
values=["rtcoef_airs"],
|
|
412
410
|
),
|
|
413
|
-
|
|
411
|
+
gvar=dict(default="rtcoef_airs_ieee"),
|
|
412
|
+
),
|
|
414
413
|
)
|
|
415
414
|
|
|
416
415
|
@property
|
|
417
416
|
def realkind(self):
|
|
418
|
-
return
|
|
417
|
+
return "rtcoef_airs"
|
|
419
418
|
|
|
420
419
|
|
|
421
420
|
class RtCoefAtovs(GenvModelResource):
|
|
@@ -423,21 +422,20 @@ class RtCoefAtovs(GenvModelResource):
|
|
|
423
422
|
Obsolete.
|
|
424
423
|
A Genvkey can be given.
|
|
425
424
|
"""
|
|
425
|
+
|
|
426
426
|
_footprint = dict(
|
|
427
|
-
info
|
|
428
|
-
attr
|
|
429
|
-
kind
|
|
430
|
-
values
|
|
431
|
-
),
|
|
432
|
-
gvar = dict(
|
|
433
|
-
default = 'rtcoef_ieee_atovs'
|
|
427
|
+
info="Coefficients for some purpose... but which one ?",
|
|
428
|
+
attr=dict(
|
|
429
|
+
kind=dict(
|
|
430
|
+
values=["rtcoef_atovs"],
|
|
434
431
|
),
|
|
435
|
-
|
|
432
|
+
gvar=dict(default="rtcoef_ieee_atovs"),
|
|
433
|
+
),
|
|
436
434
|
)
|
|
437
435
|
|
|
438
436
|
@property
|
|
439
437
|
def realkind(self):
|
|
440
|
-
return
|
|
438
|
+
return "rtcoef_atovs"
|
|
441
439
|
|
|
442
440
|
|
|
443
441
|
class SigmaB(GenvModelResource):
|
|
@@ -445,42 +443,47 @@ class SigmaB(GenvModelResource):
|
|
|
445
443
|
Obsolete.
|
|
446
444
|
A Genvkey can be given.
|
|
447
445
|
"""
|
|
446
|
+
|
|
448
447
|
_footprint = dict(
|
|
449
|
-
info
|
|
450
|
-
attr
|
|
451
|
-
kind
|
|
452
|
-
values
|
|
453
|
-
remap
|
|
454
|
-
),
|
|
455
|
-
gvar = dict(
|
|
456
|
-
default = 'misc_sigmab'
|
|
448
|
+
info="Coefficients for some purpose... but which one ?",
|
|
449
|
+
attr=dict(
|
|
450
|
+
kind=dict(
|
|
451
|
+
values=["sigmab", "sigma", "sigma_b"],
|
|
452
|
+
remap=dict(autoremap="first"),
|
|
457
453
|
),
|
|
458
|
-
|
|
454
|
+
gvar=dict(default="misc_sigmab"),
|
|
455
|
+
),
|
|
459
456
|
)
|
|
460
457
|
|
|
461
458
|
@property
|
|
462
459
|
def realkind(self):
|
|
463
|
-
return
|
|
460
|
+
return "sigmab"
|
|
464
461
|
|
|
465
462
|
|
|
466
463
|
class AtlasEmissivity(GenvModelResource):
|
|
467
464
|
"""
|
|
468
465
|
Abstract class for any Emissivity atlas.
|
|
469
466
|
"""
|
|
467
|
+
|
|
470
468
|
_abstract = True
|
|
471
469
|
_footprint = dict(
|
|
472
|
-
attr
|
|
473
|
-
kind
|
|
474
|
-
values
|
|
475
|
-
|
|
476
|
-
|
|
470
|
+
attr=dict(
|
|
471
|
+
kind=dict(
|
|
472
|
+
values=[
|
|
473
|
+
"atlas_emissivity",
|
|
474
|
+
"atlasemissivity",
|
|
475
|
+
"atlasemiss",
|
|
476
|
+
"emiss",
|
|
477
|
+
"emissivity_atlas",
|
|
478
|
+
],
|
|
479
|
+
remap=dict(autoremap="first"),
|
|
477
480
|
),
|
|
478
481
|
)
|
|
479
482
|
)
|
|
480
483
|
|
|
481
484
|
@property
|
|
482
485
|
def realkind(self):
|
|
483
|
-
return
|
|
486
|
+
return "atlas_emissivity"
|
|
484
487
|
|
|
485
488
|
|
|
486
489
|
class AtlasEmissivityGeneric(AtlasEmissivity):
|
|
@@ -488,23 +491,24 @@ class AtlasEmissivityGeneric(AtlasEmissivity):
|
|
|
488
491
|
A yearly emissivity atlas from a specific source.
|
|
489
492
|
A Genvkey can be given.
|
|
490
493
|
"""
|
|
494
|
+
|
|
491
495
|
_footprint = dict(
|
|
492
|
-
info
|
|
493
|
-
attr
|
|
494
|
-
source
|
|
495
|
-
values
|
|
496
|
-
),
|
|
497
|
-
gvar = dict(
|
|
498
|
-
default = '[source]_emis_atlas'
|
|
496
|
+
info="Yearly emissivity atlas from a given source.",
|
|
497
|
+
attr=dict(
|
|
498
|
+
source=dict(
|
|
499
|
+
values=["uwir", "telsem"],
|
|
499
500
|
),
|
|
500
|
-
|
|
501
|
+
gvar=dict(default="[source]_emis_atlas"),
|
|
502
|
+
month=dict(
|
|
501
503
|
# This is a fake attribute that avoid warnings...
|
|
502
|
-
values
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
504
|
+
values=[
|
|
505
|
+
None,
|
|
506
|
+
],
|
|
507
|
+
optional=True,
|
|
508
|
+
default=None,
|
|
509
|
+
doc_visibility=footprints.doc.visibility.GURU,
|
|
510
|
+
),
|
|
511
|
+
),
|
|
508
512
|
)
|
|
509
513
|
|
|
510
514
|
|
|
@@ -513,24 +517,33 @@ class AtlasEmissivityInstrument(AtlasEmissivity):
|
|
|
513
517
|
A yearly emissivity atlas for a specific instrument/sensor.
|
|
514
518
|
A Genvkey can be given.
|
|
515
519
|
"""
|
|
520
|
+
|
|
516
521
|
_footprint = dict(
|
|
517
|
-
info
|
|
518
|
-
attr
|
|
519
|
-
instrument
|
|
520
|
-
values
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
522
|
+
info="Yearly emissivity atlas for a given instrument(s).",
|
|
523
|
+
attr=dict(
|
|
524
|
+
instrument=dict(
|
|
525
|
+
values=[
|
|
526
|
+
"seviri",
|
|
527
|
+
"ssmis",
|
|
528
|
+
"iasi",
|
|
529
|
+
"amsua",
|
|
530
|
+
"amsub",
|
|
531
|
+
"an1",
|
|
532
|
+
"an2",
|
|
533
|
+
],
|
|
534
|
+
remap=dict(an1="amsua", an2="amsub"),
|
|
525
535
|
),
|
|
526
|
-
|
|
536
|
+
gvar=dict(default="emissivity_atlas_[instrument]"),
|
|
537
|
+
month=dict(
|
|
527
538
|
# This is a fake attribute that avoid warnings...
|
|
528
|
-
values
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
539
|
+
values=[
|
|
540
|
+
None,
|
|
541
|
+
],
|
|
542
|
+
optional=True,
|
|
543
|
+
default=None,
|
|
544
|
+
doc_visibility=footprints.doc.visibility.GURU,
|
|
545
|
+
),
|
|
546
|
+
),
|
|
534
547
|
)
|
|
535
548
|
|
|
536
549
|
|
|
@@ -539,15 +552,14 @@ class AtlasMonthlyEmissivityInstrument(AtlasEmissivityInstrument):
|
|
|
539
552
|
A monthly emissivity atlas for a specific instrument/sensor.
|
|
540
553
|
A Genvkey can be given.
|
|
541
554
|
"""
|
|
555
|
+
|
|
542
556
|
_footprint = [
|
|
543
557
|
month_deco,
|
|
544
558
|
dict(
|
|
545
|
-
info
|
|
546
|
-
attr
|
|
547
|
-
gvar
|
|
548
|
-
|
|
549
|
-
),
|
|
550
|
-
)
|
|
559
|
+
info="Monthly emissivity atlas for a given instrument(s).",
|
|
560
|
+
attr=dict(
|
|
561
|
+
gvar=dict(default="emissivity_atlas_[instrument]_monthly"),
|
|
562
|
+
),
|
|
551
563
|
),
|
|
552
564
|
]
|
|
553
565
|
|
|
@@ -557,16 +569,15 @@ class AtlasEmissivityPack(AtlasEmissivity):
|
|
|
557
569
|
Legacy yearly emissivity atlases for Amsu-A/B. DEPRECIATED.
|
|
558
570
|
A Genvkey can be given.
|
|
559
571
|
"""
|
|
572
|
+
|
|
560
573
|
_footprint = dict(
|
|
561
|
-
info
|
|
562
|
-
attr
|
|
563
|
-
pack
|
|
564
|
-
values
|
|
565
|
-
),
|
|
566
|
-
gvar = dict(
|
|
567
|
-
default = 'emissivity[pack]'
|
|
574
|
+
info="Atlas of emissivity according to some pack of instrument(s).",
|
|
575
|
+
attr=dict(
|
|
576
|
+
pack=dict(
|
|
577
|
+
values=["1", "2"],
|
|
568
578
|
),
|
|
569
|
-
|
|
579
|
+
gvar=dict(default="emissivity[pack]"),
|
|
580
|
+
),
|
|
570
581
|
)
|
|
571
582
|
|
|
572
583
|
|
|
@@ -575,16 +586,13 @@ class SeaIceLonLat(GenvModelGeoResource):
|
|
|
575
586
|
Coordinates of the file containing sea ice observations.
|
|
576
587
|
It is used to create the ice_content file.
|
|
577
588
|
"""
|
|
589
|
+
|
|
578
590
|
_footprint = dict(
|
|
579
|
-
info
|
|
580
|
-
attr
|
|
581
|
-
kind
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
gvar = dict(
|
|
585
|
-
default = 'sea_ice_lonlat'
|
|
586
|
-
),
|
|
587
|
-
)
|
|
591
|
+
info="Coordinates used for ice_concent creation.",
|
|
592
|
+
attr=dict(
|
|
593
|
+
kind=dict(values=["seaice_lonlat"]),
|
|
594
|
+
gvar=dict(default="sea_ice_lonlat"),
|
|
595
|
+
),
|
|
588
596
|
)
|
|
589
597
|
|
|
590
598
|
|
|
@@ -593,37 +601,47 @@ class ODBRaw(GenvModelResource):
|
|
|
593
601
|
Class for static ODB layouts RSTBIAS, COUNTRYRSTRHBIAS, SONDETYPERSTRHBIAS.
|
|
594
602
|
A GenvKey can be given.
|
|
595
603
|
"""
|
|
604
|
+
|
|
596
605
|
_footprint = dict(
|
|
597
|
-
info
|
|
598
|
-
attr
|
|
599
|
-
kind
|
|
600
|
-
values
|
|
601
|
-
),
|
|
602
|
-
layout
|
|
603
|
-
values
|
|
604
|
-
|
|
605
|
-
|
|
606
|
+
info="ODB Raw bias",
|
|
607
|
+
attr=dict(
|
|
608
|
+
kind=dict(
|
|
609
|
+
values=["odbraw"],
|
|
610
|
+
),
|
|
611
|
+
layout=dict(
|
|
612
|
+
values=[
|
|
613
|
+
"rstbias",
|
|
614
|
+
"countryrstrhbias",
|
|
615
|
+
"sondetyperstrhbias",
|
|
616
|
+
"RSTBIAS",
|
|
617
|
+
"COUNTRYRSTRHBIAS",
|
|
618
|
+
"SONDETYPERSTRHBIAS",
|
|
606
619
|
],
|
|
607
|
-
remap
|
|
608
|
-
RSTBIAS
|
|
609
|
-
COUNTRYRSTRHBIAS
|
|
610
|
-
SONDETYPERSTRHBIAS
|
|
620
|
+
remap=dict(
|
|
621
|
+
RSTBIAS="rstbias",
|
|
622
|
+
COUNTRYRSTRHBIAS="countryrstrhbias",
|
|
623
|
+
SONDETYPERSTRHBIAS="sondetyperstrhbias",
|
|
611
624
|
),
|
|
612
625
|
),
|
|
613
|
-
gvar
|
|
614
|
-
default
|
|
615
|
-
)
|
|
616
|
-
)
|
|
626
|
+
gvar=dict(
|
|
627
|
+
default="rs_bias_odbtable_[layout]",
|
|
628
|
+
),
|
|
629
|
+
),
|
|
617
630
|
)
|
|
618
631
|
|
|
619
632
|
@property
|
|
620
633
|
def realkind(self):
|
|
621
|
-
return
|
|
634
|
+
return "odbraw"
|
|
622
635
|
|
|
623
636
|
|
|
624
|
-
@namebuilding_delete(
|
|
625
|
-
@namebuilding_insert(
|
|
626
|
-
@namebuilding_append(
|
|
637
|
+
@namebuilding_delete("fmt")
|
|
638
|
+
@namebuilding_insert("radical", lambda s: "matfil")
|
|
639
|
+
@namebuilding_append(
|
|
640
|
+
"geo",
|
|
641
|
+
lambda s: [
|
|
642
|
+
s.scope.area,
|
|
643
|
+
],
|
|
644
|
+
)
|
|
627
645
|
class MatFilter(GenvModelGeoResource):
|
|
628
646
|
"""
|
|
629
647
|
Class of a filtering matrix. A GaussGeometry object is needed,
|
|
@@ -633,35 +651,32 @@ class MatFilter(GenvModelGeoResource):
|
|
|
633
651
|
"""
|
|
634
652
|
|
|
635
653
|
_footprint = dict(
|
|
636
|
-
info
|
|
637
|
-
attr
|
|
638
|
-
model
|
|
639
|
-
optional
|
|
640
|
-
),
|
|
641
|
-
kind = dict(
|
|
642
|
-
values = ['matfilter']
|
|
643
|
-
),
|
|
644
|
-
geometry = dict(
|
|
645
|
-
type = GaussGeometry
|
|
654
|
+
info="Filtering matrix",
|
|
655
|
+
attr=dict(
|
|
656
|
+
model=dict(
|
|
657
|
+
optional=True,
|
|
646
658
|
),
|
|
647
|
-
|
|
648
|
-
|
|
659
|
+
kind=dict(values=["matfilter"]),
|
|
660
|
+
geometry=dict(type=GaussGeometry),
|
|
661
|
+
scope=dict(
|
|
662
|
+
type=LonlatGeometry,
|
|
649
663
|
),
|
|
650
|
-
gvar
|
|
651
|
-
|
|
652
|
-
)
|
|
653
|
-
)
|
|
664
|
+
gvar=dict(default="mat_filter_[scope::area]"),
|
|
665
|
+
),
|
|
654
666
|
)
|
|
655
667
|
|
|
656
668
|
@property
|
|
657
669
|
def realkind(self):
|
|
658
|
-
return
|
|
670
|
+
return "matfilter"
|
|
659
671
|
|
|
660
672
|
def olive_basename(self):
|
|
661
673
|
"""OLIVE specific naming convention."""
|
|
662
|
-
return (
|
|
663
|
-
|
|
664
|
-
|
|
674
|
+
return (
|
|
675
|
+
"matrix.fil."
|
|
676
|
+
+ self.scope.area
|
|
677
|
+
+ ".t{!s}".format(self.geometry.truncation)
|
|
678
|
+
+ ".c{!s}".format(self.geometry.stretching)
|
|
679
|
+
)
|
|
665
680
|
|
|
666
681
|
|
|
667
682
|
class WaveletTable(GenvModelGeoResource):
|
|
@@ -671,21 +686,25 @@ class WaveletTable(GenvModelGeoResource):
|
|
|
671
686
|
"""
|
|
672
687
|
|
|
673
688
|
_footprint = dict(
|
|
674
|
-
info
|
|
675
|
-
attr
|
|
676
|
-
kind
|
|
677
|
-
values
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
689
|
+
info="Wavelet covariance operators",
|
|
690
|
+
attr=dict(
|
|
691
|
+
kind=dict(
|
|
692
|
+
values=[
|
|
693
|
+
"wtable",
|
|
694
|
+
"wavelettable",
|
|
695
|
+
"wavelet_table",
|
|
696
|
+
"rtable",
|
|
697
|
+
"rtabwavelet",
|
|
698
|
+
],
|
|
699
|
+
remap=dict(autoremap="first"),
|
|
682
700
|
),
|
|
683
|
-
|
|
701
|
+
gvar=dict(default="RTABLE_WAVELET"),
|
|
702
|
+
),
|
|
684
703
|
)
|
|
685
704
|
|
|
686
705
|
@property
|
|
687
706
|
def realkind(self):
|
|
688
|
-
return
|
|
707
|
+
return "wtable"
|
|
689
708
|
|
|
690
709
|
|
|
691
710
|
class AmvError(GenvModelGeoResource):
|
|
@@ -693,26 +712,27 @@ class AmvError(GenvModelGeoResource):
|
|
|
693
712
|
TODO.
|
|
694
713
|
A Genvkey can be given.
|
|
695
714
|
"""
|
|
715
|
+
|
|
696
716
|
_footprint = dict(
|
|
697
|
-
info=
|
|
717
|
+
info="AMV Tracking Error",
|
|
698
718
|
attr=dict(
|
|
699
719
|
kind=dict(
|
|
700
|
-
values=[
|
|
720
|
+
values=["amvtrackingerror", "amvtr", "amverror", "amv_error"],
|
|
701
721
|
remap=dict(
|
|
702
|
-
amvtrackingerror=
|
|
703
|
-
amvtr=
|
|
704
|
-
amverror=
|
|
722
|
+
amvtrackingerror="amv_error",
|
|
723
|
+
amvtr="amv_error",
|
|
724
|
+
amverror="amv_error",
|
|
705
725
|
),
|
|
706
726
|
),
|
|
707
727
|
gvar=dict(
|
|
708
|
-
default=
|
|
728
|
+
default="amv_tracking_error",
|
|
709
729
|
),
|
|
710
|
-
)
|
|
730
|
+
),
|
|
711
731
|
)
|
|
712
732
|
|
|
713
733
|
@property
|
|
714
734
|
def realkind(self):
|
|
715
|
-
return
|
|
735
|
+
return "amv_error"
|
|
716
736
|
|
|
717
737
|
|
|
718
738
|
class AmvBias(GenvModelGeoResource):
|
|
@@ -720,108 +740,111 @@ class AmvBias(GenvModelGeoResource):
|
|
|
720
740
|
TODO.
|
|
721
741
|
A Genvkey can be given.
|
|
722
742
|
"""
|
|
743
|
+
|
|
723
744
|
_footprint = dict(
|
|
724
|
-
info=
|
|
745
|
+
info="AMV Tracking Error",
|
|
725
746
|
attr=dict(
|
|
726
747
|
kind=dict(
|
|
727
|
-
values=[
|
|
728
|
-
remap=dict(amvbias=
|
|
748
|
+
values=["amvbias", "amv_bias"],
|
|
749
|
+
remap=dict(amvbias="amv_bias"),
|
|
729
750
|
),
|
|
730
|
-
gvar=dict(
|
|
731
|
-
|
|
732
|
-
),
|
|
733
|
-
)
|
|
751
|
+
gvar=dict(default="amv_bias_info"),
|
|
752
|
+
),
|
|
734
753
|
)
|
|
735
754
|
|
|
736
755
|
@property
|
|
737
756
|
def realkind(self):
|
|
738
|
-
return
|
|
757
|
+
return "amv_bias"
|
|
739
758
|
|
|
740
759
|
|
|
741
760
|
class LFIScripts(StaticResource):
|
|
742
761
|
"""
|
|
743
762
|
The LFI scripts. A Genvkey can be given.
|
|
744
763
|
"""
|
|
764
|
+
|
|
745
765
|
_footprint = [
|
|
746
766
|
gvar,
|
|
747
767
|
dict(
|
|
748
|
-
info=
|
|
768
|
+
info="LFI scripts",
|
|
749
769
|
attr=dict(
|
|
750
770
|
kind=dict(
|
|
751
|
-
values=[
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
default='tools_lfi'
|
|
771
|
+
values=[
|
|
772
|
+
"lfiscripts",
|
|
773
|
+
],
|
|
755
774
|
),
|
|
756
|
-
|
|
757
|
-
|
|
775
|
+
gvar=dict(default="tools_lfi"),
|
|
776
|
+
),
|
|
777
|
+
),
|
|
758
778
|
]
|
|
759
779
|
|
|
760
780
|
@property
|
|
761
781
|
def realkind(self):
|
|
762
|
-
return
|
|
782
|
+
return "lfiscripts"
|
|
763
783
|
|
|
764
784
|
|
|
765
785
|
class FilteringRequest(GenvModelResource):
|
|
766
786
|
"""
|
|
767
787
|
Class of a JSON file that describes a resource filter. A Genvkey can be given.
|
|
768
788
|
"""
|
|
789
|
+
|
|
769
790
|
_footprint = dict(
|
|
770
|
-
info
|
|
771
|
-
attr
|
|
772
|
-
kind
|
|
773
|
-
values
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
),
|
|
777
|
-
nativefmt = dict(
|
|
778
|
-
values = ['json', ],
|
|
779
|
-
default = 'json',
|
|
791
|
+
info="Description of a resource's data filter",
|
|
792
|
+
attr=dict(
|
|
793
|
+
kind=dict(
|
|
794
|
+
values=[
|
|
795
|
+
"filtering_request",
|
|
796
|
+
],
|
|
780
797
|
),
|
|
781
|
-
|
|
782
|
-
|
|
798
|
+
filtername=dict(),
|
|
799
|
+
nativefmt=dict(
|
|
800
|
+
values=[
|
|
801
|
+
"json",
|
|
802
|
+
],
|
|
803
|
+
default="json",
|
|
783
804
|
),
|
|
784
|
-
|
|
785
|
-
default
|
|
805
|
+
clscontents=dict(
|
|
806
|
+
default=JsonDictContent,
|
|
786
807
|
),
|
|
787
|
-
|
|
808
|
+
gvar=dict(default="filtering_request"),
|
|
809
|
+
),
|
|
788
810
|
)
|
|
789
811
|
|
|
790
812
|
@property
|
|
791
813
|
def realkind(self):
|
|
792
|
-
return
|
|
814
|
+
return "filtering_request"
|
|
793
815
|
|
|
794
816
|
def gget_urlquery(self):
|
|
795
817
|
"""GGET specific query : ``extract``."""
|
|
796
|
-
return
|
|
818
|
+
return "extract=filter_{:s}.json".format(self.filtername)
|
|
797
819
|
|
|
798
820
|
|
|
799
821
|
class GribAPIConfig(StaticResource):
|
|
800
822
|
"""
|
|
801
823
|
Configuration files for the Grib-API (samples or definitions)
|
|
802
824
|
"""
|
|
825
|
+
|
|
803
826
|
_footprint = [
|
|
804
827
|
gvar,
|
|
805
828
|
dict(
|
|
806
|
-
info=
|
|
829
|
+
info="Grib-API configuration files",
|
|
807
830
|
attr=dict(
|
|
808
831
|
kind=dict(
|
|
809
|
-
values
|
|
832
|
+
values=[
|
|
833
|
+
"gribapiconf",
|
|
834
|
+
],
|
|
810
835
|
),
|
|
811
|
-
target
|
|
812
|
-
values
|
|
813
|
-
remap
|
|
836
|
+
target=dict(
|
|
837
|
+
values=["samples", "def", "definitions"],
|
|
838
|
+
remap=dict(definitions="def"),
|
|
814
839
|
),
|
|
815
|
-
gvar=dict(
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
)
|
|
819
|
-
)
|
|
840
|
+
gvar=dict(default="grib_api_[target]"),
|
|
841
|
+
),
|
|
842
|
+
),
|
|
820
843
|
]
|
|
821
844
|
|
|
822
845
|
@property
|
|
823
846
|
def realkind(self):
|
|
824
|
-
return
|
|
847
|
+
return "gribapiconf"
|
|
825
848
|
|
|
826
849
|
|
|
827
850
|
class StdPressure(GenvModelGeoResource):
|
|
@@ -831,26 +854,24 @@ class StdPressure(GenvModelGeoResource):
|
|
|
831
854
|
"""
|
|
832
855
|
|
|
833
856
|
_footprint = dict(
|
|
834
|
-
info
|
|
835
|
-
attr
|
|
836
|
-
kind
|
|
837
|
-
values
|
|
838
|
-
),
|
|
839
|
-
level = dict(
|
|
840
|
-
type = int,
|
|
841
|
-
optional = True,
|
|
842
|
-
default = 60,
|
|
843
|
-
values = [60],
|
|
857
|
+
info="Standard pressure profile",
|
|
858
|
+
attr=dict(
|
|
859
|
+
kind=dict(
|
|
860
|
+
values=["stdpressure"],
|
|
844
861
|
),
|
|
845
|
-
|
|
846
|
-
|
|
862
|
+
level=dict(
|
|
863
|
+
type=int,
|
|
864
|
+
optional=True,
|
|
865
|
+
default=60,
|
|
866
|
+
values=[60],
|
|
847
867
|
),
|
|
848
|
-
|
|
868
|
+
gvar=dict(default="std_pressure"),
|
|
869
|
+
),
|
|
849
870
|
)
|
|
850
871
|
|
|
851
872
|
@property
|
|
852
873
|
def realkind(self):
|
|
853
|
-
return
|
|
874
|
+
return "stdpressure"
|
|
854
875
|
|
|
855
876
|
|
|
856
877
|
class TruncObj(GenvModelGeoResource):
|
|
@@ -860,20 +881,18 @@ class TruncObj(GenvModelGeoResource):
|
|
|
860
881
|
"""
|
|
861
882
|
|
|
862
883
|
_footprint = dict(
|
|
863
|
-
info
|
|
864
|
-
attr
|
|
865
|
-
kind
|
|
866
|
-
values
|
|
867
|
-
),
|
|
868
|
-
gvar = dict(
|
|
869
|
-
default = 'trunc_obj'
|
|
884
|
+
info="Standard error truncation",
|
|
885
|
+
attr=dict(
|
|
886
|
+
kind=dict(
|
|
887
|
+
values=["truncobj", "stderr_trunc"],
|
|
870
888
|
),
|
|
871
|
-
|
|
889
|
+
gvar=dict(default="trunc_obj"),
|
|
890
|
+
),
|
|
872
891
|
)
|
|
873
892
|
|
|
874
893
|
@property
|
|
875
894
|
def realkind(self):
|
|
876
|
-
return
|
|
895
|
+
return "truncobj"
|
|
877
896
|
|
|
878
897
|
|
|
879
898
|
class InterChannelsCorrelations(GenvModelResource):
|
|
@@ -883,47 +902,53 @@ class InterChannelsCorrelations(GenvModelResource):
|
|
|
883
902
|
"""
|
|
884
903
|
|
|
885
904
|
_footprint = dict(
|
|
886
|
-
info
|
|
887
|
-
attr
|
|
888
|
-
kind
|
|
889
|
-
values
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
values = ['cris', 'iasi', ],
|
|
905
|
+
info="Inter channel correlations for a given instrument.",
|
|
906
|
+
attr=dict(
|
|
907
|
+
kind=dict(
|
|
908
|
+
values=[
|
|
909
|
+
"correlations",
|
|
910
|
+
],
|
|
893
911
|
),
|
|
894
|
-
|
|
895
|
-
|
|
912
|
+
instrument=dict(
|
|
913
|
+
values=[
|
|
914
|
+
"cris",
|
|
915
|
+
"iasi",
|
|
916
|
+
],
|
|
896
917
|
),
|
|
897
|
-
|
|
898
|
-
|
|
918
|
+
gvar=dict(default="correlations_[instrument]"),
|
|
919
|
+
clscontents=dict(
|
|
920
|
+
default=DataRaw,
|
|
899
921
|
),
|
|
900
922
|
),
|
|
901
923
|
)
|
|
902
924
|
|
|
903
925
|
@property
|
|
904
926
|
def realkind(self):
|
|
905
|
-
return
|
|
927
|
+
return "correlations"
|
|
906
928
|
|
|
907
929
|
|
|
908
930
|
class SunMoonPositionCoeff(StaticResource):
|
|
909
931
|
"""
|
|
910
932
|
Coefficients of the Chebyshev polynomials used to calculate the position of the moon and the sun.
|
|
911
933
|
"""
|
|
934
|
+
|
|
912
935
|
_footprint = [
|
|
913
936
|
gvar,
|
|
914
937
|
dict(
|
|
915
|
-
info=
|
|
938
|
+
info="Chebyshev polynomials for the moon and sun position",
|
|
916
939
|
attr=dict(
|
|
917
940
|
kind=dict(
|
|
918
|
-
values
|
|
941
|
+
values=[
|
|
942
|
+
"sunmoonpositioncoeffs",
|
|
943
|
+
],
|
|
919
944
|
),
|
|
920
945
|
gvar=dict(
|
|
921
|
-
default
|
|
946
|
+
default="sun_moon_position_tgz",
|
|
922
947
|
),
|
|
923
|
-
)
|
|
924
|
-
)
|
|
948
|
+
),
|
|
949
|
+
),
|
|
925
950
|
]
|
|
926
951
|
|
|
927
952
|
@property
|
|
928
953
|
def realkind(self):
|
|
929
|
-
return
|
|
954
|
+
return "sunmoonpositioncoeffs"
|