Skip to content

Conversation

@AlexisRenchon
Copy link
Member

@AlexisRenchon AlexisRenchon commented Oct 22, 2025

Optimal LAI (optimal_lai.jl), after Zhou et al., 2025

  • New AbstractLAIModel (not AbstractAreaIndexModel which also gives RAI and SAI)

TODO:

  • Compute Ao as LUE * PAR (FAPAR = 1, beta = 1) (from the pmodel - and store it in cache, and integrate it to daily and annual in Y)
  • Read varying in space precip, growing season, growing season VPD, annual potential GPP.. see spatialvaryinginput
  • In compute_L_max (equation 11 in paper), Ao is "potential GPP" (annual) = PAR * LUE (assumes fPAR = 1) - this is NOT observed annual GPP. LUE is from P model (equation 2 and 3). Kat question: if we modified LUE to account for moisture stress, do we need the second part of equation 11 (water limitation adjustment of fAPARmax).
    Note: for initialization, we will need to compute this Ao first and read it...
  • m is the fraction of GPP allocated to LAI - shouldn't it be between 0 and 1? (or can it be more - say, using non-structural carbohydrates...)
  • in equation 14, it is a bit unclear what the units of Ao are. the text mention "it is reasonable to model GPP on an hourly to daily basis" (whereas Ao was annual before). Figure 1 shows daily units for Ao (g C m−2day−1). But for equation 11, for example, Ao is also used, but this time is said in the text to be annual (molm−2 year−1). - It is confusing to use the same name throughout the text for variable with different units. In equation 20, Aosum is used for annual - which is great. but not in equation 11 (even if annual too)

TODO (call with Kat 11/5):

  • Fix GPU error - could be because params are keywords arg, should be args (read with toml). test this on clima GPU as unit test.
  • Make sure LAI initialization looks okay globally.

TO DO:

  • currently updates via callback (akin to pmodel). We may want to update in Y instead. (let's discuss)
  • This currently stores LAI in p.canopy.lai_model.LAI, which means there are two LAIs: the prescribed one p.canopy.biomass.area_index.leaf, and the modeled one. (this is intentional for now - so we can compare them). Maybe we want to do this differently. (and maybe we want to use biomass and not a new lai_model). let's discuss.
  • Currently, optimal LAI is computed, but the LAI used for photosynthesis etc. is still the prescribed LAI.
  • Daily GPP is actually local noon scaled to day (assuming 8 hours) - it would be better to use actual daily GPP
  • To go global, how do we get, at all (lon, lat):
  • annual precip
  • annual gpp
  • growing season mean VPD
  • growing season length
  • daily GPP

--> we could start by reading them and have them constant (except daily gpp), and later, store in Y starting year 2?

Ozark, with

Ao_annual = FT(100.0), # mol CO2 m-2 y-1, for an average forest
P_annual = FT(60000.0), # ~ 1000 mm precipitation per year,
D_growing = FT(1000.0), # mean VPD growing season (Pa) - also some average value,
GSL = FT(180.0), # days, growing season length
test

@AlexisRenchon AlexisRenchon changed the title Optimal LAI in pmodel.jl Optimal LAI Oct 27, 2025
@AlexisRenchon AlexisRenchon force-pushed the kd/ar/optimal_lai_pmodel branch 2 times, most recently from d4dd87d to 34d53b5 Compare October 29, 2025 19:33
@AlexisRenchon AlexisRenchon force-pushed the kd/ar/optimal_lai_pmodel branch 5 times, most recently from 8a52961 to 324c333 Compare November 4, 2025 19:11
@AlexisRenchon AlexisRenchon force-pushed the kd/ar/optimal_lai_pmodel branch from 47fbb72 to ab5c93d Compare November 11, 2025 16:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants