gadget-framework / gadget3

TMB-based gadget implemtation
GNU General Public License v2.0
8 stars 6 forks source link

Projections: Catch data #171

Open lentinj opened 1 month ago

lentinj commented 1 month ago
lentinj commented 2 weeks ago

For "forecasts ahead 2 years", we could just run ourselves, but project_years is set to 2 more years. Obviously very wasteful though. OTOH, if we could have a "restartable model", feeding in the current environment as the state, we could carry on from where we left off.

lentinj commented 2 weeks ago

@bthe I've been looking at g3a_predate_catchability_hockeyfleet, and trying to pick apart what it does that's different to g3a_predate_catchability_hcr. They're not equivalent, but clearly trying to solve the same problem.

Reducing down g3a_predate_catchability_hockeyfleet to pseudo-code, it's:

biomass < sum(stock__num * stock__wgt * stock__suit)
# NB: The hcr/catchability split is mostly to make the comparison below work
hcr <- hr * pmin(sum(biomass)/btrigger, 1) * stock_ss(stock__predby_predstock)
catchability <- hcr * E * cur_step_size

Do you remember the history here? What differences in the above are critical?

EDIT: I'm not sure how much either of these have been used. It could well be - trigger vs / trigger is a bug more than anything else.

bthe commented 2 weeks ago

The idea behind g3a_predate_catchability_hcr was to mimic gadget2's prognosis likelihood functionality. But I don't think I ever tested this function properly and I'm not entirely convinced about the code either.

The main idea behind the HCR function was to:

This is different from the hockeyfleet as there you are apply a constant effort to the catch period, not total catch.

lentinj commented 1 week ago

Okay, the main thing confusing me at this point is hockeyfleet is quota_f * E * cur_step_size * stock_ss(stock__predby_predstock) which would apply the quota to the previous step's catch.

I think what this really wants to be is quota_f * E * cur_step_size * stock_ss(predprey__suit), and then is identical to linearfleet/effortfleet, but also applying the quota.