Skip to main content

Python version of The Rothamsted carbon model (RothC) 26.3. RothC is a model for the turnover of organic carbon in non-waterlogged topsoil that allows for the effects of soil type, temperature, soil moisture and plant cover on the turnover process.

Project description

pyRothC

GitHub Repo stars Issues License

Python version of The Rothamsted carbon model (RothC) 26.3.


Documentation: Rothamsted RothC Model

Source Code: https://github.com/mishagrol/pyRothC


pyRothc is a Python version of The Rothamsted carbon model (RothC) 26.3.

RothC is a model for the turnover of organic carbon in non-waterlogged topsoil that allows for the effects of soil type, temperature, soil moisture and plant cover on the turnover process.

Inspired by SoilR version SoilR RothC

Requirements

Python 3.7+

SciPy

NumPy

Pandas

Installation

$ pip install pyRothC

Example

Below is an example of how the RothC class should be used. It needs matplotlib library to be installed in order to draw the graphs.

import numpy as np
import matplotlib.pyplot as plt

from pyRothC.RothC import RothC


Temp=np.array([-0.4, 0.3, 4.2, 8.3, 13.0, 15.9,18.0, 
                17.5, 13.4, 8.7, 3.9,  0.6])
Precip=np.array([49, 39, 44, 41, 61, 58,
                71, 58, 51,48, 50, 58])
Evp=np.array([12, 18, 35, 58, 82, 90,
            97, 84, 54, 31,14, 10])

soil_thick=25  #Soil thickness (organic layer topsoil), in cm
SOC=69.7       #Soil organic carbon in Mg/ha 
clay=48        #Percent clay
input_carbon=2.7   #Annual C inputs to soil in Mg/ha/yr

IOM=0.049*SOC**(1.139) # Falloon et al. (1998)

rothC = RothC(temperature=Temp, 
             precip=Precip, 
             evaporation=Evp,
             clay = 48,
             input_carbon=input_carbon,
             pE=1.0,
             C0=np.array([0, 0, 0, 0, IOM]))

df = rothC.compute()
df.index = rothC.t
fig, ax = plt.subplots(1,1,figsize=(6,4))
df.plot(ax=ax)
ax.set_ylabel('C stocks (Mg/ha)')
ax.set_ylabel('Years')
plt.show()

Testing

If you need to run the test suite, first install the package in "editable" mode with the test optional dependencies:

git clone git@github.com:mishagrol/pyRothC.git
cd pyRothC
pip install -e ".[test]"

Now you can run the tests by simply running this command:

pytest tests

Structure of the RothC model

Credits: Theoretical Ecosystem Ecology group of the Max Planck Institute for Biogeochemistry

RothC

Equations

$$ \begin{aligned} & \frac{d \boldsymbol{C}}{\mathrm{d} t}=I\left(\begin{array}{c} \gamma \ 1-\gamma \ 0 \ 0 \ 0 \end{array}\right) +\left(\begin{array}{ccccc} -k_1 & 0 & 0 & 0 & 0 \ 0 & -k_2 & 0 & 0 & 0 \ a_{3,1} & a_{3,2} & -k_3+a_{3,3} & a_{3,4} & 0 \ a_{4,1} & a_{4,2} & a_{4,3} & -k_4+a_{4,4} & 0 \ 0 & 0 & 0 & 0 & 0 \end{array}\right)\left(\begin{array}{l} C_1 \ C_2 \ C_3 \ C_4 \ C_5 \end{array}\right) \ & \end{aligned} $$

Optional Dependencies

Matplotlib

License

This project is licensed under the terms of the CC0 1.0 Universal license.

Project details


Download files

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

Source Distribution

pyrothc-0.0.4.tar.gz (177.4 kB view hashes)

Uploaded Source

Built Distribution

pyrothc-0.0.4-py3-none-any.whl (11.7 kB view hashes)

Uploaded Python 3

Supported by

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