Giter Club home page Giter Club logo

pyrcel's Introduction

pyrcel: cloud parcel model

sample parcel model run

DOIPyPI VersionCircleCI Build StatusDocumentation Status

This is an implementation of a simple, adiabatic cloud parcel model for use in aerosol-cloud interaction studies. Rothenberg and Wang (2016) discuss the model in detail and its improvements and changes over Nenes et al (2001):

  • Implementation of κ-Köhler theory for condensation physics (Petters and Kreidenweis, 2007)
  • Extension of model to handle arbitrary sectional representations of aerosol populations, based on user-controlled empirical or parameterized size distributions
  • Improved, modular numerical framework for integrating the model, including bindings to several different stiff integrators:

among other details. It also includes a library of droplet activation routines and scripts/notebooks for evaluating those schemes against equivalent calculations done with the parcel model.

Updated code can be found the project github repository. If you'd like to use this code or have any questions about it, please contact the author. In particular, if you use this code for research purposes, be sure to carefully read through the model and ensure that you have tweaked/configured it for your purposes (i.e., modifying the accomodation coefficient); other derived quantities).

Detailed documentation is available, including a scientific description, installation details, and a basic example which produces a figure like the plot at the top of this page.

Quick Start / Installation

To quickly get started with running pyrcel, complete the following steps:

  • Set up a new Python environment; we recommend using mambaforge:
  $ mamba create -n pyrcel_quick_start python=3.11
  • Activate the new Python environment and install the model and its dependencies. If you install the published version from PyPi (recommended), then you also need to install Assimulo using the Mamba package manager - but no other manual dependency installation is necessary:
  $ mamba activate pyrcel_quick_start
  $ pip install pyrcel
  $ mamba install -c conda-forge assimulo
  • Run a test simulation using the CLI tool and a sample YAML file from pyrcel/examples/*.yml (you may want to clone the repository or download them locally):
  $ run_parcel simple.yml
  • Visualize the output NetCDF (should be in the directory you ran the CLI tool, at output/simple.nc)

That's it!

Requirements

Required

Optional

The following packages are used for better numerics (ODE solving)

The easiest way to satisfy the basic requirements for building and running the model is to use the Anaconda scientific Python distribution. Alternatively, a miniconda environment is provided to quickly set-up and get running the model. Assimulo's dependency on the SUNDIALS library makes it a little bit tougher to install in an automated fashion, so it has not been included in the automatic setup provided here; you should refer to Assimulo's documentation for more information on its installation process. Note that many components of the model and package can be used without Assimulo.

Development

http://github.com/darothen/pyrcel

Please fork this repository if you intend to develop the model further so that the code's provenance can be maintained.

License

All scientific code should be licensed. This code is released under the New BSD (3-clause) license.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.