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/monitoring.py
CHANGED
|
@@ -14,36 +14,38 @@ __all__ = []
|
|
|
14
14
|
logger = loggers.getLogger(__name__)
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
@namebuilding_insert(
|
|
17
|
+
@namebuilding_insert("src", lambda s: [s.stage, s.obs])
|
|
18
18
|
class Monitoring(FlowResource):
|
|
19
19
|
"""Abstract monitoring resource."""
|
|
20
20
|
|
|
21
21
|
_abstract = True
|
|
22
22
|
_footprint = dict(
|
|
23
|
-
info
|
|
24
|
-
attr
|
|
25
|
-
kind
|
|
26
|
-
values
|
|
23
|
+
info="Observations monitoring file",
|
|
24
|
+
attr=dict(
|
|
25
|
+
kind=dict(
|
|
26
|
+
values=[
|
|
27
|
+
"monitoring",
|
|
28
|
+
],
|
|
27
29
|
),
|
|
28
|
-
nativefmt
|
|
29
|
-
values
|
|
30
|
-
remap
|
|
30
|
+
nativefmt=dict(
|
|
31
|
+
values=["ascii", "binary", "txt", "bin"],
|
|
32
|
+
remap=dict(ascii="txt", binary="bin"),
|
|
31
33
|
),
|
|
32
|
-
stage
|
|
33
|
-
values
|
|
34
|
-
remap
|
|
35
|
-
info
|
|
34
|
+
stage=dict(
|
|
35
|
+
values=["can", "surf", "surface", "atm", "atmospheric"],
|
|
36
|
+
remap=dict(can="surf", surface="surf", atmospheric="atm"),
|
|
37
|
+
info="The processing stage of the ODB base.",
|
|
36
38
|
),
|
|
37
|
-
obs
|
|
38
|
-
values
|
|
39
|
-
info
|
|
39
|
+
obs=dict(
|
|
40
|
+
values=["all", "used"],
|
|
41
|
+
info="The processing part of the ODB base.",
|
|
40
42
|
),
|
|
41
|
-
)
|
|
43
|
+
),
|
|
42
44
|
)
|
|
43
45
|
|
|
44
46
|
@property
|
|
45
47
|
def realkind(self):
|
|
46
|
-
return
|
|
48
|
+
return "monitoring"
|
|
47
49
|
|
|
48
50
|
|
|
49
51
|
class MntObsThreshold(GenvModelResource):
|
|
@@ -53,168 +55,139 @@ class MntObsThreshold(GenvModelResource):
|
|
|
53
55
|
"""
|
|
54
56
|
|
|
55
57
|
_footprint = dict(
|
|
56
|
-
info=
|
|
58
|
+
info="Observations threshold",
|
|
57
59
|
attr=dict(
|
|
58
|
-
kind=dict(
|
|
59
|
-
|
|
60
|
-
),
|
|
61
|
-
|
|
62
|
-
default='monitoring_seuils_obs'
|
|
63
|
-
),
|
|
64
|
-
source=dict(
|
|
65
|
-
),
|
|
66
|
-
)
|
|
60
|
+
kind=dict(values=["obs_threshold"]),
|
|
61
|
+
gvar=dict(default="monitoring_seuils_obs"),
|
|
62
|
+
source=dict(),
|
|
63
|
+
),
|
|
67
64
|
)
|
|
68
65
|
|
|
69
66
|
@property
|
|
70
67
|
def realkind(self):
|
|
71
|
-
return
|
|
68
|
+
return "obs_threshold"
|
|
72
69
|
|
|
73
70
|
def gget_urlquery(self):
|
|
74
71
|
"""GGET specific query : ``extract``."""
|
|
75
|
-
return
|
|
72
|
+
return "extract=" + self.source
|
|
76
73
|
|
|
77
74
|
|
|
78
|
-
@namebuilding_insert(
|
|
75
|
+
@namebuilding_insert("period", lambda s: s.periodicity)
|
|
79
76
|
class MntCumulStat(Monitoring):
|
|
80
77
|
"""Accumulated statistics file."""
|
|
81
78
|
|
|
82
79
|
_footprint = dict(
|
|
83
|
-
info=
|
|
80
|
+
info="Monthly accumulated statistics",
|
|
84
81
|
attr=dict(
|
|
85
|
-
kind=dict(
|
|
86
|
-
values=['accumulated_stats']
|
|
87
|
-
),
|
|
82
|
+
kind=dict(values=["accumulated_stats"]),
|
|
88
83
|
nativefmt=dict(
|
|
89
|
-
values=[
|
|
90
|
-
|
|
91
|
-
|
|
84
|
+
values=["binary", "bin"], default="bin", optional=True
|
|
85
|
+
),
|
|
86
|
+
periodicity=dict(
|
|
87
|
+
values=["monthly", "weekly_on_mondays", "weekly_on_sundays"],
|
|
88
|
+
default="monthly",
|
|
89
|
+
optional=True,
|
|
92
90
|
),
|
|
93
|
-
|
|
94
|
-
values = ['monthly',
|
|
95
|
-
'weekly_on_mondays',
|
|
96
|
-
'weekly_on_sundays'],
|
|
97
|
-
default = 'monthly',
|
|
98
|
-
optional =True
|
|
99
|
-
)
|
|
100
|
-
)
|
|
91
|
+
),
|
|
101
92
|
)
|
|
102
93
|
|
|
103
94
|
@property
|
|
104
95
|
def realkind(self):
|
|
105
|
-
return
|
|
96
|
+
return "accumulated_stats"
|
|
106
97
|
|
|
107
98
|
|
|
108
|
-
@namebuilding_append(
|
|
99
|
+
@namebuilding_append("src", lambda s: s.monitor)
|
|
109
100
|
class MntStat(Monitoring):
|
|
110
101
|
"""Monitoring statistics file."""
|
|
111
102
|
|
|
112
103
|
_footprint = dict(
|
|
113
|
-
info=
|
|
104
|
+
info="Monitoring statistics",
|
|
114
105
|
attr=dict(
|
|
115
|
-
kind=dict(
|
|
116
|
-
values=['monitoring_stats']
|
|
117
|
-
),
|
|
106
|
+
kind=dict(values=["monitoring_stats"]),
|
|
118
107
|
nativefmt=dict(
|
|
119
|
-
values=[
|
|
120
|
-
default='txt',
|
|
121
|
-
optional=True
|
|
108
|
+
values=["ascii", "txt"], default="txt", optional=True
|
|
122
109
|
),
|
|
123
110
|
monitor=dict(
|
|
124
|
-
values=[
|
|
125
|
-
remap=dict(cy=
|
|
126
|
-
)
|
|
127
|
-
)
|
|
111
|
+
values=["bias", "analysis"],
|
|
112
|
+
remap=dict(cy="analysis", deb="bias"),
|
|
113
|
+
),
|
|
114
|
+
),
|
|
128
115
|
)
|
|
129
116
|
|
|
130
117
|
@property
|
|
131
118
|
def realkind(self):
|
|
132
|
-
return
|
|
119
|
+
return "monitoring_stats"
|
|
133
120
|
|
|
134
121
|
|
|
135
122
|
class MntGrossErrors(Monitoring):
|
|
136
123
|
"""Gross errors file."""
|
|
137
124
|
|
|
138
125
|
_footprint = dict(
|
|
139
|
-
info=
|
|
126
|
+
info="Gross errors",
|
|
140
127
|
attr=dict(
|
|
141
|
-
kind=dict(
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
nativefmt = dict(
|
|
145
|
-
values=['ascii', 'txt'],
|
|
146
|
-
default='txt',
|
|
147
|
-
optional=True
|
|
128
|
+
kind=dict(values=["gross_errors"]),
|
|
129
|
+
nativefmt=dict(
|
|
130
|
+
values=["ascii", "txt"], default="txt", optional=True
|
|
148
131
|
),
|
|
149
|
-
)
|
|
132
|
+
),
|
|
150
133
|
)
|
|
151
134
|
|
|
152
135
|
@property
|
|
153
136
|
def realkind(self):
|
|
154
|
-
return
|
|
137
|
+
return "gross_errors"
|
|
155
138
|
|
|
156
139
|
|
|
157
140
|
class MntNbMessages(Monitoring):
|
|
158
141
|
"""Number of messages for each observations type"""
|
|
159
142
|
|
|
160
143
|
_footprint = dict(
|
|
161
|
-
info=
|
|
144
|
+
info="Obs messages",
|
|
162
145
|
attr=dict(
|
|
163
|
-
kind=dict(
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
nativefmt = dict(
|
|
167
|
-
values=['ascii', 'txt'],
|
|
168
|
-
default='txt',
|
|
169
|
-
optional=True
|
|
146
|
+
kind=dict(values=["nbmessages"]),
|
|
147
|
+
nativefmt=dict(
|
|
148
|
+
values=["ascii", "txt"], default="txt", optional=True
|
|
170
149
|
),
|
|
171
|
-
)
|
|
150
|
+
),
|
|
172
151
|
)
|
|
173
152
|
|
|
174
153
|
@property
|
|
175
154
|
def realkind(self):
|
|
176
|
-
return
|
|
155
|
+
return "nbmessages"
|
|
177
156
|
|
|
178
157
|
|
|
179
158
|
class MntMissingObs(Monitoring):
|
|
180
159
|
"""Missing observations."""
|
|
181
160
|
|
|
182
161
|
_footprint = dict(
|
|
183
|
-
info=
|
|
162
|
+
info="Missing observations",
|
|
184
163
|
attr=dict(
|
|
185
|
-
kind=dict(
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
nativefmt = dict(
|
|
189
|
-
values=['ascii', 'txt'],
|
|
190
|
-
default='txt',
|
|
191
|
-
optional=True
|
|
164
|
+
kind=dict(values=["missing_obs"]),
|
|
165
|
+
nativefmt=dict(
|
|
166
|
+
values=["ascii", "txt"], default="txt", optional=True
|
|
192
167
|
),
|
|
193
|
-
)
|
|
168
|
+
),
|
|
194
169
|
)
|
|
195
170
|
|
|
196
171
|
@property
|
|
197
172
|
def realkind(self):
|
|
198
|
-
return
|
|
173
|
+
return "missing_obs"
|
|
199
174
|
|
|
200
175
|
|
|
201
176
|
class MntObsLocation(Monitoring):
|
|
202
177
|
"""Observations location."""
|
|
203
178
|
|
|
204
179
|
_footprint = dict(
|
|
205
|
-
info=
|
|
180
|
+
info="Observations location",
|
|
206
181
|
attr=dict(
|
|
207
|
-
kind=dict(
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
default='obslocationpack',
|
|
213
|
-
optional=True
|
|
182
|
+
kind=dict(values=["obslocation"]),
|
|
183
|
+
nativefmt=dict(
|
|
184
|
+
values=["obslocationpack"],
|
|
185
|
+
default="obslocationpack",
|
|
186
|
+
optional=True,
|
|
214
187
|
),
|
|
215
|
-
)
|
|
188
|
+
),
|
|
216
189
|
)
|
|
217
190
|
|
|
218
191
|
@property
|
|
219
192
|
def realkind(self):
|
|
220
|
-
return
|
|
193
|
+
return "obslocation"
|