44 bool valid()
const {
return mValid; }
47 double kbdi()
const {
return mKBDI; }
48 double kbdiRef()
const {
return mKBDIref; }
72 void enter(
const int this_fire_id) {
81 void calculate(
const int this_fire_id,
int current_year) {
95 void clear() {
fire_id=-1; enter(0);}
102 double mRefAnnualPrecipitation;
103 double mFireReturnInterval;
104 double mAverageFireSize;
107 double mBaseIgnitionProb;
108 double mFireExtinctionProb;
125 const QVector<LayeredGridBase::LayerElement> &
names();
127 QVector<LayeredGridBase::LayerElement> mNames;
165 double ignition(
bool only_ignite =
false);
167 void spread(
const QPoint &start_point,
const bool prescribed =
false);
172 double fireX()
const {
return fireStats.startpoint.x(); }
173 double fireY()
const {
return fireStats.startpoint.y(); }
175 double prescribedIgnition(
const double x_m,
const double y_m,
const double firesize,
const double windspeed,
const double winddirection);
178 double burnInIgnition(
const double x_m,
const double y_m,
const double length,
double max_fire_size,
bool simulate=
false);
182 double calculateFireSize(
const FireRUData *data);
185 void probabilisticSpread(
const QPoint &start_point, QRect burn_in=QRect(),
int burn_in_cells=0);
188 void calculateSpreadProbability(
const FireRUData &fire_data,
const double height,
const float *pixel_from,
float *pixel_to,
const int direction);
191 double calcSlopeFactor(
const double slope)
const;
194 double calcWindFactor(
const double direction)
const;
197 bool burnPixel(
const QPoint &pos,
FireRUData &ru_data);
203 double calcCombustibleFuel(
const FireRUData &ru_data,
double &rMoss_kg_ha,
double &rForestFloor_kg_ha,
double &rDWD_kg_ha);
206 void setupBorderGrid();
210 double mWindSpeedMin;
211 double mWindSpeedMax;
212 double mWindDirection;
213 double mCurrentWindSpeed;
214 double mCurrentWindDirection;
215 double mPrescribedFiresize;
222 double mCrownKillkCK1;
223 double mCrownKillkCK2;
224 double mCrownKillDbh;
228 double mBurnSoilBiomass;
229 double mBurnStemFraction;
230 double mBurnBranchFraction;
231 double mBurnFoliageFraction;
233 bool mOnlyFireSimulation;
236 QString mAfterFireEvent;
An expression engine for mathematical expressions provided as strings.
Definition: expression.h:29
Helper class manage and visualize data layers related to fire.
Definition: firemodule.h:121
double value(const FireRUData &data, const int index) const
Definition: firemodule.cpp:78
void setData(const Grid< FireRUData > &grid, FireModule *module)
Definition: firemodule.h:123
const QVector< LayeredGridBase::LayerElement > & names()
list of stored layers
Definition: firemodule.cpp:97
FireModule is the main class of the fire sub module.
Definition: firemodule.h:141
double fire_psme_total
psme (doug fir) on burning pixels (m2 basal area)
Definition: firemodule.h:253
void yearBegin()
called yearly from the plugin to perform some cleanup.
Definition: firemodule.cpp:209
int fireId() const
return the ID of the last fire event
Definition: firemodule.h:171
double fireY() const
coordinates of the ignition point
Definition: firemodule.h:173
int iterations
Definition: firemodule.h:250
int fire_size_realized_m2
Definition: firemodule.h:252
void setup()
the setup function sets up the grids and parameters used for the fire module.
Definition: firemodule.cpp:138
void setScriptObj(FireScript *sm)
Definition: firemodule.h:148
double fireX() const
coordinates of the ignition point
Definition: firemodule.h:172
double prescribedIgnition(const double x_m, const double y_m, const double firesize, const double windspeed, const double winddirection)
Definition: firemodule.cpp:737
void calculateDroughtIndex(const ResourceUnit *resource_unit, const WaterCycleData *water_data)
called from the plugin to perform calculations (drought indices) during the water cycle routine.
Definition: firemodule.cpp:236
void spread(const QPoint &start_point, const bool prescribed=false)
spread a fire starting from 'start_point' (index of the 20m grid)
Definition: firemodule.cpp:360
static double cellsize()
Definition: firemodule.h:150
int fire_size_plan_m2
Definition: firemodule.h:251
double burnInIgnition(const double x_m, const double y_m, const double length, double max_fire_size, bool simulate=false)
triggers a burn-in at 'x' and 'y' (iLand coordinate system) with a length (along the border) of 'leng...
Definition: firemodule.cpp:765
FireModule()
Definition: firemodule.cpp:123
QPointF startpoint
Definition: firemodule.h:255
void testSpread()
Definition: firemodule.cpp:703
void run()
main function that is executed yearly (called by the plugin) performs the major processes (ignition,...
Definition: firemodule.cpp:219
double fire_psme_died
psme (doug fir) that died during the fire (based on m2)
Definition: firemodule.h:254
double ignition(bool only_ignite=false)
calculate the start and starting point of a possible fire. return: burnt area (-1 if nothing burnt)
Definition: firemodule.cpp:281
FireRUData contains data items for resource units.
Definition: firemodule.h:40
double kbdiRef() const
Definition: firemodule.h:48
int n_trees_died
number of trees that are killed
Definition: firemodule.h:59
double avg_dbh
average dbh (arithmetic mean) and limited to threshold
Definition: firemodule.h:70
void setup(const ResourceUnit *ru)
Definition: firemodule.cpp:50
FireRUData()
Definition: firemodule.h:42
const ResourceUnit * ru() const
Definition: firemodule.h:51
double died_basal_area
basal area (m2) of died trees
Definition: firemodule.h:64
double fuel_dwd
average fuel dead wood (kg/ha)
Definition: firemodule.h:68
int year_last_fire
the year of the last fire event on the RU
Definition: firemodule.h:63
void reset()
Definition: firemodule.h:46
bool valid() const
returns false if the cell is not a valid resource unit (outside of project area)
Definition: firemodule.h:44
struct FireRUData::@7 fireRUStats
int n_cells
number of burning cells
Definition: firemodule.h:61
double crown_kill
average crown kill percent
Definition: firemodule.h:69
int n_cum_fire
number of fire events affecting the resource unit
Definition: firemodule.h:62
double kbdi() const
Definition: firemodule.h:47
double managementSuppression() const
Definition: firemodule.h:50
double fuel_ff
average fuel fine material (kg/ha)
Definition: firemodule.h:67
bool allowIgnition() const
Definition: firemodule.h:45
int n_trees
number of trees that are on burning cells
Definition: firemodule.h:60
double baseIgnitionProbability() const
Definition: firemodule.h:49
int fire_id
Definition: firemodule.h:57
double basal_area
basal area (m2) of all trees on burning pixels
Definition: firemodule.h:65
double fuel_moss
average affected moss biomass (kg/ha)
Definition: firemodule.h:66
FireScript is the scripting shell for the fire module.
Definition: firescript.h:28
Grid class (template).
Definition: grid.h:44
This is the base class for multi-layer grids in iLand.
Definition: layeredgrid.h:95
const Grid< FireRUData > * mGrid
Definition: layeredgrid.h:130
ResourceUnit is the spatial unit that encapsulates a forest stand and links to several environmental ...
Definition: resourceunit.h:49
WaterCycleData is a data transfer container for water-related details.
Definition: watercycle.h:191