In addition to the selectivity curve which, when combined with the size distribution of the species, determines the size distribution of the catches, there should also be a selectivity curve that models which of the caught fish are selected to be landed. The size distribution of the landed catch would then be obtained as the product of the size distribution of the catch with this additional landings selectivity curve. I propose that this curve should simply be a sigmoidal curve, parametrised by new gear parameters retained_l50 and retained_l25. These new parameters will be used by getYield() but will be irrelevant for the calculation of the fishing mortality.
We will want to extend tuneParams() to allow tuning of the new gear params landings_l50 and landings_l25.
[x] Add function plotCatchVsSize() that is like plotYieldVsSize() but takes a dataframe with both landings and discards and plots them individually as well as their sum and similarly plots three model curves, one for discards, one for landings and one for total catch.
[ ] In getYieldGear() check if there is a gear parameter retained_l50. If so, set default for retained_l25 if necessary, calculate the landings sigmoid that gives the proportion of the catch that is landed and multiply the current yield by this function before returning.
[ ] Add getDiscardsGear() and getDiscards() functions.
[ ] Add an include_discards = FALSE argument to plotYield(). If called with include_discards = TRUE, add an extra curve for the discards.
[ ] In plotYieldVsSpecies() change the calculation of yield_model to take the landings ogive into account.
[ ] In the documentation for gear_params() mention the new optional retained_l50 and retained_l25 parameters.
[ ] In catchTab() use plotCatchVsSize() instead of plotYieldVsSize().
[ ] In catchTab() change calculation of output$yield_total.
[ ] In fishingControl.R add controls for retained_l50 and retained_l25.
[ ] Search for any use of getFMort() that might be used to implement a yield calculation bypassing getYield(). If found, this needs to be changed.
Once everything works, this should probably go into its own extension "mizerDiscards".
In addition to the selectivity curve which, when combined with the size distribution of the species, determines the size distribution of the catches, there should also be a selectivity curve that models which of the caught fish are selected to be landed. The size distribution of the landed catch would then be obtained as the product of the size distribution of the catch with this additional landings selectivity curve. I propose that this curve should simply be a sigmoidal curve, parametrised by new gear parameters
retained_l50
andretained_l25
. These new parameters will be used bygetYield()
but will be irrelevant for the calculation of the fishing mortality.We will want to extend
tuneParams()
to allow tuning of the new gear paramslandings_l50
andlandings_l25
.plotCatchVsSize()
that is likeplotYieldVsSize()
but takes a dataframe with both landings and discards and plots them individually as well as their sum and similarly plots three model curves, one for discards, one for landings and one for total catch.retained_l50
. If so, set default forretained_l25
if necessary, calculate the landings sigmoid that gives the proportion of the catch that is landed and multiply the current yield by this function before returning.plotYieldVsSpecies()
change the calculation ofyield_model
to take the landings ogive into account.gear_params()
mention the new optionalretained_l50
andretained_l25
parameters.catchTab()
useplotCatchVsSize()
instead ofplotYieldVsSize()
.catchTab()
change calculation ofoutput$yield_total
.fishingControl.R
add controls forretained_l50
andretained_l25
.getFMort()
that might be used to implement a yield calculation bypassinggetYield()
. If found, this needs to be changed.Once everything works, this should probably go into its own extension "mizerDiscards".