PyBELLA
A Python-based Blended sEamLess soLver for Atmospheric dynamics coupled to an ensemble data assimilation engine
Install / Use
/learn @ray-chew/PyBELLAREADME
The Blended sEamLess soLver for Atmospheric dynamics (pyBELLA) is a Python-based numerical flow solver. The current version features PyBELLA+ as it is coupled to an ensemble data assimillation engine based on the Local Ensemble Transform Kalman Filter.
The numerical scheme for pyBELLA was introduced by Benacchio and Klein (2019), and the seamless blending between physical model regimes within a simulation run was extended in Chew et al. (2022); see v0.3.0-localdab for the source code.
This code was also used to produce the results in
Requirements
See requirements.txt
Note: The development dependencies can be found in dev-requirements.txt.
To install the requirements:
pip install -r requirements.txt
Usage
Installation
Fork this repository and clone your remote fork. cd into your local forked repository and execute:
pip install -e .
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.
Configuration
The user-defined input parameters are in the inputs subpackage. These parameters are imported into the run scripts in run_scripts.
Execution
A simple test can be found in run_scripts.test_dycore. To execute this test script from the pyBELLA parent directory:
pytest ./run_scripts/test_dycore.py -v
To run a simulation:
pybella -ic rb -N 1
Note that only the rising bubble initial condition is implemented for now with ensemble size of 1.
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.
License
Contributions
Refer to the open issues, in particular issues with the help wanted label.
Any changes, improvements, or bug fixes can be submitted from your remote to upstream via a pull request.
To be tidied up
Profiler
$ PYTHONPATH=src scalene -m pybella -ic test_lamb_wave -N 1
Coverage
$ pytest --cov test_scripts/ --cov-report=html
Related Skills
node-connect
349.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
