A package to calibrate atmospheric turbulence and convection parameterizations using gradient-free ensemble Kalman methods.
The rationale behind the calibration framework implemented in this package is thoroughly described in our paper:
Lopez-Gomez, I., Christopoulos, C., Langeland Ervik, H. L., Dunbar, O. R. A., Cohen, Y., Schneider, T. (2022) Training physics-based machine-learning parameterizations with gradient-free ensemble Kalman methods, Journal of Advances in Modeling Earth Systems, 14(8), e2022MS003105. doi
If you use this package for your own research, or find any of the ideas presented useful, please cite our work. The article also includes results for an extended eddy-diffusivity mass-flux (EDMF) closure of turbulence and convection trained using this package. The EDMF scheme is implemented in TurbulenceConvection.jl, and described in the following papers:
Cohen, Y., Lopez-Gomez, I., Jaruga, A., He, J., Kaul, C., and Schneider, T. (2020) Unified entrainment and detrainment closures for extended eddy-diffusivity mass-flux schemes. Journal of Advances in Modeling Earth Systems, 12, e2020MS002162. doi
Lopez-Gomez, I., Cohen, Y., He, J., Jaruga, A., Schneider, T. (2020) A generalized mixing length closure for eddy-diffusivity mass-flux schemes of turbulence and convection. Journal of Advances in Modeling Earth Systems, 12, e2020MS002161. doi
For further details on how to use CalibrateEDMF, consult the documentation.
Documentation | |
DOI | |
Docs Build | |
GHA CI | |
Code Coverage |
Julia version 1.5+
To use latest version of this package, clone this repository
git clone https://github.com/CliMA/CalibrateEDMF.jl.git
To use the latest stable release, you can install the package on your Julia environment:
julia julia> using Pkg; Pkg.add("CalibrateEDMF")
In order to use the package, compile the project first.
julia --project
julia> ]
pkg> instantiate
Since both TurbulenceConvection.jl
and EnsembleKalmanProcesses.jl
are under rapid development, we may want to access a recent unpublished version of these packages when working with CalibrateEDMF.jl
, or even use a version with local changes. If this is the case, clone the latest EnsembleKalmanProcesses.jl
(resp. EnsembleKalmanProcesses.jl
) version from GitHub (whichever you want to dev with),
git clone https://github.com/CliMA/EnsembleKalmanProcesses.jl.git
git clone https://github.com/CliMA/TurbulenceConvection.jl
and try the following,
julia --project
julia> ]
pkg> dev path/to/EnsembleKalmanProcesses.jl path/to/TurbulenceConvection.jl
pkg> instantiate
This will link CalibrateEDMF to your local version of EnsembleKalmanProcesses.jl
(resp. EnsembleKalmanProcesses.jl
), allowing rapid prototyping across packages.