CalibrateEDMF.jl

A package to calibrate atmospheric turbulence and convection parameterizations using gradient-free ensemble Kalman methods
Author CliMA
Popularity
20 Stars
Updated Last
3 Months Ago
Started In
September 2021

CalibrateEDMF.jl

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 dev
DOI DOI
Docs Build docs build
GHA CI gha ci
Code Coverage codecov

Requirements

Julia version 1.5+

Installation

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

Installation in dev mode (advanced)

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.