Hi all,
Here is a slightly more technical question for the group, but I hope it is still useful for the users of size spectrum models 😊
I have been trying to understand the dynamics of the background resource spectrum in ‘mizer’. Here are a few observations and I would appreciate any thoughts on them:
For those who want to go deeper here are the equations from mizer:
rr_pp <- r_pp * w_full^(n - 1) ## this is weight specific background resource growth rate, and w_full is the log size vector of plankton
cc_pp <- kappa * w_full^(-lambda) #this is weight specific background resource carrying capacity, with kappa and lambda explained in the vignette.
The two equations above are in MizerParams-class.R around line 900.
From this the project.R (around line 260) will update the background abundance at each time step using
tmp <- (rr_pp * cc_pp / (rr_pp + m2_background)) ## here m2_background is the mortality on the resource spectrum
n_pp <- tmp - (tmp - n_pp) * exp(-(rr_pp + m2_ background) * dt)
Regards,
Asta
###
Asta Audzijonyte
Research Fellow
Institue for Marine and Antarctic Studies
University of Tasmania
http://www.utas.edu.au/profiles/staff/imas/asta-audzijonyte
University of Tasmania Electronic Communications Policy (December, 2014).
This email is confidential, and is for the intended recipient only. Access, disclosure, copying, distribution, or reliance on any of it by anyone outside the intended recipient organisation is prohibited and may be a criminal offence. Please delete if obtained
in error and email confirmation to the sender. The views expressed in this email are not necessarily the views of the University of Tasmania, unless clearly intended otherwise.
- With the default parameters of lambda at ca 2 and r_pp (or r0) at 10, the resource dynamics is almost insensitive to the mortality imposed. Basically, the resource abundance will be about the same regardless of the whether instantaneous predation mortality on the resource is 0.5, 5, 50 or 500 per unit of time (see the attached plot, where resource spectrum abundance is plotted for these four background mortality values, in black, red, orange and blue respectively)
- If users want the resource to be more “dynamic” it might be a good idea to use much lower r_pp values. Instead of the default 10 it could be set at 1, 0.1 or lower. Again see the plot for r_pp values of 1 and 0.01. Do we know much about what these r_pp values should be?
- The population regeneration rate in mizer vignette is given as r0*w^(p-1) (chapter 3.8), but in the code it is r0*w^(n-1) (MizerParams-class.R around line 900). While in many cases the parameters n and p are identical, this is not always the case. Does the Fenchel 1974 and Savage et al. 2004 calculations of regeneration rate referred to in mizer vignette apply only when n=p? And what does it mean for users who in multi-species models modify n and p, so that they are not identical?
- Given that r_pp (resource regeneration rate) is such an important parameter driving the dynamics of the background spectrum, it might be a good idea to highlight it better in the vignette. At the moment users can define it when setting up the MizerParams() object, but I am not sure this is well explained (or at least it took me a while to work it out). Using this r_pp value mizer will then calculate the weight specific regeneration rate and use that to get resource dynamics at each step (see equations from mizer below). It might be good to show a few examples of how different r_pp assumptions will affect model outputs.
For those who want to go deeper here are the equations from mizer:rr_pp <- r_pp * w_full^(n - 1) ## this is weight specific background resource growth rate, and w_full is the log size vector of planktoncc_pp <- kappa * w_full^(-lambda) #this is weight specific background resource carrying capacity, with kappa and lambda explained in the vignette.The two equations above are in MizerParams-class.R around line 900.From this the project.R (around line 260) will update the background abundance at each time step usingtmp <- (rr_pp * cc_pp / (rr_pp + m2_background)) ## here m2_background is the mortality on the resource spectrumn_pp <- tmp - (tmp - n_pp) * exp(-(rr_pp + m2_ background) * dt)Regards,
Asta###Asta AudzijonyteResearch FellowInstitue for Marine and Antarctic StudiesUniversity of Tasmania
University of Tasmania Electronic Communications Policy (December, 2014).
This email is confidential, and is for the intended recipient only. Access, disclosure, copying, distribution, or reliance on any of it by anyone outside the intended recipient organisation is prohibited and may be a criminal offence. Please delete if obtained in error and email confirmation to the sender. The views expressed in this email are not necessarily the views of the University of Tasmania, unless clearly intended otherwise.
--
You received this message because you are subscribed to the Google Groups "Size spectrum models" group.
To unsubscribe from this group and stop receiving emails from it, send an email to size-spectrum-mo...@googlegroups.com.
To post to this group, send email to size-spect...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/size-spectrum-models/MEXPR01MB2151D4999907A2DD7EACC9C5C0CC0%40MEXPR01MB2151.ausprd01.prod.outlook.com.
For more options, visit https://groups.google.com/d/optout.
<resource_dynamics_mizer.pdf>
Hi Ken,
Thanks for the explanations. I am not sure what the default value of r_pp should be, even 4 does not seem to be very responsive to 100 fold mortality changes, but I in some pelagic systems this might be expected.
The main thing is for users to be aware of the effect and make sure they include all parameter values in their model descriptions 😊
Regards
Asta
##
Hi Asta,
Thanks for raising this issue! Some answers and comments:
- With the default parameters of lambda at ca 2 and r_pp (or r0) at 10, the resource dynamics is almost insensitive to the mortality imposed. Basically, the resource abundance will be about the same regardless of the whether instantaneous predation mortality on the resource is 0.5, 5, 50 or 500 per unit of time (see the attached plot, where resource spectrum abundance is plotted for these four background mortality values, in black, red, orange and blue respectively)
- If users want the resource to be more “dynamic” it might be a good idea to use much lower r_pp values. Instead of the default 10 it could be set at 1, 0.1 or lower. Again see the plot for r_pp values of 1 and 0.01. Do we know much about what these r_pp values should be?
I agree; the value of r_pp is too high. I’ve been using r_pp = 4 g^0.25/yr. That was taken from the paper by Savage et al (2004). With that value, there is indeed depletion of the resource spectrum.
- The population regeneration rate in mizer vignette is given as r0*w^(p-1) (chapter 3.8), but in the code it is r0*w^(n-1) (MizerParams-class.R around line 900). While in many cases the parameters n and p are identical, this is not always the case. Does the Fenchel 1974 and Savage et al. 2004 calculations of regeneration rate referred to in mizer vignette apply only when n=p? And what does it mean for users who in multi-species models modify n and p, so that they are not identical?
I suggest to fix the vignette such that it states r0*w^(n-1)
Fenchel and Savage et al both give metabolic arguments where they assume that all biological mass rates scales with exponent 0.75. Therefore, they implicitly set n=p. This is also the assumption I have been using, because n != p leads to some additional complications (an absolute maximum size of fish), which was explored in Andersen, K.H., Beyer, J.E., Pedersen, M., Andersen, N.G., Gislason, H., 2008. Life-history constraints on the success of the many small eggs reproductive strategy. Theoretical Population Biology 73, 490–497.
The motivation to use n != p is the observation that for fish the standard metabolism often scales with a exponent larger than 0.75, around 0.85.
- Given that r_pp (resource regeneration rate) is such an important parameter driving the dynamics of the background spectrum, it might be a good idea to highlight it better in the vignette. At the moment users can define it when setting up the MizerParams() object, but I am not sure this is well explained (or at least it took me a while to work it out). Using this r_pp value mizer will then calculate the weight specific regeneration rate and use that to get resource dynamics at each step (see equations from mizer below). It might be good to show a few examples of how different r_pp assumptions will affect model outputs.
Good idea.
Should one also change the default value of r_pp (e.g. to 4)? If we want to go down that route, we should also consider changing thew default of the reproductive efficiency.
Ken
I would be interested to know what code you are using for these experiments, Asta. I have been trying to setup a version of the North Sea model without Rmax, and am curious about how the stability of the coexistent steady state differs between the old and new models. So I am interested in these observations about the role of the resource replenishment rate.
Best wishes,
Richard
Hi Richard,
The code I have used for the resource dynamics analyses just comes from mizer itself. I did not run any simulations, but just plotted resource values for various levels of r_pp, n and mortality, using w_full, kappa and lambda from my MizerParams object
rr_pp <- r_pp * w_full^(n - 1) ## this is weight specific background resource growth rate, and w_full is the log size vector of plankton
cc_pp <- kappa * w_full^(-lambda) #this is weight specific background resource carrying capacity, with kappa and lambda explained in the vignette.
The two equations above are in MizerParams-class.R around line 900.
From this the project.R (around line 260) will update the background abundance at each time step using
tmp <- (rr_pp * cc_pp / (rr_pp + m2_background)) ## here m2_background is the mortality on the resource spectrum
n_pp <- tmp - (tmp - n_pp) * exp(-(rr_pp + m2_ background) * dt)
Asta
##
--
You received this message because you are subscribed to the Google Groups "Size spectrum models" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
size-spectrum-mo...@googlegroups.com.
To post to this group, send an email to
size-spect...@googlegroups.com.
To view this discussion on the web, visit
https://groups.google.com/d/msgid/size-spectrum-models/e05f7da7-c3d4-416e...@googlegroups.com.
For more options, visit
https://groups.google.com/d/optout.