pyrealm

Development of the pyrealm package, providing an integrated toolbox for modelling plant productivity, growth and demography using Python.

https://github.com/imperialcollegelondon/pyrealm

Science Score: 77.0%

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

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 7 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    1 of 14 committers (7.1%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.7%) to scientific vocabulary

Keywords from Contributors

yolov5s pipeline-testing datacleaner data-profilers battery animal parallel meshing interpretability fluxes
Last synced: 6 months ago · JSON representation ·

Repository

Development of the pyrealm package, providing an integrated toolbox for modelling plant productivity, growth and demography using Python.

Basic Info
Statistics
  • Stars: 33
  • Watchers: 3
  • Forks: 9
  • Open Issues: 57
  • Releases: 10
Created about 5 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation

README.md

The pyrealm logo: a green leaf over the shining sun.


PyPI - Version PyPI - Python Version DOI Documentation
Status codecov Test and
build pre-commit.ci status SPEC 0 — Minimum Supported Dependencies

The pyrealm package provides a toolbox implementing some key models for estimating plant productivity, growth and demography in Python. The outputs of different models can be then easily fed into other models within pyrealm to allow productivity estimates to be fed forward into estimation of net primary productivity, growth and ultimately plant community demography.

The pyrealm package currently includes:

  • The P Model for estimating optimal rates of plant photosynthesis given the balance between carbon capture and water loss. This includes recent extensions to incorporate the effects of water stress, slow acclimation processes, models of C3/C4 competition and carbon isotope fractionation.
  • The SPLASH model for calculating soil moisture and actual evapotranspiration.
  • Initial components of a demography module for modelling plant functional types, cohorts, communities and canopies, including allocation calculations using the T Model.
  • A suite of core physics functions and other utilities used to support the modules above.

For more details, see the package website: https://pyrealm.readthedocs.io/.

Version 2.0.0 development

New functionality being implemented after version 1.0.0 has lead to some immediate breaking changes in the API, for example in the handling of quantum yield settings in the class signatures for the PModel and SubdailyPModel. As the package uses semantic versioning, these changes to the API require that new releases be made under a new major version.

We will be publishing a series of "release candidates" of the 2.0.0 package. These will be used to identify issues with the current API and try to stabilise a new API. The content of version 2.0.0 is not yet finalised, so these release candidates may also add new functionality.

We recommend that you update to the most recent release candidate of version 2.0.0. The documentation now includes a migration guide to help update existing code.

Using pyrealm

The pyrealm package requires Python 3 and the currently supported Python versions are: 3.10, 3.11 and 3.12. We make released package versions available via PyPi and also generate DOIs for each release via Zenodo. You can install the most recent release using pip:

sh pip install pyrealm

You can now get started using pyrealm. For example, to calculate the estimated gross primary productivity of a C3 plant in a location, start a Python interpreter, using python, python3 or ipython depending on your installation, and run:

```python import numpy as np from pyrealm.pmodel import PModelEnvironment, PModel

Calculate the photosynthetic environment given the conditions

env = PModelEnvironment( tc=np.array([20]), vpd=np.array([1000]), co2=np.array([400]), patm=np.array([101325.0], fapar=1, ppfd=300) )

Calculate the predictions of the P Model for a C3 plant

pmodel_c3 = PModel(env)

Report the GPP in micrograms of carbon per m2 per second.

pmodel_c3.gpp ```

This should give the following output:

python array([76.42544948])

The package website provides worked examples of using pyrealm, for example to:

These worked examples also show how pyrealm can be used within Python scripts or Jupyter notebooks and how to use pyrealm with large datasets loaded using numpy or xarray with pyrealm classes and functions.

Citing pyrealm

The pyrealm repository can be cited following the information in the citation file. If you are using pyrealm in research, it is better to cite the DOI of the specific release from Zenodo.

Developing pyrealm

If you are interested in contributing to the development of pyrealm, please read the guide for contributors. Please do also read the code of conduct for contributing to this project.

Support and funding

Development of the pyrealm package has been supported by the following grants and institutions:

Owner

  • Name: Imperial College London
  • Login: ImperialCollegeLondon
  • Kind: organization
  • Email: icgithub-support@imperial.ac.uk
  • Location: Imperial College London

Imperial College main code repository

Citation (CITATION.cff)

cff-version: 1.2.0
title: pyrealm
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: C. David L.
    family-names: Orme
    email: d.orme@imperial.ac.uk
    affiliation: Department of Life Sciences, Imperial College London
    orcid: 'https://orcid.org/0000-0002-7005-1394'
  - given-names: Alienor
    family-names: Lavergne
    email: alienor.lavergne@springernature.com
    affiliation: Department of Life Sciences, Imperial College London
  - given-names: Vivienne
    family-names: Groner
    email: v.groner@imperial.ac.uk
    affiliation: Department of Life Sciences, Imperial College London
  - given-names: Marion
    family-names: Weinzierl
    email: mw925@cam.ac.uk
    affiliation: Institute of Computing for Climate Science, University of Cambridge
  - given-names: Tianzhang
    family-names: Cai
    email: tc684@cam.ac.uk
    affiliation: Institute of Computing for Climate Science, University of Cambridge
  - given-names: Surbhi
    family-names: Goel
    email: sg2147@cam.ac.uk
    affiliation: Institute of Computing for Climate Science, University of Cambridge
  - given-names: Alexander
    family-names: Smith
    email: as3402@cam.ac.uk
    affiliation: Institute of Computing for Climate Science, University of Cambridge
  - given-names: James
    family-names: Emberton
    email: je484@cam.ac.uk
    affiliation: Institute of Computing for Climate Science, University of Cambridge
  - given-names: Amy
    family-names: Pike
    email: ap766@cam.ac.uk
    affiliation: Institute of Computing for Climate Science, University of Cambridge

repository-code: 'https://github.com/ImperialCollegeLondon/pyrealm'
url: 'https://pyrealm.readthedocs.io'
repository: 'https://pypi.org/project/pyrealm/'
abstract: >-
  The pyrealm package provides an integrated set of Python 3
  modules for modelling plant productivity, growth and
  demography and the estimation of growing conditions.
license: MIT

GitHub Events

Total
  • Create event: 82
  • Release event: 5
  • Issues event: 152
  • Watch event: 12
  • Delete event: 76
  • Member event: 4
  • Issue comment event: 260
  • Push event: 530
  • Pull request review event: 259
  • Pull request review comment event: 187
  • Pull request event: 180
  • Fork event: 2
Last Year
  • Create event: 82
  • Release event: 5
  • Issues event: 152
  • Watch event: 12
  • Delete event: 76
  • Member event: 4
  • Issue comment event: 260
  • Push event: 530
  • Pull request review event: 259
  • Pull request review comment event: 187
  • Pull request event: 180
  • Fork event: 2

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 2,172
  • Total Committers: 14
  • Avg Commits per committer: 155.143
  • Development Distribution Score (DDS): 0.304
Past Year
  • Commits: 923
  • Committers: 8
  • Avg Commits per committer: 115.375
  • Development Distribution Score (DDS): 0.411
Top Committers
Name Email Commits
David Orme d****e 1,511
MarionBWeinzierl m****5@c****k 178
James Emberton j****n@g****m 146
tztsai 1****4@q****m 88
pre-commit-ci[bot] 6****] 77
TZCai 1****9@1****m 39
Sam Avis a****6@g****m 38
Surbhi Goel s****7@g****m 38
Sally s****n@g****m 17
Alexander Smith a****x@g****m 15
arne s****e@g****m 13
Amy Pike a****e@h****k 6
vgro v****o 5
github-actions[bot] 4****] 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 220
  • Total pull requests: 397
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 14 days
  • Total issue authors: 13
  • Total pull request authors: 12
  • Average comments per issue: 0.71
  • Average comments per pull request: 2.05
  • Merged pull requests: 323
  • Bot issues: 0
  • Bot pull requests: 90
Past Year
  • Issues: 130
  • Pull requests: 243
  • Average time to close issues: 10 days
  • Average time to close pull requests: 5 days
  • Issue authors: 7
  • Pull request authors: 7
  • Average comments per issue: 0.42
  • Average comments per pull request: 1.74
  • Merged pull requests: 203
  • Bot issues: 0
  • Bot pull requests: 57
Top Authors
Issue Authors
  • davidorme (150)
  • MarionBWeinzierl (29)
  • j-emberton (17)
  • tztsai (5)
  • surbhigoel77 (4)
  • sjavis (3)
  • AmyOctoCat (3)
  • arne-exe (2)
  • sallymatson (2)
  • a-smith-github (2)
  • Syuizen (1)
  • mondus (1)
  • VallesMarinerisExplorer (1)
Pull Request Authors
  • davidorme (217)
  • pre-commit-ci[bot] (76)
  • MarionBWeinzierl (26)
  • tztsai (25)
  • github-actions[bot] (14)
  • j-emberton (12)
  • surbhigoel77 (8)
  • AmyOctoCat (7)
  • sjavis (7)
  • arne-exe (2)
  • sallymatson (2)
  • a-smith-github (1)
Top Labels
Issue Labels
bug (31) enhancement (25) rse (17) roadmap (11) meta (8) core devs (7) documentation (5) code review (2) icebox (2) duplicate (1) testing (1)
Pull Request Labels
enhancement (21) rse (7) documentation (4) roadmap (3) code review (2) testing (2) core devs (1)

Packages

  • Total packages: 3
  • Total downloads:
    • pypi 1,267 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 1
    (may contain duplicates)
  • Total versions: 38
  • Total maintainers: 1
proxy.golang.org: github.com/ImperialCollegeLondon/pyrealm
  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
proxy.golang.org: github.com/imperialcollegelondon/pyrealm
  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
pypi.org: pyrealm

Python tools for modelling plant productivity and demography.

  • Versions: 26
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 1,267 Last month
Rankings
Dependent packages count: 10.1%
Forks count: 15.3%
Average: 17.1%
Stargazers count: 18.5%
Downloads: 20.3%
Dependent repos count: 21.6%
Maintainers (1)
Last synced: 6 months ago

Dependencies

requirements.txt pypi
  • netCDF4 *
  • pre-commit *
  • pytest *
  • pyyaml *
.github/workflows/pre-commit_autoupdate.yaml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • browniebroke/pre-commit-autoupdate-action main composite
  • peter-evans/create-pull-request v3 composite
.github/workflows/pyrealm_ci.yaml actions
  • abatilo/actions-poetry v2.1.6 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • pre-commit/action v3.0.0 composite
poetry.lock pypi
  • 131 dependencies
pyproject.toml pypi
  • Bottleneck ^1.3.5
  • dacite ^1.6.0
  • numpy ^1.16.5
  • python >=3.9,<3.11
  • scipy ^1.7.3
  • tabulate ^0.8.10