FoRTExperiment / FoRTE-mgmt

Project planning and management
MIT License
4 stars 1 forks source link

Kalyn-Ben 2020-08-27 #77

Open bpbond opened 3 years ago

bpbond commented 3 years ago
  1. FoRTE paper and simulation design

Experiment 1:

Experiment 2:

Experiment 3:

kdorheim commented 3 years ago

Experiment 1 Design IMG_0886

kdorheim commented 3 years ago

What was the date of the tree girdle for FoRTE?

ben 1:43 PM Late May 2019

kdorheim commented 3 years ago

So in preparation for experiment 1 results please check out the baseline run results, to make sure we are happy with how the met data inputs were manipulated and have some standard output plots.

bpbond commented 3 years ago

Thanks for pinging me on Slack. I've been really underwater this week and missed this.

atkinsjeff commented 3 years ago

This looks great. Couple of questions...

Why is LAI so low? Or am I reading those units wrong? less than 1?

Also, couldn't negative NEP in August come from lack of tree growth in that period? Most of the actual growth is early growing season and the declines precipitously. A cool hysteresis effect if true.

jeff

On Wed, Sep 30, 2020 at 1:11 PM Ben Bond-Lamberty notifications@github.com wrote:

Thanks for pinging me on Slack. I've been really underwater this week and missed this.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/FoRTExperiment/FoRTE-mgmt/issues/77#issuecomment-701524166, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB7XVVPMKRNCBGLWYXYAN5DSINRC7ANCNFSM4QNA3UEA .

-- Jeff Atkins, PhD Post-Doctoral Fellow Department of Biology Virginia Commonwealth University atkinsjeff.github.io he/his/him

ashiklom commented 3 years ago

Also worth plotting up the total LAI by PFT (see the example in the ed4forte docs). The cohort-level LAI can be tricky to interpret the LAI by cohort. That said, these values do look a bit low. I'm assuming you're using the default parameters?

kdorheim commented 3 years ago

@ashiklom and @atkinsjeff Thanks for taking a look at notebook. Yes the NEP is fine, although in the future we are going to plot annual fluxes. As for for the low LAI that is something we have struggled understanding. Following up on @ashiklom suggestion here is the LAI by PFT

image

when we are using default ED parameters, the max LAI reaches to 1, are we expecting it to be larger?

ashiklom commented 3 years ago

That does seem a bit more reasonable, but still low. The observed present-day value is more like 4.5-5.

Below are the default parameter results from our GCB paper. It's interesting that your values are roughly 2x lower. Assuming something didn't change in the ED2 source code between the GCB version and your runs (which is very possible!), one difference between the simulations is that you included southern pines and late successional conifers. Based on that figure, they don't seem to do much, but I wonder if they kill some of the early hardwood cohorts at the very beginning of the run. Might not be a bad idea to zoom this plot in on the first year or two and see what the competitive dynamics look like.

Looking more closely at the default ed4forte ED2IN, I noticed at least two differences from the GCB runs: ISTRUCT_GROWTH_SCHME = 1 (0 in GCB paper) and H2O_PLANT_LIM=2 (1 in GCB paper). Try changing those settings to the GCB ones (should be able to do it via the run_ed function) and running from 1900 to, say, 1930. I'm hoping those will get you around the same max LAI (~3, circa 1925) as the GCB paper (which is still too low, but at least an improvement). If so, we can add to our notes that these settings somewhat suppress productivity.

Screen Shot 2020-09-30 at 3 10 29 PM
kdorheim commented 3 years ago

@ashiklom

So the ED2IN file I am using is https://github.com/FoRTExperiment/forte-disturbance/blob/dev_pic_setup/A.inputs/ED2IN, this ended up being the best way to run ed on pic however it looks like when I add the struct_growth_schme to the input file ED2 is unhappy :(

[dorh012@constance01 new_ed2in]$ /people/dorh012/ed-source-code/ed_2.2-opt ./ED2IN > run_log.txt
At line 28 of file ed_load_namelist.f90 (unit = 10, file = 'ED2IN')
Fortran runtime error: Cannot match namelist object name %istruct_growth_schme
kdorheim commented 3 years ago

As for early LAI dynamics

image

ashiklom commented 3 years ago

In your error message above, "scheme" in %istruct_growth_schme is misspelled. But, looks like the setting is in there already with the same value as the GCB paper.

From the competition plot, looks like southern pines aren't doing anything, but late-successional conifers are there and consistently have higher LAI than late broadleaf. It's possible that late conifer is preventing mid broadleaf from establishing itself, with the result that you end up with fewer cohorts overall and hence lower LAI. You can check by trying a run without late conifer (by removing it from the INCLUDE_THESE_PFT list). That said, both late conifer and mid broadleaf LAIs are small relative to early and mid broadleaf, so might not matter much.

(P.S. Really nice job documenting and organizing your workflow and results! Makes it so much easier to have a dialogue about what might be happening. I wish all science happened like this!)

kdorheim commented 3 years ago

Alrighty, here is LAI 1900 - 1950 with out any sort of pines, the LAI is still maxing out at around 1.5

image

ashiklom commented 3 years ago

Hmm, well I'm stumped 😬 My next suggestion would be to try runs with the relatively experimental modules (trait plasticity, finite crown model) disabled and see what you get. I'm hoping that the default / legacy ED2 code is somewhat more stable and will get you back to the higher LAI.

Other than that, my other suggestion would be to look at what version of ED2 you're using relative to the one used for the GCB paper. Unfortunately, from looking at the ED2 repo, looks like there have been quite a lot of changes to the code since then, with a mix of just refactoring / moving code around and actual changes to the math/science (sometimes, both in the same commit).

If these changes also modified how ED2 runs in its most default configuration (i.e., if the test I suggested above still gives you LAI that is too low), we may have to do some calibration or manual parameter tuning to get more reasonable results (wouldn't be the first time that ED2 development oriented around tropical simulations has affected its performance in other biomes). If LAI specifically is the problem but NPP seems reasonable, then the first parameter I'd look at is SLA -- note from the GCB paper that the ED2 default for all PFTs except early hardwood is lower than what our trait meta-analysis suggested. The defaults for Vcmax are also too low for all PFTs, so if the NPP is also too low, increasing that should help.

bpbond commented 3 years ago

Hi all, thanks for weighing in and the advice and help Alexey and Jeff. I agree that SLA is a classic parameter to tune that affects LAI pretty directly. @kdorheim is it reasonably easy to tell me what the current ED default are for our PFTs? Thanks.

ashiklom commented 3 years ago

@bpbond If they haven't changed since I made ed4forte (which they very well may have!), here is the last list of all the parameters.

The actual parameter setting is slightly more complicated because they apparently now account for leaf economic relationships and such, but only for some PFTs. Here's where the SLA (and, elsewhere in that file, the other parameters) are initialized:

https://github.com/EDmodel/ED2/blob/43d3df203d64df76e13c2411c90f07bcce3bb7e5/ED/src/init/ed_params.f90#L3267-L3299

kdorheim commented 3 years ago

@bpbond @ashiklom @atkinsjeff

So SLA for the PFTs are

|pft_name                                |  SLA|
|:---------------------------------------|----:|
|Northern North American pines           |  6.0|
|Temperate broadleaf, mid-successional   | 24.2|
|Temperate broadleaf, late successional  | 60.0|
|Temperate broadleaf, early successional | 30.0|

Do the SLA values look like they are in the right ballpark for UMBS?

I am unable to find where Vcmax is defined in the version of ED we are working with. @ashiklom vcmax is not included in the ed4forte parameter table, do one of the following columns stand for vcmax? Vm0 | Vm0_v0 | Vm0_v1 | Vm_low_temp | Vm_high_temp | Vm_decay_elow | Vm_decay_ehigh | vm_hor | vm_q10

ashiklom commented 3 years ago

Yeah, it's a bit confusing. Vcmax varies with temperature, so the actual parameter is typically Vcmax0 -- Vcmax at a reference temperature -- along with one or more temperature scaling coefficients. The key parameter here is Vm0, which is Vcmax at 15 degrees C.

kdorheim commented 3 years ago

Ah okay, thanks for clarifying @ashiklom, but Vcmax is a parameter that can be read in with the config.xml file correct?

ashiklom commented 3 years ago

Well, Vm0 is -- the Vcmax at 15C -- so that's what you should be setting. What's typically reported in trait studies is Vcmax at 25C, so if you're comparing against established trait data, you'll have apply a temperature scaling. Let me see if I can dig up the relevant code / paper(s) for you.

kdorheim commented 3 years ago

@ashiklom Okay so taking a look at input-parameters.csv from your FoRTE baseline work there is a column that is labeled Vcmax. My impression was that the contents of the csv file, including Vcmax, were read into Ed via the config.xml file. Is this correct?

Is the Vcmax reported in input-parameters.csv, Vcmax at 15C or Vcmax at 25C?

ashiklom commented 3 years ago

Is the Vcmax reported in input-parameters.csv, Vcmax at 15C or Vcmax at 25C?

Vcmax at 25C, which is far more commonly reported in trait databases and is the more common parameter for models.

My impression was that the contents of the csv file, including Vcmax, were read into Ed via the config.xml file. Is this correct?

Yes, but there are a few additional things that happen. I borrowed a lot of the functionality for writing the ED2 XML config file directly from PEcAn, which has already solved many of these problems (albeit, not always in the most elegant way) in a way that is designed to be transferable across multiple models. So the fortebaseline code actually does some additional conversion and renaming of the data in the input trait table. Buried like 5 layers of indirection deep is the confusingly-named convert.samples.ED2 function lifted directly from the PEcAn codebase, which, among other things, applies an Arrhenius scaling to the Vcmax data to convert it to ED2's Vm0. The same scaling is applied to a few other temperature-dependent parameters (e.g., root_respiration_rate).

In that function, it also does another important conversion relevant to this discussion: It converts SLA from m2 / kg (the typical unit) to m2 / kg[C] by assuming a leaf C biomass fraction of 0.48. In practice, this means that the numerical values of ED2 SLA inputs are roughly 2x (exactly 1/0.48) the values you would normally see reported in trait databases.

Note that, in the interest of transparency and simplicity, I'm pretty sure none of these conversions are present in the ed4forte code. There, whatever names and values you provide are passed directly and uncritically to the config.xml file and from there to ED2.

Note also: Unlike the ED2IN, which will immediately throw an loud error if anything is missing or if you provide anything it's not expecting (e.g., a typo in a tag) -- the config.xml interface silently ignores anything it isn't expecting. So, if you try to set a PFT-specific trait called Vcmax in there, it will happily chug along with the default value without so much as a warning.

kdorheim commented 3 years ago

So I took a look at the Ed vs UMBS SLA and Vcmax see here for all the details.

In summary, both ED Vcamx and SLA are larger than the UMBS values. Looking ad temperate broadleaf early successional, which dominates the stand, ED SLA is 150% and ED Vcmax is 120% larger. Do we think that decreasing these parameter values will improve Ed LAI?

If we suspect that decreasing these two parameter values will increase LAI, I'll launch the runs.

@bpbond

bpbond commented 3 years ago

It seems unlikely but 🤷‍♂️

...I mean, I'd expect decreasing SLA to in turn decrease LAI, everything else being equal.

ashiklom commented 3 years ago

ED2 LAI is leaf biomass x SLA x plant density (number of plants per m2), so decreasing SLA should almost definitely decrease LAI.

Are you sure the units match? Note my comment above -- ED2 SLA is m2 leaf per kg leaf Carbon (because it only simulates leaf C biomass), whereas values typically reported for SLA are m2 leaf per kg total leaf mass. Assuming a leaf C mass fraction of 0.48, that means that you need to multiply any SLA reported as per kg by 1/0.48 (roughly 2x) to get to ED2 values. Or, for comparison, you can multiply the ED2 values by 0.48 to see how they compare to UMBS field values.

kdorheim commented 3 years ago

@ashiklom Ah yes good catch, I did not properly convert the SLA ED values.

Now the comparison of ED to UMBS SLA makes more sense, see notebook or below

image

kdorheim commented 3 years ago

I've added a comparison of ED default and the UMBS SLA adjusted values to the notebook the main take ways are

  1. PFTs with higher SLAs had higher above-ground biomass

image

  1. Long term NPP was similar

image

  1. Temperate broadleaf LAI values decreased! :( do we think that this could be caused by competition with the pines?

image

bpbond commented 3 years ago

That'd be my assumption, yes. There's only so much PAR, N, etc., to go around, and the pines are probably taking some of this. Greedy bastards.

kdorheim commented 3 years ago

Sigh so should we remove pines?

bpbond commented 3 years ago

Well, so the total LAI is around 2, but it's mis-allocated compared to reality: pines haven't died. That's kind of interesting, actually–the SLA adjustment changes them from being dead to dominant?!? Wow.

Let's discuss in person?