https://github.com/climlab/climlab-emanuel-convection

https://github.com/climlab/climlab-emanuel-convection

Science Score: 23.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
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 2 committers (50.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.8%) to scientific vocabulary

Keywords from Contributors

archival projection profiles interactive generic sequences ecosystem-modeling gridding autograding hacking
Last synced: 11 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: climlab
  • License: mit
  • Language: Fortran
  • Default Branch: main
  • Size: 251 KB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 2
Created over 4 years ago · Last pushed 12 months ago
Metadata Files
Readme License

README.md

climlab-emanuel-convection

Build and test

Brian Rose, University at Albany

About

This is a stand-alone Python wrapper for the Emanuel convection scheme.

The primary use-case is to serve as the under-the-hood moist convection driver for climlab, but it can be used as a stand-alone model if you are familiar with Fortran source code. This is a lightweight wrapper that emulates the Fortran interface as closely as possible. The original convect43c code is bundled here, courtesy of Kerry Emanuel.

Installation

Pre-built binaries for many platforms are available from conda-forge.

To install in the current environment: conda install climlab-emanuel-convection --channel conda-forge or create a self-contained environment: conda create --name my_env python=3.11 climlab-emanuel-convection --channel conda-forge conda activate my_env

See below for instructions on how to build from source.

Example usage

You can import the Fortran driver into a Python session with from climlab_emanuel_convection import emanuel_convection

Please see the directory climlab_emanuel_convection/tests/ directory in this repository for working examples that set up all the necessary input arrays and call the driver.

Building from source

Build environment

Here are instructions to create a build environment (including Fortran compiler) with conda/mamba

Starting from the root of the climlab-sbm-convection repo (example for Apple M1 machine, see ./ci/ for other environment files): mamba env create --file ./ci/requirements-macos-arm64.yml conda activate convect_build_env

Or, to specify the Python version, you can do mamba create --name convect_build_env python=3.11 --channel conda-forge mamba env update --file ./ci/requirements-macos-arm64.yml conda activate convect_build_env

Building and installing into the Python environment

From the root of the repository, do this: python -m pip install . --no-deps -vv

Running tests

To run tests, do this from any directory other than the climlab-emanuel-convection repo: pytest -v --pyargs climlab_emanuel_convection

Version history

  • Version 0.3 (released August 2024) modernizes the build infrastructure (now using meson) and successfully builds on Python 3.12. No changes to the Python wrapper.
  • Version 0.2 is the first public release (April 2022). The Python wrapper code has been extracted from climlab v0.7.13.

Owner

  • Name: climlab
  • Login: climlab
  • Kind: organization

Home of climlab software and related user content

GitHub Events

Total
  • Issues event: 2
  • Issue comment event: 1
  • Push event: 3
  • Pull request review event: 1
  • Pull request event: 6
Last Year
  • Issues event: 2
  • Issue comment event: 1
  • Push event: 3
  • Pull request review event: 1
  • Pull request event: 6

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 24
  • Total Committers: 2
  • Avg Commits per committer: 12.0
  • Development Distribution Score (DDS): 0.083
Past Year
  • Commits: 8
  • Committers: 1
  • Avg Commits per committer: 8.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Brian Rose b****e@a****u 22
dependabot[bot] 4****] 2
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 12 months ago

All Time
  • Total issues: 6
  • Total pull requests: 9
  • Average time to close issues: 4 months
  • Average time to close pull requests: about 3 hours
  • Total issue authors: 1
  • Total pull request authors: 2
  • Average comments per issue: 0.67
  • Average comments per pull request: 0.22
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 2
Past Year
  • Issues: 1
  • Pull requests: 4
  • Average time to close issues: 6 days
  • Average time to close pull requests: 14 minutes
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • brian-rose (6)
Pull Request Authors
  • brian-rose (10)
  • dependabot[bot] (3)
Top Labels
Issue Labels
Pull Request Labels
dependencies (3) github_actions (1)

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 1
  • Total dependent repositories: 1
  • Total versions: 1
conda-forge.org: climlab-emanuel-convection

climlab-emanuel-convection makes the Emanuel convection code callable from Python by wrapping using f2py. This is a lightweight wrapper that emulates the Fortran interface as closely as possible. The primary use case is to drive the convection process in climlab, but it can be used as a standalone driver if you are familiar with the Fortran interface.

  • Versions: 1
  • Dependent Packages: 1
  • Dependent Repositories: 1
Rankings
Dependent repos count: 24.4%
Dependent packages count: 29.0%
Average: 45.3%
Forks count: 62.4%
Stargazers count: 65.5%
Last synced: 11 months ago

Dependencies

.github/workflows/build-and-test.yml actions
  • actions/checkout v4 composite
  • conda-incubator/setup-miniconda v3 composite
pyproject.toml pypi