osmose-model / osmose-web-api

Web service that generates Osmose configuration files from data sources like Fishbase and SeaLifeBase. Used by https://www.config.osmose-model.org .
MIT License
2 stars 2 forks source link

use median value when multiple parameters are available in Fishbase/SealifeBase #174

Closed jhpoelen closed 6 years ago

jhpoelen commented 6 years ago

from @agruss2 email communication -

● When the OSMOSE API employs the data stored in the data archives to derive values for OSMOSE parameters, there can actually be several values for a given parameters. For example, there are many different values available for red snapper’s Linf, as we already observed here a few days ago: https://www.fishbase.ca/popdyn/PopGrowthList.php?ID=1423&GenusName=Lutjanus&SpeciesName=campechanus&fc=323

However, the OSMOSE API picks the first of these many values to produce an OSMOSE parameter estimate (63 cm in the case of red snapper’s Linf), instead of calculating a median value from the many values provided in the data archives (the median value would be around 94 cm in the case of red snapper’s Linf).

jhpoelen commented 6 years ago

@agruss2 Please provide an exhaustive list of parameters for which you'd like to use the median values if multiple values are present. Also, please confirm that calculated values (e.g., "species.vonbertalanffy.threshold.age.sp") will use the median values as inputs.

agruss2 commented 6 years ago

@jhpoelen The median values should be calculated from the FishBase/SeaLifeBase (FB/SLB) parameters before the OSMOSE API makes any calculation. Thus, the exhaustive list of parameters for which I would like a median value to be calculated if multiple values are present are FB/SLB parameters, but changes need to be made in several different Java classes because a number of FB/SLB parameters are used to derive several different OSMOSE parameters. Here is the exhaustive list of parameters: (1) LongevityWild (FB/SLB table: species), used to calculate longevity for OSMOSE. (2) K (FB/SLB table: popgrowth), used to calculate instantaneous growth rate at small size for OSMOSE. (3) Loo (FB/SLB table: popgrowth), used to calculate Linf for OSMOSE. (4) to (FB/SLB table: popgrowth), used to calculate the theoretical age of zero length for OSMOSE. (5) a (FB/SLB table: poplw), used to calculate the constant of proportionality of the allometric length-weight relationship for OSMOSE. (6) b (FB/SLB table: poplw), used to calculate the exponent of the allometric length-weight relationship for OSMOSE. (7) Lm (FB/SLB table: maturity), used to calculate body size at sexual maturity for OSMOSE. (8) tm (FB/SLB table: maturity), used to calculate age at sexual maturity for OSMOSE. (9) LengthMin (FB/SLB table: poplw), to, Loo, and K (FB/SLB table: popgrowth), and LongevityWild (FB/SLB table: species), used to calculate age at sexual maturity for OSMOSE. (10) Troph (FB/SLB table: estimate), used to calculate trophic level for OSMOSE. (11) LengthMin (FB/SLB table: popll), used to calculate minimum body size for OSMOSE. (12) LengthMax (FB/SLB table: popll), used to calculate maximum body size for OSMOSE. (13) mortality (FB/SLB table: popqb), used to calculate diverse natural mortality rate for OSMOSE. (14) Lm (FB/SLB table: maturity), used to calculate the body size threshold that separates the predator/prey size ratios for juvenile individuals from those for adult individuals for OSMOSE. (15) tm (FB/SLB table: maturity), used to calculate the age threshold that separates the accessibility coefficients of the juvenile and adult stages of focal functional groups for OSMOSE.

Please let me know if that makes sense and/or if you need anything else from me. Many thanks !!

jhpoelen commented 6 years ago

I deployed a first pass at implementing the desired new functionality to calculate median values for specific provided parameters. Please confirm that the functionality has been implemented as desired.

agruss2 commented 6 years ago

@jhpoelen I just ran some tests and can confirm that the present issue has been fully solved. Many thanks !! I can now close this issue.