Rev 451 | Rev 454 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1 | |||
187 | iland | 2 | #ifndef RESOURCEUNITSPECIES_H |
3 | #define RESOURCEUNITSPECIES_H |
||
115 | Werner | 4 | #include "production3pg.h" |
180 | werner | 5 | #include "standstatistics.h" |
193 | werner | 6 | #include "speciesresponse.h" |
440 | werner | 7 | #include "establishment.h" |
450 | werner | 8 | #include "sapling.h" |
453 | werner | 9 | #include "grid.h" |
111 | Werner | 10 | class Species; |
187 | iland | 11 | class ResourceUnit; |
111 | Werner | 12 | |
187 | iland | 13 | class ResourceUnitSpecies |
111 | Werner | 14 | { |
15 | public: |
||
367 | werner | 16 | ResourceUnitSpecies() : mLAIfactor(0.), mSpecies(0), mRU(0) {} |
234 | werner | 17 | void setup(Species *species, ResourceUnit *ru); |
115 | Werner | 18 | |
449 | werner | 19 | // access |
209 | werner | 20 | const SpeciesResponse *speciesResponse() const { return &mResponse; } |
208 | werner | 21 | const Species *species() const { return mSpecies; } ///< return pointer to species |
22 | const ResourceUnit *ru() const { return mRU; } ///< return pointer to resource unit |
||
228 | werner | 23 | const Production3PG &prod3PG() const { return m3PG; } ///< the 3pg production model of this speies x resourceunit |
208 | werner | 24 | StandStatistics &statistics() { return mStatistics; } ///< statistics of this species on the resourceunit |
278 | werner | 25 | StandStatistics &statisticsDead() { return mStatisticsDead; } ///< statistics of died trees |
26 | StandStatistics &statisticsMgmt() { return mStatisticsMgmt; } ///< statistics of removed trees |
||
262 | werner | 27 | const StandStatistics &constStatistics() const { return mStatistics; } ///< const accessor |
28 | const StandStatistics &constStatisticsDead() const { return mStatisticsDead; } ///< const accessor |
||
278 | werner | 29 | const StandStatistics &constStatisticsMgmt() const { return mStatisticsMgmt; } ///< const accessor |
30 | |||
449 | werner | 31 | // actions |
277 | werner | 32 | void updateGWL(); |
33 | double removedVolume() const { return mRemovedGrowth; } ///< sum of volume with was remvoved because of death/management (m3) |
||
367 | werner | 34 | double LAIfactor() const { return mLAIfactor; } ///< relative fraction of LAI of this species (0..1) |
370 | werner | 35 | void setLAIfactor(const double newLAIfraction) { mLAIfactor=newLAIfraction; if (mLAIfactor<0 || mLAIfactor>1.00001) qDebug() << "invalid LAIfactor"<<mLAIfactor; } |
376 | werner | 36 | // properties |
37 | double leafArea() const; ///< total leaf area of the species on the RU (m2). |
||
115 | Werner | 38 | // action |
440 | werner | 39 | void calculate(const bool fromEstablishment=false); ///< calculate response for species, calculate actual 3PG production |
40 | void calclulateEstablishment(); ///< perform establishment calculations |
||
450 | werner | 41 | void calclulateSaplingGrowth(); ///< growth of saplings |
451 | werner | 42 | void addSapling(const QPoint position) { mSapling.addSapling(position); } |
453 | werner | 43 | // visualization/graphical output |
44 | void visualGrid(Grid<float> &grid) const; |
||
115 | Werner | 45 | |
111 | Werner | 46 | private: |
376 | werner | 47 | double mLAIfactor; ///< relative amount of this species' LAI on this resource unit (0..1). Is calculated once a year. |
277 | werner | 48 | double mRemovedGrowth; ///< m3 volume of trees removed/managed (to calculate GWL) |
262 | werner | 49 | StandStatistics mStatistics; ///< statistics of a species on this resource unit |
50 | StandStatistics mStatisticsDead; ///< statistics of died trees (this year) of a species on this resource unit |
||
278 | werner | 51 | StandStatistics mStatisticsMgmt; ///< statistics of removed trees (this year) of a species on this resource unit |
234 | werner | 52 | Production3PG m3PG; ///< NPP prodution unit of this species |
53 | SpeciesResponse mResponse; ///< calculation and storage of species specific respones on this resource unit |
||
440 | werner | 54 | Establishment mEstablishment; ///< establishment for seedlings and sapling growth |
450 | werner | 55 | Sapling mSapling; ///< saplings storage/growth |
234 | werner | 56 | Species *mSpecies; ///< speices |
57 | ResourceUnit *mRU; ///< resource unit |
||
438 | werner | 58 | int mLastYear; |
111 | Werner | 59 | }; |
60 | |||
61 | #endif // RESSOURCEUNITSPECIES_H |