DrylandEcology / STEPWAT2

folder
4 stars 5 forks source link

Estimation of vegetation type percent cover to pass to SOILWAT2 #370

Open dschlaep opened 5 years ago

dschlaep commented 5 years ago

SOILWAT2 interprets the biomass values of each vegetation type as if that vegetation type covers 100% of a square-meter. SOILWAT2 uses the fCover values to calculate the actual biomass values given a mixture of vegetation types. For instance,

forbs: fCover = 0.4, biomass = 300 g/m2 grasses: fCover = 0.6, biomass = 450 g/m2 --> vegetation: fCover = 1, total biomass = 390 g/m2 (0.4 300 + 0.6 450) of which 120 g/m2 are forbs and 270 g/m2 are grasses

(see also #346)

Problem:

--> SOILWAT2 would expect inputs as:

  • forbs: fCover = 0.9, biomass = 55.6 g / m2 = 50 / 0.9
  • shrubs: fCover = 0.1, biomass = 5000 g / m2
  • total vegetation: fCover = 1 = 0.9 + 0.1, biomass = 550 g / m2 = 0.9 55.6 + 0.1 5000

--> STEPWAT2, however, currently passes the following values to SOILWAT2:

  • forbs: fCover = 0.09 = 50 / (500 + 50), biomass = 555.6 g / m2 = 50 / 0.09
  • shrubs: fCover = 0.91 = 500 / (500 + 50), biomass = 549.45 g / m2 = 500 / 0.91
  • total vegetation: fCover = 1 = 0.09 + 0.91, biomass = 550 g / m2 = 0.09 555.6 + 0.91 549.45

--> these two representations have the same total biomass value, but one is covered over 90% percent of the area by small forbs (and 10% is covered by a big shrub), while the other is dominated with 91% by small shrubs (and 9% by large forbs).

Suggested approach: STEPWAT2 needs additional information (i.e., new input parameters) to estimate a cover ~ biomass relationship for each vegetation type

dschlaep commented 5 years ago

An implementation option for the previous suggested approach:

SOILWAT2 used to calculate "pct_cover" before v5.0.0; v5.0.0 introduced the new interception equations and replaced all "pct_cover" and the weird 3-dimensional variable "vegcov" in favor of LAI. However, the calculation of that "pct_cover" may be useful for STEPWAT2 to estimate the fCover values to pass to SOILWAT2.

"pct_cover" was calculated by function SW_VPD_construct(), see lines 753-754 here https://github.com/DrylandEcology/SOILWAT2/blob/3212b074db882d91a8670959ad6dcfac9524d67e/SW_VegProd.c, as

lai_standing = v->veg[k].biomass_daily[doy] / v->veg[k].lai_conv_daily[doy];
v->veg[k].pct_cover_daily[doy] = lai_standing / v->veg[k].conv_stcr;

or in short: pct_cover = biomass / (lai_conv * conv_stcr)

The default values used to be (see lines 16 and 95ff here https://github.com/DrylandEcology/SOILWAT2/blob/3212b074db882d91a8670959ad6dcfac9524d67e/testing/Input/veg.in):

% Cover: divide standing LAI by this to get % cover LAI_conv - monthly amount of biomass needed to produce LAI=1.0 (g/m^2).

            trees       shrubs      forbs       grasses
conv_stcr       5.0     2.22        3.0     3.0
lai_conv        500     372     300     300

prod(.)         2500        825.84      900     900

For example, 100 g / m2 of biomass would result in percent cover of 0.04 (trees), 0.121 (shrubs), or 0.111 (forbs, grasses) --> It appears that these values are not ideal and need to be re-estimated for the purposes outlined here.

Using our example from above, if we had conv_strcr * lai_conv = 5000 for shrubs (value is made up so that it goes with my narrative example -- instead of what SOILWAT2 used to have 825.84) and if we had conv_strcr * lai_conv = 55.56 for forbs (instead of what SOILWAT2 used to have 900).

Then the same example as above, with 500 g shrubs and 50 g forbs, we would get something like (details need further discussion):

fCover_tmp[shrubs] = 500 / 5000 = 0.1 fCover_tmp[forbs] = 50 / 55.56 = 0.9 sum(fCover_tmp) = 1 == 1

If the sum is not 1, then we could either normalize to 1 or we could interpret that the rest is bare-ground: Another example with 250 g shrubs and 50 g forbs, would result in fCover_tmp[shrubs] = 0.05 and fCover_tmp[forbs] = 0.9 for a sum(fCover_tmp) = 0.95 < 1

@kpalmqui -- this is a very rough idea that would need further discussion, several decisions, and likely new estimates of these parameters