WUR-AI / WUR-AI/diffWOFOST

[Backlog Item]: Build a differentiable wofost72_pp

Open
#39 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Backlog item Epic 1
Dominant language
Python
Stars
25
Forks
6
Avg merge
2d 23h
Merged PRs (30d)
1

Description

In #3, we created a prototype, where two modules leaf_dynamics and root_dynamics are differentiable wrt only TDWI and SPAN parameters.
To develop a differentiable module, we check for look-up tables, hard thresholds, and mathematical operations, and replace them with differentiable alternatives. In addition to differentiability, the implementation also focuses on efficiency, by leveraging vectorized operations.

We want to apply the same changes to all parameters of 9 modules as well as wofost72 module.

Requirements:

  • tests should be there to check correctness of the model using all test data, see #27
  • tests should be there to check gradients
  • operations should be vectorized for both parameters and weather data (drv variable)
  • documentation and docstrings should be fixed.

Examples:
See current implementations of leaf_dynamics and root_dynamics .

Note:
We use EngineTestHelper from utils to run individual model, until engine is fixed in #25

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the differentiable leaf_dynamics and root_dynamics implementations, then inspect the nine modules and wofost72 module linked in pcse/crop/wofost72.py. Use EngineTestHelper from utils and the test data referenced by #27 to check model correctness, then add gradient tests. Done means all parameters and drv weather operations are vectorized and the documentation and docstrings are fixed.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
machine-learning
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.