Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New version of the P Model architecture #442

Merged
merged 145 commits into from
Mar 4, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
145 commits
Select commit Hold shift + click to select a range
eac9d21
Replacing np.allclose calls, fixing minor tolerance differences
davidorme Jan 6, 2025
c16d901
Functional sketch of new architecture for PModel and SubdailyPModel
davidorme Jan 27, 2025
ba11ec4
Adding self._fit_model() at end of __init__
davidorme Jan 27, 2025
2f551ff
Removed commented code - longwinded way of trying to run _fit_model, …
davidorme Jan 27, 2025
519bc83
No need to store Arrhenius calculator
davidorme Jan 28, 2025
63fa326
Merge branch 'develop' into 380-replace-npallclose
davidorme Jan 30, 2025
a687300
Merge branch 'develop' into 386-align-pmodel-and-subdailypmodel
davidorme Feb 2, 2025
832c42d
Cleaner methods setup in PModelABC
davidorme Feb 2, 2025
377b690
Docstrings
davidorme Feb 2, 2025
a3eaa1e
Port convert_pmodel_to_subdaily to PModelNew.to_subdaily
davidorme Feb 2, 2025
46f02a1
Porting tests.unit.pmodel.test_subdaily.py
davidorme Feb 2, 2025
cd8cef1
More test porting
davidorme Feb 2, 2025
782642c
First pass of refactor
davidorme Feb 3, 2025
3b7c270
Merge branch '408-update-bounds-checker' into 390-update-pmodelenviro…
davidorme Feb 3, 2025
61a1331
Updating uses
davidorme Feb 3, 2025
887e50b
More updating
davidorme Feb 3, 2025
b4a56c0
Adding new vars to existing PModelEnvironment usage
davidorme Feb 4, 2025
4bd21cd
Fixing docstrings
davidorme Feb 4, 2025
e9b2448
Updating doc usage of PModelEnvironment
davidorme Feb 4, 2025
ab77a39
Minor docstring change
davidorme Feb 4, 2025
d98ab8a
Merge branch 'develop' into 390-update-pmodelenvironment
davidorme Feb 4, 2025
c3000d5
Fixing profiling usage
davidorme Feb 4, 2025
36682ab
update CHANGES
davidorme Feb 5, 2025
f229da1
De-camelcase deltaS to delta_entropy
davidorme Feb 5, 2025
5e7aff6
Setting defaults on ppfd and fapar
davidorme Feb 6, 2025
34ddfc9
Merge branch 'develop' into 386-align-pmodel-and-subdailypmodel
davidorme Feb 6, 2025
3dedb8c
Merge branch '390-update-pmodelenvironment' into 386-align-pmodel-and…
davidorme Feb 6, 2025
ea4a5dc
Updating to new PModelEnvironment
davidorme Feb 6, 2025
a809cd4
Fixing bug, test updates
davidorme Feb 7, 2025
5d0b72c
Merge branch 'develop' into 386-align-pmodel-and-subdailypmodel
davidorme Feb 7, 2025
9c92293
Updating CHANGES.md
davidorme Feb 7, 2025
509b279
Merge branch '386-align-pmodel-and-subdailypmodel' of https://github.…
davidorme Feb 7, 2025
4ff0b3d
Merge branch 'develop' into 390-update-pmodelenvironment
davidorme Feb 7, 2025
305a824
Merge pull request #412 from ImperialCollegeLondon/390-update-pmodele…
davidorme Feb 7, 2025
eae6c04
Updating tests, fixes to draft AcclimationModel, deprecating fill_from
davidorme Feb 11, 2025
c54c351
Updating tests, fixes to draft AcclimationModel, deprecating fill_from
davidorme Feb 11, 2025
5f270a5
Merge pull request #401 from ImperialCollegeLondon/386-align-pmodel-a…
davidorme Feb 12, 2025
44ef35b
Restructure of docstrings, test fix
davidorme Feb 12, 2025
e6ee93d
Removed calc_ftemp_kphio - now part of quantum_yield.py
davidorme Feb 12, 2025
412148e
Responses to @MarionBWeinzierl review
davidorme Feb 13, 2025
4ae3514
Merge pull request #418 from ImperialCollegeLondon/415-develop-the-ne…
davidorme Feb 13, 2025
2d870a0
Replacing SubdailyScaler and memory_effect with AcclimationModel; upd…
davidorme Feb 13, 2025
d73ec7c
Starting to rework subdaily testing, bug fixes
davidorme Feb 13, 2025
322b90f
Updating tests
davidorme Feb 14, 2025
bb93293
Docstring updates
davidorme Feb 14, 2025
108eaf3
Updating testing of previous realised
davidorme Feb 14, 2025
28ec4ff
Update tests/unit/pmodel/test_subdaily.py
davidorme Feb 14, 2025
31e5361
Update pyrealm/pmodel/new_pmodel.py
davidorme Feb 14, 2025
c974bb4
Updating usage in docs
davidorme Feb 14, 2025
641957c
Some missed tests and broken refs
davidorme Feb 14, 2025
b21dd3e
Merge branch '423-use-acclimationmodel' into 425-update-docs-to-new-api
davidorme Feb 14, 2025
13e7df7
Updating two_leaf sketch
davidorme Feb 14, 2025
91b02ce
Fixing doc build errors
davidorme Feb 14, 2025
74d59b6
Updating fill_daily_to_subdaily method to make it easier to plot outputs
davidorme Feb 15, 2025
178fa48
Better example in subdaily model with missing data
davidorme Feb 16, 2025
5121958
Merge pull request #424 from ImperialCollegeLondon/423-use-acclimatio…
davidorme Feb 16, 2025
a289e00
Merge branch '383-meta-release-200' into 425-update-docs-to-new-api
davidorme Feb 16, 2025
f2fcec3
Updating docstrings and docs
davidorme Feb 17, 2025
d37e24a
Refactor for fill_daily_to_subdaily
davidorme Feb 17, 2025
a473f3e
Renaming new method, updating acclimation docs
davidorme Feb 17, 2025
f075f40
Forgot to tidy up argument usage, fixing doc links
davidorme Feb 17, 2025
36195b8
Removing API docs for old pmodel implementations.
davidorme Feb 17, 2025
86c4d60
Merge pull request #426 from ImperialCollegeLondon/425-update-docs-to…
davidorme Feb 17, 2025
b5b2a92
Merge branch 'develop' into 383-meta-release-200
davidorme Feb 17, 2025
82daf70
 Removed old API and tests, updated pmodel __all__
davidorme Feb 17, 2025
daec822
Renaming new_pmodel, PModelNew and SubdailyPModelNew
davidorme Feb 17, 2025
425dd4e
Merge pull request #427 from ImperialCollegeLondon/419-strip-old-impl…
davidorme Feb 17, 2025
5969383
Merge branch '383-meta-release-200' into 413-use-tk-directly
davidorme Feb 18, 2025
bd617ad
Swap tc functions over to use tk
davidorme Feb 18, 2025
5200bd4
Updating docs that use functions directly
davidorme Feb 18, 2025
ae91c9e
Outdated use of redacted calc_ftemp_kphio
davidorme Feb 18, 2025
5437421
Merge branch 'develop' into 383-meta-release-200
davidorme Feb 18, 2025
288ce8a
Merge branch '413-use-tk-directly' into 414-fix-the-default-kphio-values
davidorme Feb 18, 2025
f5db8b3
Updating kphio settings and underlying architecture
davidorme Feb 18, 2025
9b6a565
Stop being lazy with C to K in the tests
davidorme Feb 19, 2025
bd74953
Updating CHANGES
davidorme Feb 19, 2025
fe375eb
Updating user docs
davidorme Feb 19, 2025
2d83d75
Updating user docs - broken links
davidorme Feb 19, 2025
e62f13c
@MarionBWeinzierl requested changes
davidorme Feb 19, 2025
47e5f20
Merge branch '413-use-tk-directly' into 414-fix-the-default-kphio-values
davidorme Feb 19, 2025
bfeea49
Merge pull request #431 from ImperialCollegeLondon/413-use-tk-directly
davidorme Feb 19, 2025
ea2cbe7
Merge branch '383-meta-release-200' of https://github.com/ImperialCol…
davidorme Feb 19, 2025
26db313
Merge branch '383-meta-release-200' into 414-fix-the-default-kphio-va…
davidorme Feb 19, 2025
28499da
Updating docs that set phi0 to be the same, which is now the default
davidorme Feb 19, 2025
5f1ee56
More doc phi0 simplification
davidorme Feb 19, 2025
64cfdb4
Updating Arrhenius signatures, docs
davidorme Feb 19, 2025
3ffcfbc
Fixing doctest
davidorme Feb 19, 2025
66f43d7
Updating PModel consts - Heskel and kphio temps
davidorme Feb 19, 2025
1ea9255
Updating dark resp function
davidorme Feb 19, 2025
61d3ebd
Updating dark resp function
davidorme Feb 19, 2025
7b8a902
Updating Stocker soil moisture params and function
davidorme Feb 19, 2025
b8968e4
Updating Mengoli soil moisture params and function
davidorme Feb 19, 2025
14a2d7e
Issue with PModelConsts as defaults
davidorme Feb 19, 2025
e457741
Updating Lavergne groupings in PModelConst
davidorme Feb 19, 2025
8da9748
Renaming PModelConst.plant_T_ref, function restructure
davidorme Feb 19, 2025
d78f1e7
Removing orphan/never used Boyd C4 enzyme params and function
davidorme Feb 19, 2025
3c40ad5
Bundling smith theta and c
davidorme Feb 19, 2025
61a2cbd
Tidying up beta cost ratios in PModelConsts
davidorme Feb 19, 2025
878e51e
Fixing docs
davidorme Feb 19, 2025
6f5a3d5
More function updates - moving sandoval coefs to dict
davidorme Feb 21, 2025
fe6238e
Merge pull request #432 from ImperialCollegeLondon/414-fix-the-defaul…
davidorme Feb 21, 2025
aad4b8c
Merge pull request #434 from ImperialCollegeLondon/433-arrhenius-clas…
davidorme Feb 21, 2025
897b9d8
Merge branch '383-meta-release-200' into 391-review-the-constants-bun…
davidorme Feb 21, 2025
4732d87
Just work for gods sake
davidorme Feb 21, 2025
980de19
Test values swapped :rage:
davidorme Feb 21, 2025
5bc17d7
Use new PModelConst.tk_ref
davidorme Feb 21, 2025
383e541
Fixing docstrings and docs
davidorme Feb 21, 2025
35d51b9
Odd stripping of jupyter language info
davidorme Feb 21, 2025
1a8360a
jupyter started in docs - not picking up config to keep language
davidorme Feb 21, 2025
9cbb5a4
Apply suggestions from code review
davidorme Feb 26, 2025
f57760f
Merge pull request #435 from ImperialCollegeLondon/391-review-the-con…
davidorme Feb 26, 2025
6fba700
Update migration docs
davidorme Feb 26, 2025
99f6a08
Index admonition
davidorme Feb 26, 2025
70f9d2d
Missing sphinx extension
davidorme Feb 26, 2025
a1533be
Shared components split out from PModel and SubdailyPModel docs
davidorme Feb 26, 2025
084b99b
Adding drawio version of PModel diagram
davidorme Feb 26, 2025
7affa9f
Adding in drawio links
davidorme Feb 26, 2025
cdf4694
Updated subdaily details
davidorme Feb 27, 2025
dcd7be1
Review fixes
davidorme Feb 27, 2025
c5c8647
Review fixes
davidorme Feb 27, 2025
0c7a851
Review fixes
davidorme Feb 27, 2025
e6f9fd2
Typos
davidorme Feb 27, 2025
d34fa57
Merge branch '383-meta-release-200' into 380-replace-npallclose
davidorme Feb 27, 2025
079041c
Fixing rtol in solar tests
davidorme Feb 27, 2025
5e5d2e1
Fixing rtol in splash tests
davidorme Feb 27, 2025
918a336
Fixing rtol in splash tests
davidorme Feb 27, 2025
52fc40b
Merge branch '383-meta-release-200' into 380-replace-npallclose
davidorme Feb 27, 2025
b0e94db
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Feb 27, 2025
eb238df
Repairing merge damage
davidorme Feb 27, 2025
f24b9a6
Merge branch '380-replace-npallclose' of https://github.com/ImperialC…
davidorme Feb 27, 2025
17ecc23
Repairing merge damage
davidorme Feb 27, 2025
b72409e
Merge pull request #440 from ImperialCollegeLondon/439-revise-the-mig…
davidorme Feb 27, 2025
3c46c42
Fixing test failures - mostly test code problems
davidorme Feb 27, 2025
9e2b346
Moar test code idiocy
davidorme Feb 27, 2025
da3aaa9
More test snagging
davidorme Feb 28, 2025
3edbcce
Odd OS specific tolerance issue
davidorme Feb 28, 2025
6c77b86
Fixes from @MarionBWeinzierl review
davidorme Feb 28, 2025
10a040b
Merge branch '383-meta-release-200' into 438-revise-the-p-model-docum…
davidorme Feb 28, 2025
ae29222
Broken citation
davidorme Feb 28, 2025
1a941e4
Acccidentally testing with an rtol of 1000000
davidorme Feb 28, 2025
ebfffab
Merge pull request #441 from ImperialCollegeLondon/438-revise-the-p-m…
davidorme Feb 28, 2025
bc93572
Merge pull request #382 from ImperialCollegeLondon/380-replace-npallc…
davidorme Feb 28, 2025
2b4028b
Merge branch 'develop' into 383-meta-release-200
davidorme Feb 28, 2025
ad21cbc
Adding phi0 warning and typo fix
davidorme Mar 4, 2025
9bad2be
Merge branch 'develop' into 383-meta-release-200
davidorme Mar 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 69 additions & 5 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,59 @@ A new major release is planned but will iterate through release candidates in or
make functionality available for testing while the new functionality and API changes are
worked through. The changes below are provisional.

- The `PModel` and `SubdailyPModel` classes have been extensively restructured to align
the attributes and methods and to remove repeated code. Many of these changes are
internal but the model signatures have changed and several of the attributes have been
renamed.

**Breaking changes**:

- The `SubdailyPModel` attributes giving actual predicted estimates of $V_{cmax}$ and
$J_{max}$ for observations (`subdaily_vcmax`, `subdaily_vcmax25`, `subdaily_jmax`
and `subdaily_jmax25`) have been renamed to simply `vcmax`, `vcmax25`, `jmax` and
`jmax25` to align with the observation estimates in `PModel`.
- The `SubdailyPModel` attributes giving the daily optimum and realised values for
$V_{cmax25}$, $J_{max25}$ and $\xi$ have been renamed for more clarity: `vcmax25_opt`,
`vcmax25_real`, `jmax25_opt`, `jmax25_real`, `xi_opt` and `xi_real` have changed to
`vcmax25_daily_optimal`, `vcmax25_daily_realised`, `jmax25_daily_optimal`,
`jmax25_daily_realised`, `xi_daily_optimal` and `xi_daily_realised`.
- The `PModel.estimate_productivity` method was required to pass in FAPAR and PPFD to
scale up LUE predictions to GPP and to estimate other predictions. This has been
deprecated with addition of FAPAR and PPFD to the `PModelEnvironment` and GPP is now
calculated automatically.
- The `convert_pmodel_to_subdaily` function has been deprecated in favour of the new
`PModel.to_subdaily` method.

- The `PModelEnvironment` class has been updated. It now requires that the user also
provides `fapar` and `ppfd` data, currently with no default values. The provision of
additional variables has also been made more flexible, allowing users to provide
arbitary extra variables to the environment. This makes it easier to adopt new PModel
methods implementations with new required variables.

**Breaking change**: Need to specify `fapar` and `ppfd` in `PModelEnvironment`.

- The `bounds_checker` function has been retired and replaced with the `BoundsChecker`
class, which provides more flexible and user-configurable bounds checking. This
functionality is used within other classes and does not introduce breaking changes.

- A new system for providing alternative calculations of quantum yield ($\phi_0$) in the
P Model, using the new `pyrealm.pmodel.quantum_yield` module. This module now provides
an expandable set of implementations of the quantum yield calculation, and currently
supports the previous fixed and temperature dependent $\phi_0$ approaches but also
David Sandoval's extension for estimating the impact of water stress on $\phi_0$.

**Breaking change** The signatures of the `PModel` and `SubdailyPModel` classes have
changed: the arguments `kphio` and `do_ftemp_kphio` have been replaced by
`method_kphio` and `reference_kphio`.
**Breaking changes**:

- The signatures of the `PModel` and `SubdailyPModel` classes have
changed: the arguments `kphio` and `do_ftemp_kphio` have been replaced by
`method_kphio` and `reference_kphio`.
- In addition to changing the implementation, the **default values** of $\phi_0$ have
changed. In `1.0.0`, the `PModel` followed {cite:t}`Stocker:2020dh` in using default
values of either 0.081785 or 0.049977, depending on whether the model applied
temperature correction to $\phi_0$. These values were tuned to the particular model
setup and the application of a water stress penalty. The `PModel` and
`SubdailyPModel` now both default to the theoretical maximum quantum yield of
photosynthesis ($\phi_0 = 1/8$).

- The implementation of $J_{max}$ and $V_{cmax}$ limitation has been updated to provide
a more flexible and expandable system. The changes are mostly internal, but there are
Expand All @@ -43,10 +87,30 @@ worked through. The changes below are provisional.
change between v1 and v2, with the shift from `kattge_knorr` to `simple` as the
default factors.

- Many of the arguments to `SubdailyPModel` have been brought together into a new
`AcclimationModel` class. This replaces `SubdailyScaler` and bundles all of the
settings for acclimation into a single class. The following is therefore a **breaking
change**:

- `SubdailyScaler` has been replaced with `AcclimationModel`, and the following
arguments to `SubdailyPModel` are now arguments to `AcclimationModel`: `alpha`,
`allow_holdover`, `allow_partial_data`, `update_point`, `fill_kind` (as
`fill_method`).

- The legacy implementation `SubdailyPModel_JAMES` has been deprecated. This
implementation duplicated the original Mengoli et al JAMES code. This was largely a
proof of concept implementation, misses some key parts of the acclimation model and
the internal calculations are sufficiently different that there is a high maintenance
cost to updating it to the new API in version 2.0.0.

- The `fill_from` argument to `fill_daily_to_subdaily` was only required for
`SubdailyPModel_JAMES` and so this has also been deprecated.

- The functions `calc_ftemp_kphio` and `calc_ftemp_inst_vcmax` provided narrow use cases
with code duplication. They have been replaced by two broader Arrhenius functions:
`calculate_simple_arrhenius_factor` and `calculate_kattge_knorr_arrhenius_factor` (see
also the point above).
`calculate_simple_arrhenius_factor` and `calculate_kattge_knorr_arrhenius_factor` .
The functions in {mod}`pyrealm.pmodel.functions` have been updated to take specific
arguments rather than just taking `PModelConsts` and `CoreConsts` objects.

- The `pyrealm.core.water` module now provides `convert_water_mm_to_moles`,
`convert_water_moles_to_mm` and `calculate_water_molar_volume`.
Expand Down
6 changes: 2 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,15 +79,13 @@ 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])
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)

# Estimate the GPP from the model given the absorbed photosynthetically active light
pmodel_c3.estimate_productivity(fapar=1, ppfd=300)

# Report the GPP in micrograms of carbon per m2 per second.
pmodel_c3.gpp
```
Expand Down
19 changes: 11 additions & 8 deletions docs/source/_toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,23 @@ subtrees:
entries:
- file: users/pmodel/module_overview.md
subtrees:
- entries:
- file: users/pmodel/shared_components/overview.md
subtrees:
- entries:
- file: users/pmodel/shared_components/photosynthetic_environment.md
- file: users/pmodel/shared_components/optimal_chi.md
- file: users/pmodel/shared_components/quantum_yield.md
- file: users/pmodel/shared_components/jmax_limitation.md
- file: users/pmodel/shared_components/arrhenius.md
- file: users/pmodel/shared_components/soil_moisture.md
- file: users/pmodel/shared_components/extreme_values.md
- entries:
- file: users/pmodel/pmodel_details/pmodel_overview.md
subtrees:
- entries:
- file: users/pmodel/pmodel_details/worked_examples.md
- file: users/pmodel/pmodel_details/photosynthetic_environment.md
- file: users/pmodel/pmodel_details/optimal_chi.md
- file: users/pmodel/pmodel_details/quantum_yield.md
- file: users/pmodel/pmodel_details/jmax_limitation.md
- file: users/pmodel/pmodel_details/arrhenius.md
- file: users/pmodel/pmodel_details/envt_variation_outputs.md
- file: users/pmodel/pmodel_details/soil_moisture.md
- file: users/pmodel/pmodel_details/extreme_values.md
- file: users/pmodel/pmodel_details/rpmodel.md
- file: users/pmodel/subdaily_details/subdaily_overview.md
subtrees:
- entries:
Expand Down
29 changes: 16 additions & 13 deletions docs/source/api/pmodel_api.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,6 @@ language_info:
.. automodule:: pyrealm.pmodel
```

## The {mod}`~pyrealm.pmodel.pmodel` submodule

```{eval-rst}
.. automodule:: pyrealm.pmodel.pmodel
:autosummary:
:members:
```

## The {mod}`~pyrealm.pmodel.pmodel_environment` submodule

```{eval-rst}
Expand All @@ -59,6 +51,16 @@ language_info:
.. automodule:: pyrealm.pmodel.optimal_chi
:autosummary:
:members:
:inherited-members:
```

## The {mod}`~pyrealm.pmodel.arrhenius` submodule

```{eval-rst}
.. automodule:: pyrealm.pmodel.arrhenius
:autosummary:
:members:
:inherited-members:
```

## The {mod}`~pyrealm.pmodel.quantum_yield` submodule
Expand All @@ -67,6 +69,7 @@ language_info:
.. automodule:: pyrealm.pmodel.quantum_yield
:autosummary:
:members:
:inherited-members:
```

## The {mod}`~pyrealm.pmodel.functions` submodule
Expand All @@ -93,19 +96,19 @@ language_info:
:members:
```

## The {mod}`~pyrealm.pmodel.scaler` submodule
## The {mod}`~pyrealm.pmodel.acclimation` submodule

```{eval-rst}
.. automodule:: pyrealm.pmodel.scaler
.. automodule:: pyrealm.pmodel.acclimation
:autosummary:
:members:
:private-members:
```

## The {mod}`~pyrealm.pmodel.subdaily` submodule
## The {mod}`~pyrealm.pmodel.pmodel` submodule

```{eval-rst}
.. automodule:: pyrealm.pmodel.subdaily
.. automodule:: pyrealm.pmodel.pmodel
:autosummary:
:members:
:inherited-members:
```
14 changes: 7 additions & 7 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

import os
import sys
import warnings
from dataclasses import dataclass, field
from datetime import datetime

Expand All @@ -21,11 +22,14 @@

from pyrealm import __version__ as pyrealm_version

# +
sys.path.insert(0, os.path.abspath("../"))
# -


# Suppress the 2.0.0 user warnings in the documentation
warnings.filterwarnings(
"ignore", category=UserWarning, message="Pyrealm 2.0.0 uses a uses default value"
)

# -- Project information -----------------------------------------------------

project = "pyrealm: Ecosystem Models in Python"
Expand Down Expand Up @@ -55,6 +59,7 @@
"sphinxcontrib.bibtex",
"myst_nb",
"sphinx_rtd_theme",
"sphinx_design",
"sphinx_external_toc",
]

Expand All @@ -64,7 +69,6 @@

# + [markdown]
# Citation styling
# -


def bracket_style() -> BracketStyle:
Expand Down Expand Up @@ -156,7 +160,6 @@ class MyReferenceStyle(AuthorYearReferenceStyle):
("py:class", "pandas.core.frame.DataFrame"),
]

# +
intersphinx_mapping = {
"pytest": ("https://docs.pytest.org/en/stable/", None),
"numpy": ("https://numpy.org/doc/stable/", None),
Expand All @@ -166,7 +169,6 @@ class MyReferenceStyle(AuthorYearReferenceStyle):
"shapely": ("https://shapely.readthedocs.io/en/stable/", None),
"marshmallow": ("https://marshmallow.readthedocs.io/en/stable/", None),
}
# -


autodoc_default_flags = ["members"]
Expand Down Expand Up @@ -213,7 +215,6 @@ class MyReferenceStyle(AuthorYearReferenceStyle):
# html_theme = 'sphinx_material'
html_theme = "sphinx_rtd_theme"

# +
html_theme_options = {
"logo_only": True,
"version_selector": True,
Expand All @@ -227,7 +228,6 @@ class MyReferenceStyle(AuthorYearReferenceStyle):
"includehidden": True,
"titles_only": False,
}
# -


# Add any paths that contain custom static files (such as style sheets) here,
Expand Down
31 changes: 12 additions & 19 deletions docs/source/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,21 @@ language_info:
```

The `pyrealm` package provides Python implementations of models of plant productivity
and demography.
and demography. All of the functionality within the package is built to accept arrays of
data and uses the {mod}`numpy` package to efficiently calculate values across datasets
with multiple dimensions, up to analyses of global spatial datasets of long-running time
series.

# The `pyrealm` package

The package is in active development and currently provides the following modules:
:::{admonition} Version 2.0.0
The `pyrealm` package has just been updated to version 2.0.0. There are a quite a few
breaking changes to the previous version, documented in the [migration
guide](users/versions.md) to help update existing code. We strongly recommend upgrading
to the new version.
:::

The package currently provides the following modules:

The `core` module
: Contains fundamental utilities and physics functionality shared across the
Expand All @@ -57,23 +67,6 @@ The `demography` module
and respiration {cite:p}`Li:2014bc`. This module is still in active development but a
lot of initial functionality is present.

## 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](https://semver.org/), 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](users/versions.md) to help update
existing code.

## Indices and tables

* {ref}`genindex`
Expand Down
Loading