DISPLACE  1.0
A spatial model of fisheries to help sustainable fishing and maritime spatial planning
fishfarmsstats.h
Go to the documentation of this file.
1 #ifndef FISHFARMSSTATS_H
2 #define FISHFARMSSTATS_H
3 
4 
5 #include <QVector>
6 #include <mutex>
7 
9 {
10 public:
11  struct StatData {
12  double meanw = 0.0;
13  double fishharvestkg = 0.0;
14  double eggsharvestkg = 0.0;
15  double annualprofit = 0.0;
16  double netdischargeN = 0.0;
17  double netdischargeP = 0.0;
18  double cumulnetdischargeN = 0.0;
19  double cumulnetdischargeP = 0.0;
20 
21  StatData() {}
22  void clear() {
23  meanw = 0.0;
24  fishharvestkg = 0.0;
25  eggsharvestkg = 0.0;
26  annualprofit = 0.0;
27  netdischargeN = 0.0;
28  netdischargeN = 0.0;
29  cumulnetdischargeP = 0.0;
30  cumulnetdischargeP = 0.0;
31  }
32  };
33 
34 private:
35  bool mDirty = false;
36  QVector<QVector<StatData>> mDataPerFarmTypeAndFarmId;
37  mutable std::mutex mMutex;
38 
39  StatData &get(int farmid, int farmtype);
40  const StatData &get(int farmid, int farmtype) const;
41 
42 public:
44  ~FishfarmsStats() noexcept = default;
45 
48 
49  FishfarmsStats &operator = (const FishfarmsStats &b);
50  FishfarmsStats &operator = (FishfarmsStats &&b);
51 
52  bool dirty() const { return mDirty; }
53  void setDirty(bool dirty = true) { mDirty = dirty; }
54  void clear();
55 
56  void collectMeanWeightKg(int step, int farmid, int farmtypeid, double meanw_kg);
57  void collectFishHarvestedKg (int step, int farmid, int farmtypeid, double fish_harvested_kg);
58  void collectEggsHarvestedKg(int step, int farmid, int farmtypeid, double eggs_harvested_kg);
59  void collectFishfarmAnnualProfit(int step, int farmid, int farmtypeid, double fishfarm_annual_profit);
60  void collectNetDischargeN(int step, int farmid, int farmtypeid, double net_discharge_N);
61  void collectNetDischargeP(int step, int farmid, int farmtypeid, double net_discharge_P);
62  void collectCumulNetDischargeN(int step, int farmid, int farmtypeid, double cumul_net_discharge_N);
63  void collectCumulNetDischargeP(int step, int farmid, int farmtypeid, double cumul_net_discharge_P);
64 
65  double meanwForFishfarmAndFarmGroup(int farmid, int farmtypeid) const;
66  double fishharvestedkgForFishfarmAndFarmGroup(int farmid, int farmtypeid) const;
67  double eggsharvestedkgForFishfarmAndFarmGroup(int farmid, int farmtypeid) const;
68  double annualprofitForFishfarmAndFarmGroup(int farmid, int farmtypeid) const;
69  double netdischargeNForFishfarmAndFarmGroup(int farmid, int farmtypeid) const;
70  double netdischargePForFishfarmAndFarmGroup(int farmid, int farmtypeid) const;
71  double cumulnetdischargeNForFishfarmAndFarmGroup(int farmid, int farmtypeid) const;
72  double cumulnetdischargePForFishfarmAndFarmGroup(int farmid, int farmtypeid) const;
73 
75 };
76 
77 
78 #endif // FISHFARMSSTATS_H
void clear()
Definition: fishfarmsstats.cpp:81
void collectCumulNetDischargeP(int step, int farmid, int farmtypeid, double cumul_net_discharge_P)
Definition: fishfarmsstats.cpp:149
void collectMeanWeightKg(int step, int farmid, int farmtypeid, double meanw_kg)
Definition: fishfarmsstats.cpp:93
double fishharvestedkgForFishfarmAndFarmGroup(int farmid, int farmtypeid) const
Definition: fishfarmsstats.cpp:163
double eggsharvestkg
Definition: fishfarmsstats.h:14
double fishharvestkg
Definition: fishfarmsstats.h:13
double netdischargeP
Definition: fishfarmsstats.h:17
FishfarmsStats()
Definition: fishfarmsstats.cpp:7
void collectFishfarmAnnualProfit(int step, int farmid, int farmtypeid, double fishfarm_annual_profit)
Definition: fishfarmsstats.cpp:117
double cumulnetdischargePForFishfarmAndFarmGroup(int farmid, int farmtypeid) const
Definition: fishfarmsstats.cpp:193
double cumulnetdischargeP
Definition: fishfarmsstats.h:19
void clear()
Definition: fishfarmsstats.h:22
bool dirty() const
Definition: fishfarmsstats.h:52
Definition: fishfarmsstats.h:11
double netdischargePForFishfarmAndFarmGroup(int farmid, int farmtypeid) const
Definition: fishfarmsstats.cpp:183
void collectCumulNetDischargeN(int step, int farmid, int farmtypeid, double cumul_net_discharge_N)
Definition: fishfarmsstats.cpp:141
void collectEggsHarvestedKg(int step, int farmid, int farmtypeid, double eggs_harvested_kg)
Definition: fishfarmsstats.cpp:109
void collectNetDischargeP(int step, int farmid, int farmtypeid, double net_discharge_P)
Definition: fishfarmsstats.cpp:133
double eggsharvestedkgForFishfarmAndFarmGroup(int farmid, int farmtypeid) const
Definition: fishfarmsstats.cpp:168
double cumulnetdischargeN
Definition: fishfarmsstats.h:18
double annualprofitForFishfarmAndFarmGroup(int farmid, int farmtypeid) const
Definition: fishfarmsstats.cpp:173
double cumulnetdischargeNForFishfarmAndFarmGroup(int farmid, int farmtypeid) const
Definition: fishfarmsstats.cpp:188
Definition: fishfarmsstats.h:8
void collectFishHarvestedKg(int step, int farmid, int farmtypeid, double fish_harvested_kg)
Definition: fishfarmsstats.cpp:101
double annualprofit
Definition: fishfarmsstats.h:15
double meanwForFishfarmAndFarmGroup(int farmid, int farmtypeid) const
Definition: fishfarmsstats.cpp:158
static const FishfarmsStats::StatData NoData
Definition: fishfarmsstats.h:74
double netdischargeNForFishfarmAndFarmGroup(int farmid, int farmtypeid) const
Definition: fishfarmsstats.cpp:178
void setDirty(bool dirty=true)
Definition: fishfarmsstats.h:53
StatData()
Definition: fishfarmsstats.h:21
~FishfarmsStats() noexcept=default
double meanw
Definition: fishfarmsstats.h:12
void collectNetDischargeN(int step, int farmid, int farmtypeid, double net_discharge_N)
Definition: fishfarmsstats.cpp:125
double netdischargeN
Definition: fishfarmsstats.h:16