ClimaCalibrate.jl

ClimaCalibrate runs the calibration loop around a forward model: it launches an ensemble of models in parallel, collects their output, hands it to EnsembleKalmanProcesses.jl to produce the next set of parameters, and picks up where it left off if the run is interrupted. EKP chooses the parameters adaptively to minimize the mismatch between the model output and observations, while ClimaCalibrate runs your model with them and returns the results.

The calibration code runs on a laptop or desktop, across Julia worker processes, or as one scheduler job per ensemble member on an HPC cluster. You choose by swapping the backend.

Installation

julia> ] add ClimaCalibrate

Julia 1.10 or newer is required.

What it provides

  • A backend system covering single-process runs, Distributed.jl workers, and the Slurm and PBS job schedulers on several HPC systems
  • Checkpointing, so an interrupted calibration resumes without rerunning completed forward models
  • Recipes for turning ClimaAnalysis.jl OutputVars into observations with estimated noise covariances
  • A builder that assembles the ensemble output matrix from OutputVars, so you do not have to track index ranges by hand
  • Residual diagnostics that report how much of the unfitted residual is structured rather than noise-like, and Makie plots of ensemble output against observations

Where to start

Then, as you need them: