FoRTExperiment / PestED

exploratory code to add pest/pathogen scheme to ED-like ecophysiology
http://fortexperiment.github.io/PestED/
Other
2 stars 2 forks source link

Talking SEM ideas with Lisa #2

Open kdorheim opened 4 years ago

kdorheim commented 4 years ago

Question

I wanted to ask your opinion, though, on whether it's feasible and/or desirable to include dynamic parameter values (for things like LAI, SLA, Vcmax) -- in other words, starting with pre-disturbance estimates for those parameters, but then allowing those parameter values to change at some point during the simulated disturbance to other values that more realistically capture the shifts taking place in real-life. Or maybe this already takes place during the model run...?

Thoughts

So looking at https://github.com/FoRTExperiment/PestED/blob/master/PestEcosysDemo.R LAI is calculated by the model as a variable

  ## LAI & Canopy Optics (patch)
  LAI = X[1]*params$SLA*(X[7]/10000)  ## m2/m2
  PARmid = (1-0.5* exp(-0.5*LAI))*inputs$PAR  ## estimate mid-canopy PAR,  umol/m2/sec

where as SLA and Vcmax are set as parameters

params$SLA = 10
params$alpha = 0.8
params$Vcmax = 18

I am not sure if I completely understand what you are proposing here but changing SLA and Vcmax midway through the run would take some model development. If you are really interested in these variables/parameters I think we could totally focus on them.

Just some ideas of things to look at

@lisahaber let me know what you think, if you have any questions or feel like I didn't understand your question.

lisahaber commented 4 years ago

@kdorheim Thanks, this is very helpful and clarifies the way in which these ecosystem (LAI), leaf-level (SLA) and photosynthetic (Vcmax) values are treated in the SEM. It makes sense that LAI is an outcome, since it's an ecosystem-scale property and production will relate closely to LAI. Also makes sense (for the sake of simplicity, and since these values are well constrained across ecosystem/plant functional types) to treat SLA & Vcmax as static parameters. It's ecologically unrealistic that they will not be highly responsive to the disturbance event, as it is unfolding (or during the model run), but makes sense from the modeling side.

I don't think my question was very clear at all -- sorry! -- but I'm wondering now whether ED2 also treats SLA and Vcmax as invariant parameters during a model run? Or if those are free to change within a run? It seems to me that that would be a major model structural difference with large implications for model outcome.

I like your idea of exploring the impacts of SLA and Vcmax on NPP and LAI! My proposed benchmarks for comparison between your ED2 output and the SEM output, as of now, are NPP, LAI, and woody biomass increment. Those are all variables we are tracking annually in FoRTE.

Thanks again, Kalyn! This is very helpful and I appreciate it!

kdorheim commented 4 years ago

ah awesome! let me take a look ED2 and if that is an area where SEM differ in representation I could see that being a valuable question to ask to get at the ideas of how much complexity it needed. If SEM can capture the same LAI dynamics as ED I would think that it would open up the door to use SEM in other studies.

kdorheim commented 4 years ago

@lisahaber could you provide a brief description of SLA and Vcmax?

lisahaber commented 4 years ago

Sure! SLA is specific leaf area, which is the one-sided leaf area per unit dry leaf mass (units are sometimes m2*kg-1). (This is the inverse of leaf mass per area, LMA, which is what our lab generally uses for some reason...)

Vcmax is the maximum rate of carboxylation by Rubisco in the leaf, which is just basically a leaf photosynthetic parameter describing enzymatic activity in the leaf during photosynthesis. It's not directly measurable but inferred from A/Ci curves, which we measure with the LI-6400 IRGA instrument, and those measure a (also inferred) net assimilation of CO2 vs. leaf-internal CO2 concentration

lisahaber commented 4 years ago

Sorry, not sure if it's helpful to know but the SLA is measured usually by scanning a leaf with a leaf scanner, which will measure its area, and then drying that leaf and weighing it once it's dried.

kdorheim commented 4 years ago

Thanks! That is helpful info.

So it looks like both Vcmax and SLA can be read into ED2 as parameters, @ashiklom did this in his BGC paper. Right now we have ED set up so that Vcmax and SLA vary. I assume that these values are being used to initiate the ED run but need check to see how the parameters are being used. Right now SLA can be written as output but I am not sure about Vcmax.

TLDR potentially helpful notes about the source code.

When I go to look through the source code

SLA is updated in script

 !----- Update the specific leaf area (SLA). --------------------------------!
               turnover_now    = cpatch%turnover_amp(ico) * leaf_turnover_rate(ipft)
               cpatch%sla(ico) = sla_s0(ipft) * turnover_now ** sla_s1(ipft)
            case default

and according to this script depending on how you set up an ED run these variables can vary

 !---------------------------------------------------------------------------------------!
   !< TRAIT_PLASTICITY_SCHEME -- Whether/How plant traits vary with local environment.\n
   !<                            0. No trait plasticity. Trait parameters for
   !< each PFT is fixed. (ED2.2 and before).\n
   !<                            1. Vm0 and SLA change with cohort light environment based
   !< on Lloyld et al. 2010 Biogeosciences. For each cohort, Vm0 decreases and SLA increases
   !< under shading. The magnitude of changes is calcualted using overtopping
   !< LAI and corresponding extinction facotrs for each trait. The traits for
   !< each cohort are updated every year.\n

TODO

ashiklom commented 4 years ago

Following the classic Farquhar photosynthesis model (here's a user-friendly demo), Vcmax is used to calculate the maximum possible carboxylation-limited CO2 assimilation rate. The exact ED2 implementation is described in the Longo ED2.2 description paper, section 4.6, but it's pretty dense. Briefly, for C3 plants (everything at UMBS, at least the trees):

# A = Total CO2 flux into leaf
# Vc := Assimilation
# Vo2 := Photorespiration/oxygenation
# R := Dark respiration
A = Vc - Vo2 - R

# Assimilation is limited by either light or CO2
Vc = min(Vc[Rubisco], Vc[light])
# Rubisco-limited assimilation is a function of Vcmax and
# CO2 concentration inside the leaf. It uses a Michaelis-Menten
# kinetics equation.
Vc[Rubisco] = Vcmax * (leaf_co2) / (leaf_co2 + K)

# Light-limited assimilation (Vc[light]) is also a Michaelis-Menten equation
# but with different terms and parameters.

SLA in ED2 is primarily used to translate from leaf biomass to leaf area by direct multiplication. That leaf area is used to scale a lot of other ED2 quantities that are area-based. Off the top of my head, I don't think it has any other uses.

leaf_area[m2] = leaf_biomass[kg] * SLA[m2 / kg]

In the default ED2 configuration, both SLA and Vcmax are PFT-specific parameters, meaning that they are fixed in time. Therefore, no real sense reporting them in the output files (because they'll be completely flat time series). If you modify any input parameters at all via config.xml, ED2 should produce a history.xml file that contains the values of all parameters it's running with.

The trait plasticity flag makes SLA and Vcmax vary in response to light availability --- SLA increases as it gets darker (intuition: Because there's less light, plants want to increase leaf area to capture more of it), and Vcmax decreases as it gets darker (intuition: you're more likely to be light limited than CO2-limited in the dark, so less sense investing resources in carboxylation). In this case, it would make sense to report the actual values of each parameter for each cohort at any point in time, but I'm not sure if ED2 does or not. I think both of these basically take the form SLA[actual] = SLA[input_parameter] - b * light_level. Note that the coefficient b here is hard coded to the tropics; it's almost certainly a different value in temperate systems. Moreover, my GCB results showed that turning on trait plasticity didn't matter that much anyway, so probably better to leave it off.

ashiklom commented 4 years ago

For simulating post-disturbance changes in these parameters, I would suggest running ED2 with the pre-disturbance parameters right up to the disturbance time point, then creating a new parameter file with post-disturbance parameters, and starting ED2 from immediately after the disturbance with the new parameters. The hardest part will be preserving as much of the system as possible in your new post-disturbance initial condition files.

I don't think there's any way to change ED2 parameters while it's running without altering its source code.