https://github.com/clima/climaparams.jl

Contains universal constants and model parameters used in CLIMA ecosystem

https://github.com/clima/climaparams.jl

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.5%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Contains universal constants and model parameters used in CLIMA ecosystem

Basic Info
  • Host: GitHub
  • Owner: CliMA
  • License: apache-2.0
  • Language: Julia
  • Default Branch: main
  • Homepage:
  • Size: 1.52 MB
Statistics
  • Stars: 36
  • Watchers: 15
  • Forks: 6
  • Open Issues: 8
  • Releases: 105
Created over 6 years ago · Last pushed 10 months ago
Metadata Files
Readme Changelog License

README.md

ClimaParams.jl Logo

ClimaParams.jl

A centralized parameter management system for climate modeling. ClimaParams.jl supports physical constants, planetary properties, and tunable parameters designed for calibration with data assimilation and machine learning tools.

| | | |--------------------------:|:-------------------------------------------------------------------------| | Stable Release | stable docs-stable | | Latest Documentation | dev | | Unit Tests | unit tests codecov | | Downloads | Downloads |

Overview

ClimaParams.jl provides a single source of truth for the parameters used in the Climate Modeling Alliance (CliMA) ecosystem. By centralizing parameters across all model components (atmosphere, ocean, land, etc.), it enables joint calibration of interconnected climate processes through data assimilation and machine learning pipelines. This unified approach ensures that parameters shared between components remain consistent and can be optimized together, leading to more physically coherent model calibration.

The package manages two fundamental types of values: - Physical and planetary constants (e.g., speed of light or planet radius) - Tunable model parameters that can be calibrated individually or jointly across components

Features

  • Centralized Management: A single, authoritative source for all model constants and parameters, enabling joint calibration of interconnected processes.
  • Type-Safe Retrieval: Guaranteed type-safety with automatic validation and conversion for floating-point, integer, string, and boolean types.
  • Override System: Support for parameter overrides with precedence handling for flexible experimentation.
  • Parameter Tagging: Logically group values by model component (e.g., atmosphere, land) for easy filtering and retrieval.
  • Machine Learning Integration: Seamless integration with data assimilation and ML calibration workflows, including joint parameter optimization across components.
  • TOML Configuration: Human-readable TOML files define parameters and their metadata.
  • Reproducibility: Automatic logging of parameter sets used in model runs to ensure scientific reproducibility.
  • Multi-Planet Support: An extensible framework for simulations of Earth and other planetary bodies.

Quick Example

```julia using ClimaParams

Floating-point type for parameters

FT = Float64

Create a dictionary containing all default parameters, cast to the chosen float type

paramdict = createtoml_dict(FT)

Retrieve a struct of physical constants by name

constants = getparametervalues( paramdict, ["gravitationalacceleration", "planetradius", "lightspeed"], )

Access constants, e.g.:

constants.gravitational_acceleration

Retrieve parameters and assign them custom names for convenience

params = getparametervalues( paramdict, Dict("universalgasconstant" => "R", "gravitationalacceleration" => "g"), )

Access parameters, e.g.

params.R

Get all parameters associated with a specific tag

atmosphericparams = gettaggedparametervalues(param_dict, "atmosphere") ```

Parameter Categories

ClimaParams manages two main categories of parameters:

  • Constants: Immutable physical values. This includes universal constants (e.g., speed of light) and planet-specific properties (e.g., gravitational acceleration or planetary radius)
  • Model Parameters: Tunable values that are subject to calibration via data assimilation or machine learning. These often correspond to specific physical processes, including:
    • Atmospheric physics
    • Land surface
    • Turbulence closures
    • Biogeochemistry

Integration with CliMA Models

By providing a centralized source of parameters, ClimaParams.jl is essential for the interoperability and reliability of the CliMA ecosystem. It is designed to: - Enable joint calibration of parameters across model components through unified data assimilation and machine learning pipelines - Ensure consistent parameter usage across all models (atmosphere, ocean, land, etc.) - Facilitate parameter sensitivity analysis and uncertainty quantification studies, jointly across model components - Enable reproducible experiments by explicitly logging the exact parameter sets used for each simulation

Owner

  • Name: Climate Modeling Alliance
  • Login: CliMA
  • Kind: organization
  • Email: clima@caltech.edu

An alliance of scientists, engineers and applied mathematicians, dedicated to pioneering a new, data-informed approach to climate modeling

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 11
  • Total pull requests: 52
  • Average time to close issues: almost 2 years
  • Average time to close pull requests: 24 days
  • Total issue authors: 7
  • Total pull request authors: 19
  • Average comments per issue: 1.27
  • Average comments per pull request: 1.44
  • Merged pull requests: 37
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 3
  • Pull requests: 28
  • Average time to close issues: 3 months
  • Average time to close pull requests: about 3 hours
  • Issue authors: 2
  • Pull request authors: 11
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.86
  • Merged pull requests: 18
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • Sbozzolo (3)
  • glwagner (2)
  • nefrathenrici (2)
  • trontrytel (1)
  • szy21 (1)
  • tapios (1)
  • charleskawczynski (1)
Pull Request Authors
  • nefrathenrici (10)
  • trontrytel (9)
  • costachris (7)
  • szy21 (5)
  • amylu00 (3)
  • sajjadazimi (2)
  • haakon-e (2)
  • crocicc (2)
  • anastasia-popova (2)
  • tapios (1)
  • claresinger (1)
  • glwagner (1)
  • Sbozzolo (1)
  • Julians42 (1)
  • ray-chew (1)
Top Labels
Issue Labels
bug (1) enhancement (1)
Pull Request Labels
Microphysics (6)

Packages

  • Total packages: 1
  • Total downloads:
    • julia 155 total
  • Total dependent packages: 9
  • Total dependent repositories: 0
  • Total versions: 40
juliahub.com: ClimaParams

Contains universal constants and model parameters used in CLIMA ecosystem

  • Versions: 40
  • Dependent Packages: 9
  • Dependent Repositories: 0
  • Downloads: 155 Total
Rankings
Dependent repos count: 9.7%
Average: 24.5%
Dependent packages count: 39.3%
Last synced: 10 months ago

Dependencies

.github/workflows/CodeCov.yml actions
  • actions/checkout v2.2.0 composite
  • codecov/codecov-action v1.0.7 composite
  • julia-actions/setup-julia latest composite
.github/workflows/CompatHelper.yml actions
.github/workflows/DocCleanUp.yml actions
  • actions/checkout v2 composite
.github/workflows/Docs.yml actions
  • actions/checkout v2 composite
  • julia-actions/setup-julia latest composite
.github/workflows/JuliaFormatter.yml actions
  • actions/checkout v2.2.0 composite
  • dorny/paths-filter v2.9.1 composite
  • julia-actions/setup-julia latest composite
  • styfle/cancel-workflow-action 0.4.0 composite
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/ci.yml actions
  • actions/cache v1 composite
  • actions/checkout v2 composite
  • codecov/codecov-action v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite