nmfs-ost / ss3-source-code

The source code for Stock Synthesis (SS3).
https://nmfs-ost.github.io/ss3-website/
Creative Commons Zero v1.0 Universal
37 stars 16 forks source link

[Feature]: add output of vulnerable biomass and max_sel for each fleet #499

Closed Rick-Methot-NOAA closed 1 year ago

Rick-Methot-NOAA commented 1 year ago

Describe the solution you would like.

While working with a user regarding SS3 output of vulnerable biomass for fisheries (vuln_bio in Report 22 for Survey CPUE), I realized that the output of selected (vulnerable) biomass is not what users expect for fisheries.

If the index is a survey, then SS3 uses Z to get biomass at a particular time and report it as vuln_bio: tempvec_a = elem_prod(natage(t, p, g), elem_prod(mfexp(-Z_rate(t, p, g) timing), sel_a(y, f, gg))); but if a fishery, then it uses: tempvec_a = elem_prod(natage(t, p, g), elem_prod(Zrate2(p, g), sel_a(y, f, gg))); which if multiplied by F would get the catch where Zrate2 is from the baranov catch equation: Zrate2(p, g) = elem_div((1. - mfexp(-seasdur(s) Z_rate(t, p, g))), Z_rate(t, p, g));

SOLUTION:

Note that it uses middle of season because selectivity and bodywt are referenced to middle of season.
By use of middle of season, it is not equivalent to summary biomass which is calculated at beginning of season.
Also, users should note that selectivity may be < 1.0 for all ages.
Output occurs as 2 columns in CATCH table of report.sso

CATCH report:15

where vuln is mid-season selected bio or numbers; sel is selected total catch; dead is catch without live discards; ret is retained catch

Fleet Fleet_Name Area Yr Seas Time Obs Exp Mult Exp*Mult se F Like vuln_bio sel_bio dead_bio ret_bio vuln_num sel_num dead_num ret_num

- [x] provide report of maximum ASEL2 selectivity.  Occurs immediately after the AGE_SELEX report:32 table.  Note syntax to enable reading by r4ss.

maximum_ASEL2

Fleet fleet_name year seas max 1 1_PS_6485 1950 2 0.422416 2 2_PS_8690 1950 1 0.298186 3 3_PS_FSC_9119 1950 1 0.557861 4 4_PS_FAD_9119 1950 1 0.178007 5 5_BBPS_Ghana 1950 1 0.106498 6 6_BB_South_Dakar 1950 4 0.308055 7 7_BB_North_Dakar_6280 1950 3 0.846796 8 8_BB_North_Dakar_8119 1950 1 0.997709 9 9_BB_North_Azores 1950 3 0.901967 10 10_Japan_LL_N 1950 2 0.86873 11 11_Japan_LL_TRO 1950 1 0.909227 12 12_Japan_LL_S 1950 1 0.914493 13 13_Other_LL_N 1950 1 0.860008 14 14_Other_LL_TRO 1950 1 0.894125 15 15_Other_LL_S 1950 1 0.936165 16 16_CTP_LL_N 1950 1 0.879249


- [x] add improvements to starter.ss_new descriptive text

2 # F_std_reporting_units: 0=skip; 1=exploitation(Bio); 2=exploitation(Num); 3=sum(Apical_F's); 4=true F for range of ages; 5=unweighted avg. F for range of ages

COND 10 15 #_min and max age over which mean F will be calculated with F_reporting=4 or 5

0 # F_std_scaling: 0=no scaling; 1=F/Fspr; 2=F/Fmsy; 3=F/Fbtgt; where F means annual F_std, Fmsy means F_std@msy; values >=11 invoke N multiyr (up to 9!) with 10's digit; >100 invokes log(ratio)



- [ ] augment r4ss to utilize the vuln_bio and maxsel info @iantaylor-NOAA 

### Describe alternatives you have considered

none obvious. 

### Statistical validity, if applicable

NA.  Just output

### Describe if this is needed for a management application

_No response_

### Additional context

_No response_
e-perl-NOAA commented 1 year ago

@Rick-Methot-NOAA, is there anything pertaining to this issue/addition that you think should be added to the documentation? Maybe in the output files section? SS330_User_Manual.pdf

Rick-Methot-NOAA commented 10 months ago

This issue was first raised in #80 so closing that issue also.