iLand
standloader.h
Go to the documentation of this file.
1/********************************************************************************************
2** iLand - an individual based forest landscape and disturbance model
3** http://iland-model.org
4** Copyright (C) 2009- Werner Rammer, Rupert Seidl
5**
6** This program is free software: you can redistribute it and/or modify
7** it under the terms of the GNU General Public License as published by
8** the Free Software Foundation, either version 3 of the License, or
9** (at your option) any later version.
10**
11** This program is distributed in the hope that it will be useful,
12** but WITHOUT ANY WARRANTY; without even the implied warranty of
13** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14** GNU General Public License for more details.
15**
16** You should have received a copy of the GNU General Public License
17** along with this program. If not, see <http://www.gnu.org/licenses/>.
18********************************************************************************************/
19
20#ifndef STANDLOADER_H
21#define STANDLOADER_H
22#include <QtCore/QString>
23
24#include "csvfile.h"
25
26class Model;
27class ResourceUnit;
28class RandomCustomPDF;
29class Species;
30class MapGrid;
31class Expression;
32
34{
35public:
36 StandLoader(Model *model): mModel(model), mRandom(0), mCurrentMap(0), mInitHeightGrid(0), mHeightGridResponse(0) {}
39 void setMap(const MapGrid *map) { mCurrentMap = map; }
41 void setInitHeightGrid(const MapGrid *height_grid) { mInitHeightGrid = height_grid; }
42
45 void processInit();
47 void processAfterInit();
48
50 int loadPicusFile(const QString &fileName, ResourceUnit *ru=NULL);
52 int loadiLandFile(const QString &fileName, ResourceUnit *ru=NULL, int stand_id=0);
53
55 int loadSingleTreeList(const QString &content, ResourceUnit*ru = NULL, const QString &fileName="");
57 int loadDistributionList(const QString &content, ResourceUnit *ru = NULL, int stand_id=0, const QString &fileName="");
58 // load regeneration in stands
59 int loadSaplings(const QString &content, int stand_id, const QString &fileName=QString());
60 // load regen in stand but consider also the light conditions on the ground
61 int loadSaplingsLIF(int stand_id, const CSVFile &init, int low_index, int high_index);
62private:
63 struct InitFileItem
64 {
65 Species *species;
66 double count;
67 double dbh_from, dbh_to;
68 double hd;
69 int age;
70 double density;
71 };
73 int loadInitFile(const QString &fileName, const QString &type, int stand_id=0, ResourceUnit *ru=NULL);
74 void executeiLandInit(ResourceUnit *ru);
75 void executeiLandInitStand(int stand_id);
76 void copyTrees();
77 void evaluateDebugTrees();
78 int parseInitFile(const QString &content, const QString &fileName, ResourceUnit *ru=0);
79 Model *mModel;
80 RandomCustomPDF *mRandom;
81 QVector<InitFileItem> mInitItems;
82 QHash<int, QVector<InitFileItem> > mStandInitItems;
83 const MapGrid *mCurrentMap;
84 const MapGrid *mInitHeightGrid;
85 Expression *mHeightGridResponse;
86 int mHeightGridTries;
87};
88
89#endif // STANDLOADER_H
Provides access to table data stored in text files (CSV style).
Definition: csvfile.h:27
An expression engine for mathematical expressions provided as strings.
Definition: expression.h:29
Definition: mapgrid.h:32
Main object of the iLand model composited of various sub models / sub components.
Definition: model.h:90
numbers with a user defined probaility density function.
Definition: random.h:62
ResourceUnit is the spatial unit that encapsulates a forest stand and links to several environmental ...
Definition: resourceunit.h:49
The behavior and general properties of tree species.
Definition: species.h:75
loads (initializes) trees for a "stand" from various sources.
Definition: standloader.h:34
int loadPicusFile(const QString &fileName, ResourceUnit *ru=NULL)
load a single tree file (picus or iland style). return number of trees loaded.
Definition: standloader.cpp:322
int loadDistributionList(const QString &content, ResourceUnit *ru=NULL, int stand_id=0, const QString &fileName="")
worker function to load a file containing rows with dbhclasses
Definition: standloader.cpp:439
~StandLoader()
Definition: standloader.cpp:52
StandLoader(Model *model)
Definition: standloader.h:36
int loadSaplingsLIF(int stand_id, const CSVFile &init, int low_index, int high_index)
Definition: standloader.cpp:950
int loadSingleTreeList(const QString &content, ResourceUnit *ru=NULL, const QString &fileName="")
worker function to load a file containing single trees
Definition: standloader.cpp:335
void setInitHeightGrid(const MapGrid *height_grid)
set a constraining height grid (10m resolution)
Definition: standloader.h:41
void processAfterInit()
this function is called after the init and after initial LIF-calculations.
Definition: standloader.cpp:225
int loadSaplings(const QString &content, int stand_id, const QString &fileName=QString())
a (hacky) way of adding saplings of a certain age to a stand defined by 'stand_id'.
Definition: standloader.cpp:876
void processInit()
main function of stand initialization the function loads - depending on the XML project file - inits ...
Definition: standloader.cpp:85
int loadiLandFile(const QString &fileName, ResourceUnit *ru=NULL, int stand_id=0)
load a tree distribution based on dbh classes. return number of trees loaded.
Definition: standloader.cpp:539
void setMap(const MapGrid *map)
define a stand grid externally
Definition: standloader.h:39