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
38 stars 16 forks source link

revise SPR_SERIES in Report.sso to separate the per recruit equilibrium quantities into separate table #607

Closed iantaylor-NOAA closed 3 months ago

iantaylor-NOAA commented 4 months ago

The use of multiple columns in the SPR_SERIES with the same column name ("Bio_all" and "Bio_Smry") with "Actual:" in between can be confusing: https://github.com/nmfs-ost/ss3-source-code/blob/95ed8550ae26208ca4ff2b146a945d028337b2a4/SS_write_report.tpl#L1575-L1576

I think it may be worth appending something to the columns that don't match what's in TIME_SERIES to clarify the difference.

Rick-Methot-NOAA commented 4 months ago

Does r4ss read anything from the "actual" columns in this table? Some columns of the "actual" are redundant with table Time_Series and Exploitation, but the meanage columns are unique here. Also, this is the only table dedicated to reporting annual quantities.

much of what is reported here is stored in this annual array:

  matrix Smry_Table(styr-3,YrMax,1,20+2*gmorph);
  // 1=totbio, 2=smrybio, 3=smrynum, 4=enc_catch, 5=dead_catch, 6=ret_catch, 7=spbio, 8=recruit,
  // 9=equ_totbio, 10=equ_smrybio, 11=equ_SSB_virgin, 12=equ_S1, 13=Gentime, 14=YPR, 15=meanage_spawners, 16=meanage_smrynums, 17=meanage_catch
  // 18, 19, 20  not used
  // 21+cumF-bymorph, maxF-by morph

column headers are:

Yr Era Bio_all Bio_Smry SSBzero SSBfished SSBfished/R SPR SPR_report YPR GenTime Deplete F_report Actual: Bio_all Bio_Smry Num_Smry MnAge_Smry Enc_Catch Dead_Catch Retain_Catch MnAge_Catch SSB Recruits Tot_Exploit More_F(by_Morph):  aveF_1 aveF_2 aveF_3 aveF_4 aveF_5 maxF_1 maxF_2 maxF_3 maxF_4 maxF_5 Enc_Catch_B Dead_Catch_B Retain_Catch_B  Enc_Catch_N Dead_Catch_N Retain_Catch_N sum_Apical_F F=Z-M  M
Rick-Methot-NOAA commented 3 months ago

@iantaylor-NOAA Propose to condense table to just the equilibrium quantities And to add most of "actual" columns to a new table dedicated to reporting annual quantities

iantaylor-NOAA commented 3 months ago

@Rick-Methot-NOAA, sorry, forgot to reply to this yesterday.

The r4ss::SS_output() function reads the whole table but by default R changes the 2nd of the duplicate column names to "Bio_all.1"
and "Bio_Smry.1" so they are unique. I doubt that anyone uses those renamed columns and the values are available in the TIME_SERIES table anyway. The mistake that I saw which alerted me to this involved using the equilibrium value and thinking it was the actual. I think separate tables makes sense unless it would be redundant with TIME_SERIES.

Rick-Methot-NOAA commented 3 months ago

Thanks for feedback. Time_Series is by season and area. Actual values in SPR table are all annual. I can work towards giving all output columns unique, informative headers.

Rick-Methot-NOAA commented 3 months ago

I will stop reporting aveF and maxF in this table because it's interpretation will be ambiguous in a multi-area model. The intended reporting of AveF and maxF can now be done with post-processing of other F output tables.