Indian Ocean Skipjack
tracker.hpp
1 #pragma once
2 
3 #include "model.hpp"
4 
5 namespace IOSKJ {
6 
11 struct Tracker {
12 
13  std::ofstream file;
14 
15  Tracker(std::string path){
16  file.open(path);
17  file
18  <<"replicate\t"
19  <<"procedure\t"
20  <<"year\t"
21  <<"quarter\t"
22 
23  <<"recruits_determ_we\t"
24  <<"recruits_determ_ma\t"
25  <<"recruits_determ_ea\t"
26 
27  <<"recruits_deviation\t"
28 
29  <<"recruits_we\t"
30  <<"recruits_ma\t"
31  <<"recruits_ea\t"
32 
33  <<"biomass_status\t"
34 
35  <<"biomass_spawners_we\t"
36  <<"biomass_spawners_ma\t"
37  <<"biomass_spawners_ea\t"
38 
39  <<"biomass_spawning_we\t"
40  <<"biomass_spawning_ma\t"
41  <<"biomass_spawning_ea\t"
42 
43  <<"biomass_vulnerable_we_ps\t"
44  <<"biomass_vulnerable_ma_pl\t"
45  <<"biomass_vulnerable_ea_gn\t"
46 
47  <<"catches_total\t"
48  <<"catches_we_ps\t"
49  <<"catches_ma_pl\t"
50  <<"catches_ea_gn\t"
51 
52  <<"effort_total\t"
53  <<"effort_we_ps\t"
54  <<"effort_ma_pl\t"
55  <<"effort_ea_gn\t"
56 
57  <<"exp_rate_we_ps\t"
58  <<"exp_rate_ma_pl\t"
59  <<"exp_rate_ea_gn\t"
60  <<std::endl;
61  }
62 
63  void get(int replicate, int procedure, int time, const Model& model){
64  uint year = IOSKJ::year(time);
65  uint quarter = IOSKJ::quarter(time);
66  file
67  <<replicate<<"\t"
68  <<procedure<<"\t"
69  <<year<<"\t"
70  <<quarter<<"\t"
71 
72  <<model.recruits_determ(WE)<<"\t"
73  <<model.recruits_determ(MA)<<"\t"
74  <<model.recruits_determ(EA)<<"\t"
75 
76  <<model.recruits_deviation<<"\t"
77 
78  <<model.recruits(WE)<<"\t"
79  <<model.recruits(MA)<<"\t"
80  <<model.recruits(EA)<<"\t"
81 
82  <<model.biomass_status()<<"\t"
83 
84  <<model.biomass_spawners(WE)<<"\t"
85  <<model.biomass_spawners(MA)<<"\t"
86  <<model.biomass_spawners(EA)<<"\t"
87 
88  <<model.biomass_spawning(WE,quarter)<<"\t"
89  <<model.biomass_spawning(MA,quarter)<<"\t"
90  <<model.biomass_spawning(EA,quarter)<<"\t"
91 
92  <<model.biomass_vulnerable(WE,PS)<<"\t"
93  <<model.biomass_vulnerable(MA,PL)<<"\t"
94  <<model.biomass_vulnerable(EA,GN)<<"\t"
95 
96  <<model.catches_taken(sum)<<"\t"
97  <<model.catches_taken(WE,PS)<<"\t"
98  <<model.catches_taken(MA,PL)<<"\t"
99  <<model.catches_taken(EA,GN)<<"\t"
100 
101  <<model.effort(sum)<<"\t"
102  <<model.effort(WE,PS)<<"\t"
103  <<model.effort(MA,PL)<<"\t"
104  <<model.effort(EA,GN)<<"\t"
105 
106  <<model.exploitation_rate(WE,PS)<<"\t"
107  <<model.exploitation_rate(MA,PL)<<"\t"
108  <<model.exploitation_rate(EA,GN)<<"\t"
109 
110  <<std::endl;
111  }
112 };
113 
114 } // namespace IOSKJ
Definition: data.hpp:6
Definition: model.hpp:13
Definition: tracker.hpp:11