Skip to main content

MUSICA is a Python library for performing computational simulations in atmospheric chemistry.

Project description

MUSICA

GitHub Releases License docker macOS ubuntu windows Python tests DOI PyPI version FAIR checklist badge codecov

Multi-Scale Infrastructure for Chemistry and Aerosols

MUSICA is a collection of modeling software, tools, and grids, that allow for robust modeling of chemistry in Earth's atmosphere.

At present the project encompasses these components

  • TUV-x

    • A photolysis rate calculator
  • MICM

    • Model Independent Chemical Module

Available grids

Pre-made grids for use in MUSICA are available here.

Contributors guide

Checkout our software development plan to see how you can contribute new science to MUSICA software.

Developer Options

Specifying dependency versions via paramaterization at configure time

Introduced in Pull Request #124, it is possible for developers to specify which versions of various dependencies should be used. These options are currently limited to those dependencies managed via FetchContent. This change allows for more easily testing musica against changes committed in different repositories and branches. The environmental variables introduced are outlined in the following table.

CMake Dependency Variables

Musica Dependency Repository Branch, Tag or Hash
Google Test GOOGLETEST_GIT_REPOSITORY GOOGLETEST_GIT_TAG
MICM MICM_GIT_REPOSITORY MICM_GIT_TAG
TUV-X TUVX_GIT_REPOSITORY TUVX_GIT_TAG
PyBind11 PYBIND11_GIT_REPOSITORY PYBIND11_GIT_TAG

Example Usage

The following examples assume the working directory is a build/ directory inside the musica source directory.

Specifying a different version of tuv-x, to ensure a change won't break anything.

$ cmake .. \
    -DTUVX_GIT_REPOSITORY="https://github.com/WardF/tuv-x.git" \
    -DTUVX_GIT_TAG=test-fix

Specifying a specific version of tuv-x by has, but using the official repository.

$ cmake .. \
    -DTUVX_GIT_TAG=a6b2c4d8745

Python build

Musica has python bindings. If you want to install the python package, you may pip install musica.

To build the package locally,

pip install -e .

If you have an NVIDIA GPU and cuda installed, you can enable a build of musica with GPU support by setting the environment variable BUILD_GPU.

BUILD_GPU=1 pip install -e .

Citing MUSICA

MUSICA can be cited in at least two ways. The first is to cite the paper that defines the vision of the MUSICA software. The bibtex entry below can be used to generate a citaiton for this.

@Article { acom.software.musica-vision,
    author = "Gabriele G. Pfister and Sebastian D. Eastham and Avelino F. Arellano and Bernard Aumont and Kelley C. Barsanti and Mary C. Barth and Andrew Conley and Nicholas A. Davis and Louisa K. Emmons and Jerome D. Fast and Arlene M. Fiore and Benjamin Gaubert and Steve Goldhaber and Claire Granier and Georg A. Grell and Marc Guevara and Daven K. Henze and Alma Hodzic and Xiaohong Liu and Daniel R. Marsh and John J. Orlando and John M. C. Plane and Lorenzo M. Polvani and Karen H. Rosenlof and Allison L. Steiner and Daniel J. Jacob and Guy P. Brasseur",
    title = "The Multi-Scale Infrastructure for Chemistry and Aerosols (MUSICA)",
    journal = "Bulletin of the American Meteorological Society",
    year = "2020",
    publisher = "American Meteorological Society",
    address = "Boston MA, USA",
    volume = "101",
    number = "10",
    doi = "10.1175/BAMS-D-19-0331.1",
    pages= "E1743 - E1760",
    url = "https://journals.ametsoc.org/view/journals/bams/101/10/bamsD190331.xml"
}

At present MUSICA is on version zero. MUSICAv0 can be cited using the bibtex entry below. MUSICAv0 description and evaluation:

@Article{acom.software.musica,
    author = {Schwantes, Rebecca H. and Lacey, Forrest G. and Tilmes, Simone and Emmons, Louisa K. and Lauritzen, Peter H. and Walters, Stacy and Callaghan, Patrick and Zarzycki, Colin M. and Barth, Mary C. and Jo, Duseong S. and Bacmeister, Julio T. and Neale, Richard B. and Vitt, Francis and Kluzek, Erik and Roozitalab, Behrooz and Hall, Samuel R. and Ullmann, Kirk and Warneke, Carsten and Peischl, Jeff and Pollack, Ilana B. and Flocke, Frank and Wolfe, Glenn M. and Hanisco, Thomas F. and Keutsch, Frank N. and Kaiser, Jennifer and Bui, Thao Paul V. and Jimenez, Jose L. and Campuzano-Jost, Pedro and Apel, Eric C. and Hornbrook, Rebecca S. and Hills, Alan J. and Yuan, Bin and Wisthaler, Armin},
    title = {Evaluating the Impact of Chemical Complexity and Horizontal Resolution on Tropospheric Ozone Over the Conterminous US With a Global Variable Resolution Chemistry Model},
    journal = {Journal of Advances in Modeling Earth Systems},
    volume = {14},
    number = {6},
    pages = {e2021MS002889},
    doi = {https://doi.org/10.1029/2021MS002889},
    url = {https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/2021MS002889},
    eprint = {https://agupubs.onlinelibrary.wiley.com/doi/pdf/10.1029/2021MS002889},
    year = {2022}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

musica-0.11.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (2.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

musica-0.11.0-cp310-cp310-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

musica-0.11.0-cp310-cp310-macosx_10_15_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10 macOS 10.15+ x86-64

File details

Details for the file musica-0.11.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for musica-0.11.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8315462edba07da2adb7960d9b9f5d9aafe185a03e0e86db2ab8c7f1386cd25b
MD5 4e9a7a85727f13a33ec08a458bf1ff3d
BLAKE2b-256 b2ef804386a2ffef4bdc77e88401e29c36b4a0e79b54e2d29675784006b449bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for musica-0.11.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: python-wheels.yml on NCAR/musica

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file musica-0.11.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for musica-0.11.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5fbbf1f55b3107f4888328745b4370f819e429432c3af24074a6f06df4d32103
MD5 f29f48ba474d22a51d21d2601e538064
BLAKE2b-256 8b47fd3b44193fe9e651ab23f4a3edb56095f6ef4c958c2f9b45763d8a5badac

See more details on using hashes here.

Provenance

The following attestation bundles were made for musica-0.11.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: python-wheels.yml on NCAR/musica

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file musica-0.11.0-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for musica-0.11.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b9ddcf680b4a8b0df6f9fadb4173240cef639f4468d3ad66bc2c11e21ca4ec71
MD5 8053bccd31c75a7cd434d644fd951a68
BLAKE2b-256 03711a2470ca21bd33506f724fe54d14026a005c77283d4df0ae2f44a8249fb1

See more details on using hashes here.

Provenance

The following attestation bundles were made for musica-0.11.0-cp310-cp310-macosx_10_15_x86_64.whl:

Publisher: python-wheels.yml on NCAR/musica

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page