Skip to content

Commit a3160cd

Browse files
committed
Merge branch 'develop' of github.com:ray-chew/pyBELLA into develop
2 parents 99da8ee + d8a2023 commit a3160cd

File tree

108 files changed

+6804
-814
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

108 files changed

+6804
-814
lines changed

.gitattributes

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
vis/scripts/** linguist-vendored
1+
vis/scripts/** linguist-vendored
2+
docs/** linguist-vendored

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
*.ipynb_checkpoints*
66
*.egg-info*
77

8-
# Ignore various local subdirectories
8+
# Ignore local development and output subdirectories
99
**outputs*
10-
**docs*
1110
**build*
11+
**changelog.d*
1212

1313
# Ignore various outputs
1414
*.h5

CHANGELOG.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
0.50.1 (2024-03-24)
2+
-------------------
3+
4+
Improved Documentation
5+
^^^^^^^^^^^^^^^^^^^^^^
6+
7+
- moved logging initialisation to io.py; initialiser auto create directory; log filename now includes run case and datetime stamp (#19)
8+
- added changelog function (#22)

README.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
<p align="center">
2+
<a href="">
3+
<img alt="pyBELLA Logo" src="/docs/source/_static/logo.png">
4+
</a>
5+
</p>
6+
7+
<h2 align="center"><b><font color="#417b95">B</font></b>lended s<b><font color="#417b95">E</font></b>am<b><font color="#417b95">L</font></b>ess so<b><font color="#417b95">L</font></b>ver for <b><font color="#417b95">A</font></b>tmospheric dynamics</h2>
8+
9+
10+
<p align="center">
11+
<a href="https://github.com/ray-chew/pyBELLA/actions/workflows/documentation.yml">
12+
<img alt="GitHub Actions: docs" src=https://github.com/ray-chew/pyBELLA/actions/workflows/documentation.yml/badge.svg>
13+
</a>
14+
<a href="https://github.com/ray-chew/pyBELLA/issues">
15+
<img alt="open issues" src=https://img.shields.io/github/issues/ray-chew/pyBELLA>
16+
</a>
17+
<a href="https://opensource.org/licenses/BSD-3-Clause">
18+
<img alt="License: BSD-3" src=https://img.shields.io/badge/License-BSD_3--Clause-blue.svg>
19+
</a>
20+
<!-- <a href="https://github.com/psf/black">
21+
<img alt="Code style: black" src=https://img.shields.io/badge/code%20style-black-000000.svg>
22+
</a> -->
23+
</p>
24+
25+
26+
The Blended sEamLess soLver for Atmospheric dynamics (pyBELLA) is a Python-based numerical flow solver for atmospheric dynamics. The current version features PyBELLA+ as it is coupled to an ensemble data assimillation engine based on the Local Ensemble Transform Kalman Filter.
27+
28+
The numerical scheme for pyBELLA was introduced by [Bennachio and Klein (2019)](https://journals.ametsoc.org/view/journals/mwre/147/11/mwr-d-19-0073.1.xml) and the seamless blending between model regimes within a simulation run was extended in [Chew et al. (2022)](https://journals.ametsoc.org/view/journals/mwre/150/9/MWR-D-21-0175.1.xml).
29+
30+
This code was used to produce the results in [Chew (2022)](https://refubium.fu-berlin.de/bitstream/handle/fub188/37313/thesis_final.pdf?sequence=1&isAllowed=y) and [Chew et al. (2023)](https://tinyurl.com/2dc7hjqa).
31+
32+
33+
---
34+
35+
**[Read the documentation here](https://ray-chew.github.io/pyBELLA/index.html)**
36+
37+
---
38+
39+
## Requirements
40+
41+
See [`requirements.txt`](https://github.com/ray-chew/pyBELLA/blob/main/requirements.txt)
42+
43+
**Note**: The development dependencies can be found in [`dev-requirements.txt`](https://github.com/ray-chew/pyBELLA/blob/main/dev-requirements.txt).
44+
45+
46+
## Usage
47+
48+
### Installation
49+
50+
Fork this repository and clone your remote fork. `cd` into your local forked repository and execute:
51+
52+
```console
53+
pip install -e .
54+
```
55+
56+
**Note**: depending on your IDE, you may need to add the `--config-settings editable_mode` at the end of the above command for the pyBELLA package to be visible to the linter. However, this comes with limitations to the development mode, see [here for more details](https://setuptools.pypa.io/en/latest/userguide/development_mode.html).
57+
58+
### Configuration
59+
60+
The user-defined input parameters are in the [`inputs`](https://github.com/ray-chew/pyBELLA/tree/main/inputs) subpackage. These parameters are imported into the run scripts in [`run_scripts`](https://github.com/ray-chew/pyBELLA/tree/main/run_scripts).
61+
62+
### Execution
63+
64+
A simple test can be found in [`run_scripts.test_suite`](https://github.com/ray-chew/pyBELLA/blob/main/ru_scripts/test_suite.py). To execute this run script from the pyBELLA parent directory:
65+
66+
```console
67+
python3 ./run_scripts/test_suite.py
68+
```
69+
70+
However, the codebase is structured such that the user can easily assemble a run script to define their own experiments. Refer to the documentation for the [available APIs](https://ray-chew.github.io/pyBELLA/apis.html).
71+
72+
## License
73+
74+
[BSD License v3.0](https://fossa.com/blog/open-source-software-licenses-101-bsd-3-clause-license/)
75+
76+
## Contributions
77+
78+
Refer to the [open issues](https://github.com/ray-chew/pyBELLA/issues), in particular issues with the [`help wanted` label](https://github.com/ray-chew/pyBELLA/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22).
79+
80+
Any changes, improvements, or bug fixes can be submitted from your remote to upstream via a pull request.
81+

Readme.rst

Lines changed: 0 additions & 234 deletions
This file was deleted.

dev-requirements.txt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
dask==2022.7.0
2+
dask[distributed]==2022.7.0
3+
dill==0.3.6
4+
h5py==3.7.0
5+
matplotlib==3.5.1
6+
numba==0.56.4
7+
numpy==1.22.1
8+
pyemd==1.0.0
9+
pytest==8.1.1
10+
PyYAML==6.0
11+
scipy==1.7.3
12+
termcolor==2.4.0
13+
# dependencies for documentation
14+
sphinx==7.2.6
15+
sphinx_changelog==1.5.0
16+
sphinx-math-dollar==1.2.1
17+
furo==2024.1.29

docs/Makefile

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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 = source
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)

0 commit comments

Comments
 (0)