pydartdiags 0.0.3a0__tar.gz → 0.0.4__tar.gz
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.
Potentially problematic release.
This version of pydartdiags might be problematic. Click here for more details.
- {pydartdiags-0.0.3a0 → pydartdiags-0.0.4}/PKG-INFO +23 -20
- {pydartdiags-0.0.3a0 → pydartdiags-0.0.4}/README.md +21 -19
- pydartdiags-0.0.4/docs/Makefile +20 -0
- pydartdiags-0.0.4/docs/build/doctrees/environment.pickle +0 -0
- pydartdiags-0.0.4/docs/build/doctrees/index.doctree +0 -0
- pydartdiags-0.0.4/docs/build/doctrees/obs_sequence.doctree +0 -0
- pydartdiags-0.0.4/docs/build/doctrees/plots.doctree +0 -0
- pydartdiags-0.0.4/docs/build/doctrees/quickstart.doctree +0 -0
- pydartdiags-0.0.4/docs/build/html/.buildinfo +4 -0
- pydartdiags-0.0.4/docs/build/html/_sources/index.rst.txt +40 -0
- pydartdiags-0.0.4/docs/build/html/_sources/obs_sequence.rst.txt +8 -0
- pydartdiags-0.0.4/docs/build/html/_sources/plots.rst.txt +6 -0
- pydartdiags-0.0.4/docs/build/html/_sources/quickstart.rst.txt +380 -0
- pydartdiags-0.0.4/docs/build/html/_static/alabaster.css +714 -0
- pydartdiags-0.0.4/docs/build/html/_static/basic.css +925 -0
- pydartdiags-0.0.4/docs/build/html/_static/check-solid.svg +4 -0
- pydartdiags-0.0.4/docs/build/html/_static/clipboard.min.js +7 -0
- pydartdiags-0.0.4/docs/build/html/_static/copy-button.svg +5 -0
- pydartdiags-0.0.4/docs/build/html/_static/copybutton.css +94 -0
- pydartdiags-0.0.4/docs/build/html/_static/copybutton.js +248 -0
- pydartdiags-0.0.4/docs/build/html/_static/copybutton_funcs.js +73 -0
- pydartdiags-0.0.4/docs/build/html/_static/custom.css +1 -0
- pydartdiags-0.0.4/docs/build/html/_static/doctools.js +156 -0
- pydartdiags-0.0.4/docs/build/html/_static/documentation_options.js +13 -0
- pydartdiags-0.0.4/docs/build/html/_static/file.png +0 -0
- pydartdiags-0.0.4/docs/build/html/_static/language_data.js +199 -0
- pydartdiags-0.0.4/docs/build/html/_static/minus.png +0 -0
- pydartdiags-0.0.4/docs/build/html/_static/plus.png +0 -0
- pydartdiags-0.0.4/docs/build/html/_static/pygments.css +84 -0
- pydartdiags-0.0.4/docs/build/html/_static/searchtools.js +620 -0
- pydartdiags-0.0.4/docs/build/html/_static/sphinx_highlight.js +154 -0
- pydartdiags-0.0.4/docs/build/html/genindex.html +297 -0
- pydartdiags-0.0.4/docs/build/html/index.html +131 -0
- pydartdiags-0.0.4/docs/build/html/objects.inv +0 -0
- pydartdiags-0.0.4/docs/build/html/obs_sequence.html +479 -0
- pydartdiags-0.0.4/docs/build/html/plots.html +240 -0
- pydartdiags-0.0.4/docs/build/html/py-modindex.html +137 -0
- pydartdiags-0.0.4/docs/build/html/quickstart.html +471 -0
- pydartdiags-0.0.4/docs/build/html/search.html +127 -0
- pydartdiags-0.0.4/docs/build/html/searchindex.js +1 -0
- pydartdiags-0.0.4/docs/conf.py +60 -0
- pydartdiags-0.0.4/docs/images/bias.png +0 -0
- pydartdiags-0.0.4/docs/images/rankhist.png +0 -0
- pydartdiags-0.0.4/docs/images/rmse.png +0 -0
- pydartdiags-0.0.4/docs/index.html +1 -0
- pydartdiags-0.0.4/docs/index.rst +40 -0
- pydartdiags-0.0.4/docs/make.bat +35 -0
- pydartdiags-0.0.4/docs/obs_sequence.rst +8 -0
- pydartdiags-0.0.4/docs/plots.rst +6 -0
- pydartdiags-0.0.4/docs/quickstart.rst +380 -0
- {pydartdiags-0.0.3a0 → pydartdiags-0.0.4}/pyproject.toml +2 -1
- {pydartdiags-0.0.3a0 → pydartdiags-0.0.4}/src/pydartdiags/obs_sequence/obs_sequence.py +71 -73
- pydartdiags-0.0.4/src/pydartdiags/plots/__init__.py +0 -0
- {pydartdiags-0.0.3a0 → pydartdiags-0.0.4}/src/pydartdiags/plots/plots.py +25 -24
- {pydartdiags-0.0.3a0 → pydartdiags-0.0.4}/.gitignore +0 -0
- {pydartdiags-0.0.3a0 → pydartdiags-0.0.4}/LICENSE +0 -0
- /pydartdiags-0.0.3a0/src/pydartdiags/__init__.py → /pydartdiags-0.0.4/docs/.nojekyll +0 -0
- {pydartdiags-0.0.3a0/docs/images → pydartdiags-0.0.4/docs/build/html/_images}/bias.png +0 -0
- {pydartdiags-0.0.3a0/docs/images → pydartdiags-0.0.4/docs/build/html/_images}/rankhist.png +0 -0
- {pydartdiags-0.0.3a0/docs/images → pydartdiags-0.0.4/docs/build/html/_images}/rmse.png +0 -0
- {pydartdiags-0.0.3a0/src/pydartdiags/obs_sequence → pydartdiags-0.0.4/src/pydartdiags}/__init__.py +0 -0
- {pydartdiags-0.0.3a0/src/pydartdiags/plots → pydartdiags-0.0.4/src/pydartdiags/obs_sequence}/__init__.py +0 -0
- {pydartdiags-0.0.3a0 → pydartdiags-0.0.4}/src/pydartdiags/obs_sequence/composite_types.yaml +0 -0
- {pydartdiags-0.0.3a0 → pydartdiags-0.0.4}/src/pydartdiags/plots/tests/test_rank_histogram.py +0 -0
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: pydartdiags
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.4
|
|
4
4
|
Summary: Observation Sequence Diagnostics for DART
|
|
5
5
|
Project-URL: Homepage, https://github.com/NCAR/pyDARTdiags.git
|
|
6
6
|
Project-URL: Issues, https://github.com/NCAR/pyDARTdiags/issues
|
|
7
|
+
Project-URL: Documentation, https://ncar.github.io/pyDARTdiags
|
|
7
8
|
Author-email: Helen Kershaw <hkershaw@ucar.edu>
|
|
8
9
|
License-File: LICENSE
|
|
9
10
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
@@ -15,30 +16,34 @@ Requires-Dist: pandas>=2.2.0
|
|
|
15
16
|
Requires-Dist: plotly>=5.22.0
|
|
16
17
|
Description-Content-Type: text/markdown
|
|
17
18
|
|
|
18
|
-
#
|
|
19
|
+
# pyDARTdiags
|
|
19
20
|
|
|
20
|
-
|
|
21
|
+
pyDARTdiags is a python library for obsevation space diagnostics for the Data Assimilation Research Testbed ([DART](https://github.com/NCAR/DART)).
|
|
21
22
|
|
|
22
|
-
|
|
23
|
+
pyDARTdiags is under initial development, so please use caution.
|
|
23
24
|
The MATLAB [observation space diagnostics](https://docs.dart.ucar.edu/en/latest/guide/matlab-observation-space.html) are available through [DART](https://github.com/NCAR/DART).
|
|
24
25
|
|
|
25
|
-
|
|
26
|
+
|
|
27
|
+
pyDARTdiags can be installed through pip. We recommend installing pydartdiags in a virtual enviroment:
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
python3 -m venv dartdiags
|
|
32
|
+
source dartdiags/bin/activate
|
|
33
|
+
pip install pydartdiags
|
|
34
|
+
```
|
|
26
35
|
|
|
27
36
|
## Example importing the obs\_sequence and plots modules
|
|
28
37
|
|
|
29
38
|
```python
|
|
30
|
-
import
|
|
31
|
-
import
|
|
32
|
-
sys.path.append(os.path.abspath("/Users/hkershaw/DART/Projects/Diagnostics/pyDART/src/obs_sequence"))
|
|
33
|
-
|
|
34
|
-
import obs_sequence as dart_os
|
|
35
|
-
import plots as dart_plots
|
|
39
|
+
from pydartdiags.obs_sequence import obs_sequence as obs_seq
|
|
40
|
+
from pydartdiags.plots import plots
|
|
36
41
|
```
|
|
37
42
|
|
|
38
43
|
## Examining the dataframe
|
|
39
44
|
|
|
40
45
|
```python
|
|
41
|
-
obs_seq =
|
|
46
|
+
obs_seq = obs_seq.obs_sequence('obs_seq.final.ascii')
|
|
42
47
|
obs_seq.df.head()
|
|
43
48
|
```
|
|
44
49
|
|
|
@@ -196,9 +201,10 @@ obs_seq.df.head()
|
|
|
196
201
|
</div>
|
|
197
202
|
|
|
198
203
|
|
|
204
|
+
Find the numeber of assimilated (used) observations vs. possible observations by type
|
|
199
205
|
|
|
200
206
|
```python
|
|
201
|
-
|
|
207
|
+
obs_seq.possible_vs_used(obs_seq.df)
|
|
202
208
|
```
|
|
203
209
|
|
|
204
210
|
<table border="1" class="dataframe">
|
|
@@ -349,17 +355,14 @@ dart_os.possible_vs_used(obs_seq.df)
|
|
|
349
355
|
|
|
350
356
|
## Example plotting
|
|
351
357
|
|
|
352
|
-
|
|
353
|
-
|
|
354
358
|
### rank histogram
|
|
355
359
|
|
|
356
360
|
* Select only observations that were assimliated (QC === 0).
|
|
357
361
|
* plot the rank histogram
|
|
358
362
|
|
|
359
363
|
```python
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
df_profile, figrmse, figbias = dart_plots.plot_profile(df_qc0, plevels)
|
|
364
|
+
df_qc0 = obs_seq.select_by_dart_qc(obs_seq.df, 0)
|
|
365
|
+
plots.plot_rank_histogram(df_qc0)
|
|
363
366
|
```
|
|
364
367
|

|
|
365
368
|
|
|
@@ -374,8 +377,8 @@ df_profile, figrmse, figbias = dart_plots.plot_profile(df_qc0, plevels)
|
|
|
374
377
|
hPalevels = [0.0, 100.0, 150.0, 200.0, 250.0, 300.0, 400.0, 500.0, 700, 850, 925, 1000]# float("inf")] # Pa?
|
|
375
378
|
plevels = [i * 100 for i in hPalevels]
|
|
376
379
|
|
|
377
|
-
df_qc0 =
|
|
378
|
-
df_profile, figrmse, figbias =
|
|
380
|
+
df_qc0 = obs_seq.select_by_dart_qc(obs_seq.df, 0) # only qc 0
|
|
381
|
+
df_profile, figrmse, figbias = plots.plot_profile(df_qc0, plevels)
|
|
379
382
|
```
|
|
380
383
|
|
|
381
384
|

|
|
@@ -1,27 +1,31 @@
|
|
|
1
|
-
#
|
|
1
|
+
# pyDARTdiags
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
pyDARTdiags is a python library for obsevation space diagnostics for the Data Assimilation Research Testbed ([DART](https://github.com/NCAR/DART)).
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
pyDARTdiags is under initial development, so please use caution.
|
|
6
6
|
The MATLAB [observation space diagnostics](https://docs.dart.ucar.edu/en/latest/guide/matlab-observation-space.html) are available through [DART](https://github.com/NCAR/DART).
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
pyDARTdiags can be installed through pip. We recommend installing pydartdiags in a virtual enviroment:
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
python3 -m venv dartdiags
|
|
14
|
+
source dartdiags/bin/activate
|
|
15
|
+
pip install pydartdiags
|
|
16
|
+
```
|
|
9
17
|
|
|
10
18
|
## Example importing the obs\_sequence and plots modules
|
|
11
19
|
|
|
12
20
|
```python
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
sys.path.append(os.path.abspath("/Users/hkershaw/DART/Projects/Diagnostics/pyDART/src/obs_sequence"))
|
|
16
|
-
|
|
17
|
-
import obs_sequence as dart_os
|
|
18
|
-
import plots as dart_plots
|
|
21
|
+
from pydartdiags.obs_sequence import obs_sequence as obs_seq
|
|
22
|
+
from pydartdiags.plots import plots
|
|
19
23
|
```
|
|
20
24
|
|
|
21
25
|
## Examining the dataframe
|
|
22
26
|
|
|
23
27
|
```python
|
|
24
|
-
obs_seq =
|
|
28
|
+
obs_seq = obs_seq.obs_sequence('obs_seq.final.ascii')
|
|
25
29
|
obs_seq.df.head()
|
|
26
30
|
```
|
|
27
31
|
|
|
@@ -179,9 +183,10 @@ obs_seq.df.head()
|
|
|
179
183
|
</div>
|
|
180
184
|
|
|
181
185
|
|
|
186
|
+
Find the numeber of assimilated (used) observations vs. possible observations by type
|
|
182
187
|
|
|
183
188
|
```python
|
|
184
|
-
|
|
189
|
+
obs_seq.possible_vs_used(obs_seq.df)
|
|
185
190
|
```
|
|
186
191
|
|
|
187
192
|
<table border="1" class="dataframe">
|
|
@@ -332,17 +337,14 @@ dart_os.possible_vs_used(obs_seq.df)
|
|
|
332
337
|
|
|
333
338
|
## Example plotting
|
|
334
339
|
|
|
335
|
-
|
|
336
|
-
|
|
337
340
|
### rank histogram
|
|
338
341
|
|
|
339
342
|
* Select only observations that were assimliated (QC === 0).
|
|
340
343
|
* plot the rank histogram
|
|
341
344
|
|
|
342
345
|
```python
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
df_profile, figrmse, figbias = dart_plots.plot_profile(df_qc0, plevels)
|
|
346
|
+
df_qc0 = obs_seq.select_by_dart_qc(obs_seq.df, 0)
|
|
347
|
+
plots.plot_rank_histogram(df_qc0)
|
|
346
348
|
```
|
|
347
349
|

|
|
348
350
|
|
|
@@ -357,8 +359,8 @@ df_profile, figrmse, figbias = dart_plots.plot_profile(df_qc0, plevels)
|
|
|
357
359
|
hPalevels = [0.0, 100.0, 150.0, 200.0, 250.0, 300.0, 400.0, 500.0, 700, 850, 925, 1000]# float("inf")] # Pa?
|
|
358
360
|
plevels = [i * 100 for i in hPalevels]
|
|
359
361
|
|
|
360
|
-
df_qc0 =
|
|
361
|
-
df_profile, figrmse, figbias =
|
|
362
|
+
df_qc0 = obs_seq.select_by_dart_qc(obs_seq.df, 0) # only qc 0
|
|
363
|
+
df_profile, figrmse, figbias = plots.plot_profile(df_qc0, plevels)
|
|
362
364
|
```
|
|
363
365
|
|
|
364
366
|

|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Minimal makefile for Sphinx documentation
|
|
2
|
+
#
|
|
3
|
+
|
|
4
|
+
# You can set these variables from the command line, and also
|
|
5
|
+
# from the environment for the first two.
|
|
6
|
+
SPHINXOPTS ?=
|
|
7
|
+
SPHINXBUILD ?= sphinx-build
|
|
8
|
+
SOURCEDIR = .
|
|
9
|
+
BUILDDIR = build
|
|
10
|
+
|
|
11
|
+
# Put it first so that "make" without argument is like "make help".
|
|
12
|
+
help:
|
|
13
|
+
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
14
|
+
|
|
15
|
+
.PHONY: help Makefile
|
|
16
|
+
|
|
17
|
+
# Catch-all target: route all unknown targets to Sphinx using the new
|
|
18
|
+
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
|
19
|
+
%: Makefile
|
|
20
|
+
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
.. pydartdiags documentation master file, created by
|
|
2
|
+
sphinx-quickstart on Mon Aug 5 15:37:19 2024.
|
|
3
|
+
|
|
4
|
+
.. self adds index.rst to the toctree
|
|
5
|
+
|
|
6
|
+
pyDARTdiags
|
|
7
|
+
===========
|
|
8
|
+
|
|
9
|
+
.. toctree::
|
|
10
|
+
:maxdepth: 3
|
|
11
|
+
:hidden:
|
|
12
|
+
|
|
13
|
+
self
|
|
14
|
+
quickstart
|
|
15
|
+
obs_sequence
|
|
16
|
+
plots
|
|
17
|
+
|
|
18
|
+
pyDARTdiags is a python library for obsevation space diagnostics for the Data Assimilation Research Testbed (`DART <https://github.com/NCAR/DART>`_).
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
.. note::
|
|
22
|
+
|
|
23
|
+
pyDARTdiags is under initial development, so please use caution.
|
|
24
|
+
The MATLAB `observation space diagnostics <https://docs.dart.ucar.edu/en/latest/guide/matlab-observation-space.html>`_
|
|
25
|
+
are available through `DART <https://github.com/NCAR/DART>`_.
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
Contributing
|
|
29
|
+
============
|
|
30
|
+
|
|
31
|
+
Contributions are welcome! If you have a feature request, bug report, or a suggestion, please open an issue on our GitHub repository.
|
|
32
|
+
|
|
33
|
+
License
|
|
34
|
+
=======
|
|
35
|
+
|
|
36
|
+
DartLabPlot is released under the Apache License 2.0. For more details, see the LICENSE file in the root directory of this source
|
|
37
|
+
tree or visit `Apache License 2.0 <https://www.apache.org/licenses/LICENSE-2.0>`_.
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
Quickstart
|
|
2
|
+
==========
|
|
3
|
+
|
|
4
|
+
Installation
|
|
5
|
+
------------
|
|
6
|
+
|
|
7
|
+
pyDARTdiags can be installed through pip. We recommend installing pydartdiags in a virtual enviroment:
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
.. code-block :: text
|
|
11
|
+
|
|
12
|
+
python3 -m venv dartdiags
|
|
13
|
+
source dartdiags/bin/activate
|
|
14
|
+
pip install pydartdiags
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
Read an obs_sequence file
|
|
19
|
+
-------------------------
|
|
20
|
+
|
|
21
|
+
Read an observation sequence file into a DataFrama
|
|
22
|
+
|
|
23
|
+
.. code-block :: python
|
|
24
|
+
|
|
25
|
+
obs_seq = obs_seq.obs_sequence('obs_seq.final.ascii')
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
Examine the DataFrame
|
|
29
|
+
---------------------
|
|
30
|
+
|
|
31
|
+
.. code-block :: python
|
|
32
|
+
|
|
33
|
+
obs_seq.df.head()
|
|
34
|
+
|
|
35
|
+
.. raw :: html
|
|
36
|
+
|
|
37
|
+
<table border="1" class="dataframe">
|
|
38
|
+
<thead>
|
|
39
|
+
<tr style="text-align: right;">
|
|
40
|
+
<th></th>
|
|
41
|
+
<th>obs_num</th>
|
|
42
|
+
<th>observation</th>
|
|
43
|
+
<th>prior_ensemble_mean</th>
|
|
44
|
+
<th>prior_ensemble_spread</th>
|
|
45
|
+
<th>prior_ensemble_member_1</th>
|
|
46
|
+
<th>prior_ensemble_member_2</th>
|
|
47
|
+
<th>prior_ensemble_member_3</th>
|
|
48
|
+
<th>prior_ensemble_member_4</th>
|
|
49
|
+
<th>prior_ensemble_member_5</th>
|
|
50
|
+
<th>prior_ensemble_member_6</th>
|
|
51
|
+
<th>...</th>
|
|
52
|
+
<th>latitude</th>
|
|
53
|
+
<th>vertical</th>
|
|
54
|
+
<th>vert_unit</th>
|
|
55
|
+
<th>type</th>
|
|
56
|
+
<th>seconds</th>
|
|
57
|
+
<th>days</th>
|
|
58
|
+
<th>time</th>
|
|
59
|
+
<th>obs_err_var</th>
|
|
60
|
+
<th>bias</th>
|
|
61
|
+
<th>sq_err</th>
|
|
62
|
+
</tr>
|
|
63
|
+
</thead>
|
|
64
|
+
<tbody>
|
|
65
|
+
<tr>
|
|
66
|
+
<th>0</th>
|
|
67
|
+
<td>1</td>
|
|
68
|
+
<td>230.16</td>
|
|
69
|
+
<td>231.310652</td>
|
|
70
|
+
<td>0.405191</td>
|
|
71
|
+
<td>231.304725</td>
|
|
72
|
+
<td>231.562874</td>
|
|
73
|
+
<td>231.333915</td>
|
|
74
|
+
<td>231.297690</td>
|
|
75
|
+
<td>232.081416</td>
|
|
76
|
+
<td>231.051063</td>
|
|
77
|
+
<td>...</td>
|
|
78
|
+
<td>0.012188</td>
|
|
79
|
+
<td>23950.0</td>
|
|
80
|
+
<td>pressure (Pa)</td>
|
|
81
|
+
<td>ACARS_TEMPERATURE</td>
|
|
82
|
+
<td>75603</td>
|
|
83
|
+
<td>153005</td>
|
|
84
|
+
<td>2019-12-01 21:00:03</td>
|
|
85
|
+
<td>1.00</td>
|
|
86
|
+
<td>1.150652</td>
|
|
87
|
+
<td>1.324001</td>
|
|
88
|
+
</tr>
|
|
89
|
+
<tr>
|
|
90
|
+
<th>1</th>
|
|
91
|
+
<td>2</td>
|
|
92
|
+
<td>18.40</td>
|
|
93
|
+
<td>15.720527</td>
|
|
94
|
+
<td>0.630827</td>
|
|
95
|
+
<td>14.217207</td>
|
|
96
|
+
<td>15.558196</td>
|
|
97
|
+
<td>15.805599</td>
|
|
98
|
+
<td>16.594644</td>
|
|
99
|
+
<td>14.877743</td>
|
|
100
|
+
<td>16.334438</td>
|
|
101
|
+
<td>...</td>
|
|
102
|
+
<td>0.012188</td>
|
|
103
|
+
<td>23950.0</td>
|
|
104
|
+
<td>pressure (Pa)</td>
|
|
105
|
+
<td>ACARS_U_WIND_COMPONENT</td>
|
|
106
|
+
<td>75603</td>
|
|
107
|
+
<td>153005</td>
|
|
108
|
+
<td>2019-12-01 21:00:03</td>
|
|
109
|
+
<td>6.25</td>
|
|
110
|
+
<td>-2.679473</td>
|
|
111
|
+
<td>7.179578</td>
|
|
112
|
+
</tr>
|
|
113
|
+
<tr>
|
|
114
|
+
<th>2</th>
|
|
115
|
+
<td>3</td>
|
|
116
|
+
<td>1.60</td>
|
|
117
|
+
<td>-4.932073</td>
|
|
118
|
+
<td>0.825899</td>
|
|
119
|
+
<td>-5.270562</td>
|
|
120
|
+
<td>-5.955998</td>
|
|
121
|
+
<td>-4.209766</td>
|
|
122
|
+
<td>-5.105016</td>
|
|
123
|
+
<td>-4.669405</td>
|
|
124
|
+
<td>-4.365305</td>
|
|
125
|
+
<td>...</td>
|
|
126
|
+
<td>0.012188</td>
|
|
127
|
+
<td>23950.0</td>
|
|
128
|
+
<td>pressure (Pa)</td>
|
|
129
|
+
<td>ACARS_V_WIND_COMPONENT</td>
|
|
130
|
+
<td>75603</td>
|
|
131
|
+
<td>153005</td>
|
|
132
|
+
<td>2019-12-01 21:00:03</td>
|
|
133
|
+
<td>6.25</td>
|
|
134
|
+
<td>-6.532073</td>
|
|
135
|
+
<td>42.667980</td>
|
|
136
|
+
</tr>
|
|
137
|
+
<tr>
|
|
138
|
+
<th>3</th>
|
|
139
|
+
<td>4</td>
|
|
140
|
+
<td>264.16</td>
|
|
141
|
+
<td>264.060532</td>
|
|
142
|
+
<td>0.035584</td>
|
|
143
|
+
<td>264.107192</td>
|
|
144
|
+
<td>264.097270</td>
|
|
145
|
+
<td>264.073212</td>
|
|
146
|
+
<td>264.047718</td>
|
|
147
|
+
<td>264.074140</td>
|
|
148
|
+
<td>264.019895</td>
|
|
149
|
+
<td>...</td>
|
|
150
|
+
<td>0.010389</td>
|
|
151
|
+
<td>56260.0</td>
|
|
152
|
+
<td>pressure (Pa)</td>
|
|
153
|
+
<td>ACARS_TEMPERATURE</td>
|
|
154
|
+
<td>75603</td>
|
|
155
|
+
<td>153005</td>
|
|
156
|
+
<td>2019-12-01 21:00:03</td>
|
|
157
|
+
<td>1.00</td>
|
|
158
|
+
<td>-0.099468</td>
|
|
159
|
+
<td>0.009894</td>
|
|
160
|
+
</tr>
|
|
161
|
+
<tr>
|
|
162
|
+
<th>4</th>
|
|
163
|
+
<td>5</td>
|
|
164
|
+
<td>11.60</td>
|
|
165
|
+
<td>10.134115</td>
|
|
166
|
+
<td>0.063183</td>
|
|
167
|
+
<td>10.067956</td>
|
|
168
|
+
<td>10.078798</td>
|
|
169
|
+
<td>10.120263</td>
|
|
170
|
+
<td>10.084885</td>
|
|
171
|
+
<td>10.135112</td>
|
|
172
|
+
<td>10.140610</td>
|
|
173
|
+
<td>...</td>
|
|
174
|
+
<td>0.010389</td>
|
|
175
|
+
<td>56260.0</td>
|
|
176
|
+
<td>pressure (Pa)</td>
|
|
177
|
+
<td>ACARS_U_WIND_COMPONENT</td>
|
|
178
|
+
<td>75603</td>
|
|
179
|
+
<td>153005</td>
|
|
180
|
+
<td>2019-12-01 21:00:03</td>
|
|
181
|
+
<td>6.25</td>
|
|
182
|
+
<td>-1.465885</td>
|
|
183
|
+
<td>2.148818</td>
|
|
184
|
+
</tr>
|
|
185
|
+
</tbody>
|
|
186
|
+
</table>
|
|
187
|
+
<p>5 rows × 97 columns</p>
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
Find the numeber of assimilated (used) observations vs. possible observations by type
|
|
192
|
+
|
|
193
|
+
.. code-block :: python
|
|
194
|
+
|
|
195
|
+
obs_seq.possible_vs_used(obs_seq.df)
|
|
196
|
+
|
|
197
|
+
.. raw :: html
|
|
198
|
+
|
|
199
|
+
<table border="1" class="dataframe">
|
|
200
|
+
<thead>
|
|
201
|
+
<tr style="text-align: right;">
|
|
202
|
+
<th></th>
|
|
203
|
+
<th>type</th>
|
|
204
|
+
<th>possible</th>
|
|
205
|
+
<th>used</th>
|
|
206
|
+
</tr>
|
|
207
|
+
</thead>
|
|
208
|
+
<tbody>
|
|
209
|
+
<tr>
|
|
210
|
+
<th>0</th>
|
|
211
|
+
<td>ACARS_TEMPERATURE</td>
|
|
212
|
+
<td>175429</td>
|
|
213
|
+
<td>128040</td>
|
|
214
|
+
</tr>
|
|
215
|
+
<tr>
|
|
216
|
+
<th>1</th>
|
|
217
|
+
<td>ACARS_U_WIND_COMPONENT</td>
|
|
218
|
+
<td>176120</td>
|
|
219
|
+
<td>126946</td>
|
|
220
|
+
</tr>
|
|
221
|
+
<tr>
|
|
222
|
+
<th>2</th>
|
|
223
|
+
<td>ACARS_V_WIND_COMPONENT</td>
|
|
224
|
+
<td>176120</td>
|
|
225
|
+
<td>127834</td>
|
|
226
|
+
</tr>
|
|
227
|
+
<tr>
|
|
228
|
+
<th>3</th>
|
|
229
|
+
<td>AIRCRAFT_TEMPERATURE</td>
|
|
230
|
+
<td>21335</td>
|
|
231
|
+
<td>13663</td>
|
|
232
|
+
</tr>
|
|
233
|
+
<tr>
|
|
234
|
+
<th>4</th>
|
|
235
|
+
<td>AIRCRAFT_U_WIND_COMPONENT</td>
|
|
236
|
+
<td>21044</td>
|
|
237
|
+
<td>13694</td>
|
|
238
|
+
</tr>
|
|
239
|
+
<tr>
|
|
240
|
+
<th>5</th>
|
|
241
|
+
<td>AIRCRAFT_V_WIND_COMPONENT</td>
|
|
242
|
+
<td>21044</td>
|
|
243
|
+
<td>13642</td>
|
|
244
|
+
</tr>
|
|
245
|
+
<tr>
|
|
246
|
+
<th>6</th>
|
|
247
|
+
<td>AIRS_SPECIFIC_HUMIDITY</td>
|
|
248
|
+
<td>6781</td>
|
|
249
|
+
<td>0</td>
|
|
250
|
+
</tr>
|
|
251
|
+
<tr>
|
|
252
|
+
<th>7</th>
|
|
253
|
+
<td>AIRS_TEMPERATURE</td>
|
|
254
|
+
<td>19583</td>
|
|
255
|
+
<td>7901</td>
|
|
256
|
+
</tr>
|
|
257
|
+
<tr>
|
|
258
|
+
<th>8</th>
|
|
259
|
+
<td>GPSRO_REFRACTIVITY</td>
|
|
260
|
+
<td>81404</td>
|
|
261
|
+
<td>54626</td>
|
|
262
|
+
</tr>
|
|
263
|
+
<tr>
|
|
264
|
+
<th>9</th>
|
|
265
|
+
<td>LAND_SFC_ALTIMETER</td>
|
|
266
|
+
<td>21922</td>
|
|
267
|
+
<td>0</td>
|
|
268
|
+
</tr>
|
|
269
|
+
<tr>
|
|
270
|
+
<th>10</th>
|
|
271
|
+
<td>MARINE_SFC_ALTIMETER</td>
|
|
272
|
+
<td>9987</td>
|
|
273
|
+
<td>0</td>
|
|
274
|
+
</tr>
|
|
275
|
+
<tr>
|
|
276
|
+
<th>11</th>
|
|
277
|
+
<td>MARINE_SFC_SPECIFIC_HUMIDITY</td>
|
|
278
|
+
<td>4196</td>
|
|
279
|
+
<td>0</td>
|
|
280
|
+
</tr>
|
|
281
|
+
<tr>
|
|
282
|
+
<th>12</th>
|
|
283
|
+
<td>MARINE_SFC_TEMPERATURE</td>
|
|
284
|
+
<td>8646</td>
|
|
285
|
+
<td>0</td>
|
|
286
|
+
</tr>
|
|
287
|
+
<tr>
|
|
288
|
+
<th>13</th>
|
|
289
|
+
<td>MARINE_SFC_U_WIND_COMPONENT</td>
|
|
290
|
+
<td>8207</td>
|
|
291
|
+
<td>0</td>
|
|
292
|
+
</tr>
|
|
293
|
+
<tr>
|
|
294
|
+
<th>14</th>
|
|
295
|
+
<td>MARINE_SFC_V_WIND_COMPONENT</td>
|
|
296
|
+
<td>8207</td>
|
|
297
|
+
<td>0</td>
|
|
298
|
+
</tr>
|
|
299
|
+
<tr>
|
|
300
|
+
<th>15</th>
|
|
301
|
+
<td>RADIOSONDE_SPECIFIC_HUMIDITY</td>
|
|
302
|
+
<td>14272</td>
|
|
303
|
+
<td>0</td>
|
|
304
|
+
</tr>
|
|
305
|
+
<tr>
|
|
306
|
+
<th>16</th>
|
|
307
|
+
<td>RADIOSONDE_SURFACE_ALTIMETER</td>
|
|
308
|
+
<td>601</td>
|
|
309
|
+
<td>0</td>
|
|
310
|
+
</tr>
|
|
311
|
+
<tr>
|
|
312
|
+
<th>17</th>
|
|
313
|
+
<td>RADIOSONDE_TEMPERATURE</td>
|
|
314
|
+
<td>29275</td>
|
|
315
|
+
<td>22228</td>
|
|
316
|
+
</tr>
|
|
317
|
+
<tr>
|
|
318
|
+
<th>18</th>
|
|
319
|
+
<td>RADIOSONDE_U_WIND_COMPONENT</td>
|
|
320
|
+
<td>36214</td>
|
|
321
|
+
<td>27832</td>
|
|
322
|
+
</tr>
|
|
323
|
+
<tr>
|
|
324
|
+
<th>19</th>
|
|
325
|
+
<td>RADIOSONDE_V_WIND_COMPONENT</td>
|
|
326
|
+
<td>36214</td>
|
|
327
|
+
<td>27975</td>
|
|
328
|
+
</tr>
|
|
329
|
+
<tr>
|
|
330
|
+
<th>20</th>
|
|
331
|
+
<td>SAT_U_WIND_COMPONENT</td>
|
|
332
|
+
<td>107212</td>
|
|
333
|
+
<td>82507</td>
|
|
334
|
+
</tr>
|
|
335
|
+
<tr>
|
|
336
|
+
<th>21</th>
|
|
337
|
+
<td>SAT_V_WIND_COMPONENT</td>
|
|
338
|
+
<td>107212</td>
|
|
339
|
+
<td>82647</td>
|
|
340
|
+
</tr>
|
|
341
|
+
</tbody>
|
|
342
|
+
</table>
|
|
343
|
+
<p>
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
plot a rank histogram
|
|
347
|
+
----------------------
|
|
348
|
+
|
|
349
|
+
* Select only observations that were assimilated (QC === 0).
|
|
350
|
+
* Plot the rank histogram
|
|
351
|
+
|
|
352
|
+
.. code-block :: python
|
|
353
|
+
|
|
354
|
+
df_qc0 = obs_seq.select_by_dart_qc(obs_seq.df, 0)
|
|
355
|
+
plots.plot_rank_histogram(df_qc0)
|
|
356
|
+
|
|
357
|
+
.. image:: images/rankhist.png
|
|
358
|
+
:alt: Rank Histogram
|
|
359
|
+
|
|
360
|
+
plot profiles of RMSE and Bias
|
|
361
|
+
------------------------------
|
|
362
|
+
|
|
363
|
+
* Choose levels
|
|
364
|
+
* Select only observations that were assimilated (QC === 0).
|
|
365
|
+
* Plot the profiles
|
|
366
|
+
|
|
367
|
+
.. code-block :: python
|
|
368
|
+
|
|
369
|
+
hPalevels = [0.0, 100.0, 150.0, 200.0, 250.0, 300.0, 400.0, 500.0, 700, 850, 925, 1000] # Pa?
|
|
370
|
+
plevels = [i * 100 for i in hPalevels]
|
|
371
|
+
|
|
372
|
+
df_qc0 = obs_seq.select_by_dart_qc(obs_seq.df, 0) # only qc 0
|
|
373
|
+
df_profile, figrmse, figbias = plots.plot_profile(df_qc0, plevels)
|
|
374
|
+
|
|
375
|
+
.. image:: images/rmse.png
|
|
376
|
+
:alt: RMSE Plot
|
|
377
|
+
|
|
378
|
+
.. image:: images/bias.png
|
|
379
|
+
:alt: Bias Plot
|
|
380
|
+
|