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

O2.6.1-2 Big Leaf Model (SDI) #152

Closed
15 tasks done
kmdeck opened this issue Feb 16, 2023 · 7 comments
Closed
15 tasks done

O2.6.1-2 Big Leaf Model (SDI) #152

kmdeck opened this issue Feb 16, 2023 · 7 comments
Labels
SDI Software Design Issue

Comments

@kmdeck
Copy link
Member

kmdeck commented Feb 16, 2023

Purpose

Implement a big leaf model into ClimaLSM. The goal of this is to (1) have an example demonstration of a canopy model running with ClimaLSM that we can learn from when we integrate the SPAC model and (2) to have a simple working canopy model which we can integrate with the soil model as a simple land model.

#151 first PR with parameterizations
#162 Compute surface albedo, emissivity and transpiration with canopy [closed as this was added into #163]
#163 Modularize canopy models
#175 Plant hydraulics only runs as part of the canopy (remove standalone option)
#181 update ozark experiment - soil hydrology + big leaf model
#185 plant vulnerability curves
#189 full canopy+soil
#238 zero lai support
#265 two-stream radiation
spatially varying and time varying parameter - handled now in Issue #126
#263 area index varies in time (site level)
#264 globally prescribed parameters that vary in time and space
#341 Adds prognostic temperature for the canopy
#368 #369 #276 Additional Fluxnet sites

Cost/benefits/risks

Cost: developer time (Alexis, Katherine, Renato), there is a duplication of effort with what Yujie has already built
Benefit: We think this is a shorter route to a version of a canopy model + soil that we can couple to the atmosphere, and the simpler land surface model will likely be easier to debug. this will also be a "minimum working example" that we can build off of to incorporate the SPAC model instead. There is also an opportunity for us to learn about how these models work (which also spreads knowledge across the team instead of concentrated in a few people).
Risks: we really want this to be a stepping stone to running the physical land model with the SPAC model, and not viewed as an alternative.

Producers

Alexis (primary developer), Katherine (developer), Renato (supervision, equation/science support)

Components

Radiative transfer model (Beer's law) - we need to get fAPAR here
Photosynthesis model (C3 to start, Farquar model)
Stomatal conductance model (Medlyn)
API for integrating these with existing plant hydraulics model

Inputs

This is a work in progress https://www.overleaf.com/8566116853pdxxskxjjsdh

Results and deliverables

  1. Create a working canopy model which we can run standalone mode.
  2. Integrate the canopy model with the soil model, and drive with reanalysis data (Ozark test site or another). Clear demonstration of how to use atmospheric conditions to compute the necessary fluxes.
  3. Run in a global setting (ingest parameter maps for LAI, Vcmax25, rooting depth)
  4. Use the existing climalsm interface to couple with the atmosphere in a global setting.
  5. A tutorial for use, documentation, unit tests

Task breakdown

A preliminary list of PRs and a preliminary timeline of PRs, milestones, and key results.

...

Reviewers

@braghiere @Yujie-W @cfranken @tapios @eviatarbach

@kmdeck kmdeck added the SDI Software Design Issue label Feb 16, 2023
@tapios
Copy link

tapios commented Feb 17, 2023

This looks like a great stepping stone to me. A few additional points to consider:

  • One important aspect we want to prototype is the handling of parameters and output, to create parameter-to-output maps that we can eventually invert to learn about parameters from data. So making this code compatible with ClimaParameters is important (you probably were planning this anyway). @eviatarbach's input here would be helpful, given his recent experience with the more complex biophysics model.
  • @eviatarbach has also used optimality-based functions for VCmax and learned functions for chlorophyll content. It would be good to include these here too. This will allow us to begin asking quantitative questions about what model complexity is necessary to fit (global) data.
  • What is the minimal model necessary to also simulate SIF in this relatively simple setting, which still has a photosynthesis model?

@kmdeck
Copy link
Member Author

kmdeck commented Feb 17, 2023

@eviatarbach could you add some notes about that model to the overleaf? Equations, what parameters are required, if they are constant over the globe or spatially varying (but constant in time), and if the model introduces any prognostic variables that we solve for via a diff eq. thank you!

Im not sure about your last point, @tapios, but as to the first one - yes, we'll use CLIMAParameters. Ill show Eviatar what we have been doing so far within ClimaLSM and we can adjust it if needed!

@Yujie-W
Copy link

Yujie-W commented Feb 17, 2023

  • What is the minimal model necessary to also simulate SIF in this relatively simple setting, which still has a photosynthesis model?

[Short answer]
One can emulate SIF with the simple RT models, but the bias could be too high.

Ray tracing canopy radiative transfer (RT) models are among the most complex models. The intermediate ones, such as what we use in the Land module, are to bin the leaf by the angular distribution. The simplest RT models are the two leaf scheme and one big leaf scheme.
However, big leaf models do not simulate hyperspectral RT, and thus cannot simulate SIF directly. What people did is to add an ad-hoc scaling based on leaf level photosynthesis and SIF. Yet, this emulated SIF does not contain any information about sun-sensor geometry, and may have considerable bias. For instance, if we assume the CliMA Land RT values are true values (blue dashed curve), the purple is that of big leaf RT, and the red is that of two leaf RT. All the simulations were done using Land RT in the figure below; the bias could be much higher if one uses big leaf RT to emulate the already biased SIF.

image

@braghiere
Copy link
Member

The minimal model to simulate SIF is a linear regression of GPP:

SIF = a . GPP

CARDAMOM-SIF uses an approach like this. Noting that the errors associated with this simple model can be substantial, as @Yujie-W showed.

@tapios
Copy link

tapios commented Feb 17, 2023

The minimal model to simulate SIF is a linear regression of GPP:

SIF = a . GPP

CARDAMOM-SIF uses an approach like this. Noting that the errors associated with this simple model can be substantial, as @Yujie-W showed.

How can we emulate what @Yujie-W did in a big leaf model? I.e., use his simulation of SIF without multiple layers in a canopy?

@Yujie-W
Copy link

Yujie-W commented Feb 17, 2023

Here is an example of how BEPS emulate SIF

@tapios
Copy link

tapios commented Feb 17, 2023

Here is an example of how BEPS emulate SIF

Thanks, @Yujie-W. This is worth keeping in mind to implement in a next stage of the big leaf model.

@kmdeck kmdeck changed the title Big Leaf Model (Draft SDI) Big Leaf Model (SDI) Feb 24, 2023
bors bot added a commit that referenced this issue Mar 8, 2023
165: Adding Insolation to param set r=kmdeck a=kmdeck

## Purpose 
In anticipation of merging the canopy PR, this adds the Insolation params to the param set & adds the Insolation package to the project tomls.

See Issue #152 


## To-do

## Content
Adds Insolation to param set
Adds Insolation to Project tomls

Review checklist

I have:
- followed the codebase contribution guide: https://clima.github.io/ClimateMachine.jl/latest/Contributing/
- followed the style guide: https://clima.github.io/ClimateMachine.jl/latest/DevDocs/CodeStyle/
- followed the documentation policy: https://github.com/CliMA/policies/wiki/Documentation-Policy
- checked that this PR does not duplicate an open PR.

In the Content, I have included 
- relevant unit tests, and integration tests, 
- appropriate docstrings on all functions, structs, and modules, and included relevant documentation.


----
- [X] I have read and checked the items on the review checklist.


Co-authored-by: kmdeck <kdeck@caltech.edu>
bors bot added a commit that referenced this issue Mar 8, 2023
165: Adding Insolation to param set r=kmdeck a=kmdeck

## Purpose 
In anticipation of merging the canopy PR, this adds the Insolation params to the param set & adds the Insolation package to the project tomls.

See Issue #152 


## To-do

## Content
Adds Insolation to param set
Adds Insolation to Project tomls

Review checklist

I have:
- followed the codebase contribution guide: https://clima.github.io/ClimateMachine.jl/latest/Contributing/
- followed the style guide: https://clima.github.io/ClimateMachine.jl/latest/DevDocs/CodeStyle/
- followed the documentation policy: https://github.com/CliMA/policies/wiki/Documentation-Policy
- checked that this PR does not duplicate an open PR.

In the Content, I have included 
- relevant unit tests, and integration tests, 
- appropriate docstrings on all functions, structs, and modules, and included relevant documentation.


----
- [X] I have read and checked the items on the review checklist.


Co-authored-by: kmdeck <kdeck@caltech.edu>
bors bot added a commit that referenced this issue Mar 8, 2023
165: Adding Insolation to param set r=kmdeck a=kmdeck

## Purpose 
In anticipation of merging the canopy PR, this adds the Insolation params to the param set & adds the Insolation package to the project tomls.

See Issue #152 


## To-do

## Content
Adds Insolation to param set
Adds Insolation to Project tomls

Review checklist

I have:
- followed the codebase contribution guide: https://clima.github.io/ClimateMachine.jl/latest/Contributing/
- followed the style guide: https://clima.github.io/ClimateMachine.jl/latest/DevDocs/CodeStyle/
- followed the documentation policy: https://github.com/CliMA/policies/wiki/Documentation-Policy
- checked that this PR does not duplicate an open PR.

In the Content, I have included 
- relevant unit tests, and integration tests, 
- appropriate docstrings on all functions, structs, and modules, and included relevant documentation.


----
- [X] I have read and checked the items on the review checklist.


Co-authored-by: kmdeck <kdeck@caltech.edu>
bors bot added a commit that referenced this issue Mar 24, 2023
163: Modularize canopy model to have subcomponents; run model r=kmdeck a=kmdeck

## Purpose 
#152 Adds in the big leaf model update equations and hooks up with the existing plant hydraulics model. lays the foundation for more complex canopy RT, stomatal conductance, and photosynthesis models.


## Content
1. Adds canopy model prognostic and aux state vectors and types
2. adds an update aux function and a `canopy_surface_fluxes` function which adjusts the MOST-computed surface fluxes for canopy conductance.
3. Changes the interface to the plant hydraulics standalone model - you now create a canopy model with just a plant hydraulics component using `model = CanopyModel{FT}(plant_hydraulics)` `@gagnelandmanna` 
4. adds unit code tests
5. updates docs

Review checklist

I have:
- followed the codebase contribution guide: https://clima.github.io/ClimateMachine.jl/latest/Contributing/
- followed the style guide: https://clima.github.io/ClimateMachine.jl/latest/DevDocs/CodeStyle/
- followed the documentation policy: https://github.com/CliMA/policies/wiki/Documentation-Policy
- checked that this PR does not duplicate an open PR.

In the Content, I have included 
- relevant unit tests, and integration tests, 
- appropriate docstrings on all functions, structs, and modules, and included relevant documentation.

-->

----
- [x] I have read and checked the items on the review checklist.


Co-authored-by: kmdeck <kdeck@caltech.edu>
@lawann lawann changed the title Big Leaf Model (SDI) 2.3.2 Big Leaf Model (SDI) Oct 5, 2023
mitraA90 pushed a commit that referenced this issue Dec 22, 2023
165: Adding Insolation to param set r=kmdeck a=kmdeck

## Purpose 
In anticipation of merging the canopy PR, this adds the Insolation params to the param set & adds the Insolation package to the project tomls.

See Issue #152 


## To-do

## Content
Adds Insolation to param set
Adds Insolation to Project tomls

Review checklist

I have:
- followed the codebase contribution guide: https://clima.github.io/ClimateMachine.jl/latest/Contributing/
- followed the style guide: https://clima.github.io/ClimateMachine.jl/latest/DevDocs/CodeStyle/
- followed the documentation policy: https://github.com/CliMA/policies/wiki/Documentation-Policy
- checked that this PR does not duplicate an open PR.

In the Content, I have included 
- relevant unit tests, and integration tests, 
- appropriate docstrings on all functions, structs, and modules, and included relevant documentation.


----
- [X] I have read and checked the items on the review checklist.


Co-authored-by: kmdeck <kdeck@caltech.edu>
mitraA90 pushed a commit that referenced this issue Dec 22, 2023
163: Modularize canopy model to have subcomponents; run model r=kmdeck a=kmdeck

## Purpose 
#152 Adds in the big leaf model update equations and hooks up with the existing plant hydraulics model. lays the foundation for more complex canopy RT, stomatal conductance, and photosynthesis models.


## Content
1. Adds canopy model prognostic and aux state vectors and types
2. adds an update aux function and a `canopy_surface_fluxes` function which adjusts the MOST-computed surface fluxes for canopy conductance.
3. Changes the interface to the plant hydraulics standalone model - you now create a canopy model with just a plant hydraulics component using `model = CanopyModel{FT}(plant_hydraulics)` `@gagnelandmanna` 
4. adds unit code tests
5. updates docs

Review checklist

I have:
- followed the codebase contribution guide: https://clima.github.io/ClimateMachine.jl/latest/Contributing/
- followed the style guide: https://clima.github.io/ClimateMachine.jl/latest/DevDocs/CodeStyle/
- followed the documentation policy: https://github.com/CliMA/policies/wiki/Documentation-Policy
- checked that this PR does not duplicate an open PR.

In the Content, I have included 
- relevant unit tests, and integration tests, 
- appropriate docstrings on all functions, structs, and modules, and included relevant documentation.

-->

----
- [x] I have read and checked the items on the review checklist.


Co-authored-by: kmdeck <kdeck@caltech.edu>
@Espeer5 Espeer5 linked a pull request Feb 7, 2024 that will close this issue
1 task
@Espeer5 Espeer5 removed a link to a pull request Feb 7, 2024
1 task
@juliasloan25 juliasloan25 changed the title 2.3.2 Big Leaf Model (SDI) O2.3.2 Big Leaf Model (SDI) Apr 24, 2024
@kmdeck kmdeck changed the title O2.3.2 Big Leaf Model (SDI) O2.6 Big Leaf Model (SDI) Apr 26, 2024
@juliasloan25 juliasloan25 changed the title O2.6 Big Leaf Model (SDI) O2.6.1-2 Big Leaf Model (SDI) Apr 26, 2024
@kmdeck kmdeck closed this as completed Apr 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
SDI Software Design Issue
Projects
None yet
Development

No branches or pull requests

7 participants