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-diﬀusivity 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.
Julia version 1.5+
To use latest version of this package, clone this repository
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.
Installation in dev mode (advanced)
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) version from GitHub (whichever you want to dev with),
and try the following,
pkg> dev path/to/EnsembleKalmanProcesses.jl path/to/TurbulenceConvection.jl
This will link CalibrateEDMF to your local version of
EnsembleKalmanProcesses.jl), allowing rapid prototyping across packages.