traitecoevo / plant

Trait-Driven Models of Ecology and Evolution :evergreen_tree:
https://traitecoevo.github.io/plant
53 stars 20 forks source link

Varying HMAT in strategies for lcp function #343

Open Becca-90 opened 2 years ago

Becca-90 commented 2 years ago

If I create 3 strategies varying a particular trait, e.g. LMA, we can see that the lcp varies depending on the values, however there is no change when different HMAT values are specified in the strategies.

f <- function(x, indv) {
  env <- FF16_fixed_environment(x)
  indv$compute_rates(env)
  indv$rate("height")
}

x <- c(lcp, openness[openness > lcp])

params <- scm_base_parameters("FF16")

## 1. vary LMA and plot lcp:
s1 <- strategy(trait_matrix(0.07, "lma"), params)
s2 <- strategy(trait_matrix(0.125, "lma"), params)
s3 <- strategy(trait_matrix(0.24, "lma"), params)

indv1 <- FF16_Individual(s1)
indv2 <- FF16_Individual(s2)
indv3 <- FF16_Individual(s3)

plot(x, sapply(x, f, indv1), type="l", xlim=c(0, 1),
     las=1, xlab="Canopy openness", ylab="Height growth rate (m / yr)")
lines(x, sapply(x, f, indv2), type="l", xlim=c(0, 1),
     las=1, xlab="Canopy openness", ylab="Height growth rate (m / yr)")
lines(x, sapply(x, f, indv3), type="l", xlim=c(0, 1),
     las=1, xlab="Canopy openness", ylab="Height growth rate (m / yr)")

## 2. vary HMAT and plot LCP
h10 <- strategy(trait_matrix(10, "hmat"), params)
h25 <- strategy(trait_matrix(25, "hmat"), params)
h40 <- strategy(trait_matrix(40, "hmat"), params)

indv_h1 <- FF16_Individual(h10)
indv_h2 <- FF16_Individual(h25)
indv_h3 <- FF16_Individual(h40)

plot(x, sapply(x, f, indv_h1), type="l", xlim=c(0, 1),
     las=1, xlab="Canopy openness", ylab="Height growth rate (m / yr)")
lines(x, sapply(x, f, indv_h2), type="l", xlim=c(0, 1),
     las=1, xlab="Canopy openness", ylab="Height growth rate (m / yr)")
lines(x, sapply(x, f, indv_h3), type="l", xlim=c(0, 1),
     las=1, xlab="Canopy openness", ylab="Height growth rate (m / yr)")
a-orn commented 2 years ago

Hey @Becca-90 - I had to think about this for a minute.

hmat is the size at which a tree starts to allocate mass toward reproduction instead of growth. I'm moderately sure that it wouldn't change anything about it's photosynthetic capacity. What might be different is the mass allocation (and therefore mass maintenance costs) at different ages.

In your example, I think you're comparing the LCP of individuals all at the same age and the same height. If you grow these trees to age (e.g. 10 or 50yrs) you'd expect them to achieve different sizes, and maybe then would see different LCP?

PS. feel free to share the plots with your code as well! You can paste images from the clipboard and Github will insert them for you.

dfalster commented 2 years ago

@a-orn is correct - Hmat shouldn't affect LCP, as it doesn't affect turnover. LCP does change with height of the plant, but not height at maturation per se.

Becca-90 commented 2 years ago

Ahh I see...I was thinking it would affect the height growth rate...but we're actually thinking about relative growth rate right? That makes sense now I think...so as you say I would need to grow 2 plants to different ages (maybe where one has reached HMAT and one not) , or different heights(?) and compare LCP...

So... I could grow 2 individuals of say HMAT = 10m, one to a younger age/pre-HMAT height, one to a greater age/post-HMAT height, and compare LCP, and then maybe see how this difference compares with the difference between another 2 individuals of e.g. HMAT = 25m at pre- and post- HMAT height...? Does that make sense?

aornugent commented 2 years ago

I could grow 2 individuals of say HMAT = 10m, one to a younger age/pre-HMAT height, one to a greater age/post-HMAT height, and compare LCP, and then maybe see how this difference compares with the difference between another 2 individuals of e.g. HMAT = 25m at pre- and post- HMAT height...?

Yep! That's how I imagined it. You might consider differences in hmat to be differences in species, and then you grow individuals to the same age for an apples-to-apples comparison.