Debug outputs
The so called debug outputs are - besides the database oriented Outputs and the direct visualization - the third type of data outputs available in iLand. Debug outputs are usually on a very detailed level and are typically used during development and for debugging purposes (hence the name). In addition, debug output data is available within the iLand viewer application and is linked to iLand objects (e.g., trees or resource units). Outputs are enabled/disabled from the Debug Data menu of the GUI or via the project file and the keys system.settings.debugOutput and system.settings.debugOutputAutoSave. If debugOutputAutoSave is true, the debug data is written to the temp directory as CSV files (;-separated). The behavior is modified by the model.parameter.debug_clear switch: if true the debug output will be written every year (if auto-save is enabled) and then deleted from the memory. This limits the additional memory footprint of debug outputs (which can be quite high for larger simulations).
Note that these codes can also be combined, i.e. "12" will trigger the two debug outputs "tree growth" and "standlevel NPP".
Debug outputs based on individual trees (Tree NPP, Tree partition, Tree growth) produce potentially huge amounts of data and are therefore filtered by default. Only trees that satisfy the condition provided by the setting debug_tree (see project file ) are allowed producing debug output data.
The following codes trigger the respective debug outputs:
Tree NPP (1)
Tree partition (2)
The output focuses on how NPP is split between the tree compartments.
Biomass pools are given after growth (at the end of the year).
Name | Description |
Id | unique tree Id (numeric) |
Species | 4-character species code (e.g. 'psme') |
Dbh | diamter at breast height (cm) |
Height | tree height (m) |
x | x-coordinate of the tree (index of the pixel on the 2m grid) |
y | y-coordinate of the tree (index of the pixel on the 2m grid) |
ru_index | index of the resource unit that hosts the tree |
LRI | light-resource-index of the tree |
mWoody | biomass (kg) of the stem (biomass states *after* growth) |
mRoot | biomass (kg) of the coarse roots |
mFoliage | biomass (kg) of the foliage |
LA | leaf area (m2) of the tree |
mFineroot | biomass (kg) of fine roots |
mBranch | biomass (kg) of the branches |
npp_kg | NPP (kg biomass) produced by the tree in this year (note that the state of the reserve pool is added interally for distribution, and that the reserve pool (with increased size) is substracted again) |
apct_foliage | allocation (0..1) to the foliage compartment |
apct_wood | fraction of NPP that goes into woody organs (this is: stem, branches, reserve) |
apct_root | fraction of NPP that is routed to the roots (coarse + fine roots) |
delta_foliage | net increment of foliage biomass (kg) |
delta_woody | net increment of woody compartments (stem and branches, flow to reserve already subtracted). |
delta_root | net increment (kg) of roots (fine + coarse) |
biomass_loss | biomass (kg) that is lost due to senescene (fine roots, foliage) and coarse root turnover |
mNPPReserve | amount of the NPP reserve at the end of the year (kg) |
netStemInc | biomass increment (kg) of the stem (branch increment: delta_woody - netStemInc) |
stress_index | Carbon balance based stress index (see base mortality ) |
Tree growth (4)
Standlevel GPP (8)
The output gives raw values for GPP productivity on resource unit x species level.
Name | Description |
species | short name of the species |
RU_index | 0-based index of resource unit |
rid | ID of the resource unit (0 if no IDs are provided) |
lai | leaf area index (m2/m2) for trees >4m height of the species |
gpp_kg_m2 | GPP production (yearly) (kg Biomass) per m2 (effective area) |
gpp_kg | GPP (kg Biomass) of the species on the whole resource unit |
avg_aging | average aging factor (0..1) of the species' trees. Note, that at this point the values are still from the last year. |
f_env_yr | aggregated environmental factor 0..1. See sapling growth and competition for details on $f_{env,yr}$ |
Water Cycle (16)
date | date of the day (yyyymmdd). Note: this is the date of the climate record |
ruindex | index of the RU (0-based) |
rid | ID of the resource unit |
temp | average day temp (°C) |
vpd | vapour pressure deficit of the day (kPa) |
prec | precip of the day (mm) |
rad | global radiation (MJ/m2) |
combined_response | combined response of all species on RU (min(water, vpd) ) |
after_intercept | precipitation after interception (mm) |
after_snow | water input after snow pack (mm) |
et_canopy | evapotranspiration of the day (mm) |
evapo_intercepted | evaporation from the canopy (intercepted water) (mm) |
content | current soil water content (after evapotranspiration) (mm) |
psi_kpa | soil water potential (kPa) (before evapotranspiration) |
excess_mm | runoff/deep percolation (mm) |
snow_height | current snow height (mm) |
lai_effective | effective leaf area index (m2/m2), i.e. the sum of LAI of adult trees and saplings, including ground vegetation |
Daily responses (32)
Establishment (64)
Note: The debug output is only created if seeds of the species are present on the resource unit.
Name | Description |
species | short name of the species |
RU_index | 0-based index of resource unit |
rid | ID of the resource unit (0 if no IDs are provided) |
avgProbDensity | mean seed density on RU (avg probability of all seed cells (i.e. 20m) on a RU (100x100m)) |
TACAminTemp | absolute minimum-temperatur, boolean-switch, false: establishment = NO |
TACAchill | chilling requirement (number of days), boolean-switch, false: establishment = NO |
TACAfrostFree | number of frost-free days, boolean-switch, false: establishment = NO |
TACAgdd | true = gdd within thresholds |
TACAFrostAfterBud | frostdays after budbirst are counted to the end of vegetation period |
waterLimitation | probability of establishment due to water limitation (1: no limitation). |
GDD | the calculated growing degree days (see establishment ). |
TACAAbioticEnv | result after abiotic environment (after multiplication with fEnvYr) (result of tolerance pow(sqrt(frostdays after budbirst)) * fEnvYr) |
fEnvYr | still missing: f_ref: parameter that scales response values to the range 0..1 (1 for best growth conditions) |
avgLIFValue | average LIF value of all pixels that are tested for establishment. If no pixels were tested, avgLifValue=0. |
N_Established | number of cells in RU where establishment was successful |
Sapling Growth (128)
Note: the output is only created if there are living sapling trees on the resource unit.
Name | Description |
species | short name of the species |
RU_index | 0-based index of resource unit |
rid | ID of the resource unit (0 if no IDs are provided) |
Living_cohorts | number of cohorts on resource unit |
averageHeight | average height of cohorts (the cohort statistics are based on all cohorts that survive, i.e. that do not die or get recruited) (m) |
averageAge | average age of cohorts (living) |
avgDeltaHPot | average height increment potential (of all "surviving" cohorts) (m) |
avgDeltaHRealized | average realized height increment (m) |
added | number of cohorts established in current year on RU |
addedVegetative | number of cohorts that were created by lateral sprouting in the current year and RU (note: the total number of created sprouts is added + addedVegetative) |
died | number of cohorts that died (due to stress) in the current year on RU |
recruited | number of cohorts that recruited to the iLand-model in the current year on RU |
refRatio | reference ratio (see Eq. 3 in sapling growth and competition |
carbonLiving | total carbon (kg) in living saplings (stem, branch, foliage, fineroots, coarse roots, saplings >1.3m height) |
carbonGain | net carbon gain of saplings (>1.3m) |
Carbon Cycle (256)
Note: Values for snags are always pools and fluxes of the stockable area per resource unit, while soil (ICBM/2N) pools and fluxes are always scaled to 100% stockable resource units.
Name | Description |
SnagState_c | Total carbon content in snags (stem / coarse root / branches), kg/ha |
TotalC_in | Total carbon input to the snags (stem / coarse root / branches), kg/ha |
TotalC_toAtm | flux of C to atmosphere (snag decay), kg/ha |
SWDtoDWD_c,SWDtoDWD_n | C and N flux from standing dead wood to downed dead wood (just snags, no branches) (kg/ha) |
toLabile_c, toLabile_n | total flux to labile soil pool (C and N, kg/ha) (mortality and litter fall) |
toRefr_c, to_Refr_n | fluxes (C and N) to refractory soil pool (total flux: snags, branches, coarse roots), kg/ha |
for each class X=1..3 | |
swdX_c, swdX_n | standing woody debris pool content (C, N), kg/ha |
swdX_count | number of snags (reduced transfer to DWD) |
swdX_tsd | average time since death (yrs) |
dbhX | average dbh of snags (cm) |
heightX | average height of snags (m) |
volumeX | average volume of snags (m3) |
toSwdX_c, toSwdX_n | input flux into SWD pool (C, N) kg/ha |
other wood classes: X: 1..5 | |
otherWoodX_c, otherWoodX_n | pool content of the class (kg/ha) (coarse roots and branches) |
Soil (ICBM/2N) | |
iLabC, iLabN | C,N input to soil in labile matter (t/ha) (i.e. litter) |
iKyl | decomposition rate of litter input |
iRefC, iRefN | C and N input to soil in refractory matter (t/ha) (DWD) |
iKyr | decomposition rate of refractory input |
re | climate modifier (see snag dynamics) |
kyl, kyr | current decomposition rates of labile/refractory pools |
ylC, yLN | state of labile matter pool (C, N), t/ha |
yrC, yrN | state of refractory matter pool (C, N), t/ha |
somC, somN | state of soil organic matter (old) (C, N), t/ha |
NAvailable | calculated plant available nitrogen (kg/ha*yr) (sum of N mineralization minus leaching including N deposition) |
NAVLab | available nitrogen (kg/ha*yr) from labile pool |
NAVRef | available nitrogen (kg/ha*yr) from refractory pool |
NAVSom | available nitrogen (kg/ha*yr) from SOM. This includes N deposition. |
Performance (512)
Name | Description |
year | year of the simulation |
treeCount | total number of trees |
saplingCount | total number of saplings |
newSaplings | newly created saplings |
management | execution time management (ms) |
applyPattern | execution time for "printing" LIP patterns (ms) |
readPattern | execution time for calculating LRI values for all trees (ms) |
treeGrowth | time spent in individual tree growth routine (ms) |
seedDistribution | execution time for seed distribution (ms) |
establishment | execution time establishment routine (ms) |
saplingGrowth | time spend with growth of trees <4m (ms) |
carbonCycle | execution time for carbon cycle (ms) |
writeOutput | time for writing outputs (ms) |
totalYear | total execution time of the year (ms) |
Dynamic Output
The dynamic output produces statistics for all trees in the simulation. The "dynamic" output is configured in the project file section "output" (output.dynamic) and switched on/off there. In addition, the dynamic debug output can be switched on/off using the Globals Javascript function Globals.startOutput("debug_dynamic") and stopOutput().
The defintion of columns is similar to the dynamic stand output.
Example for the section in the project file:
<dynamic> <!-- clipboard --> <!-- free defined output that uses expressions/filter on all trees of the simulation --> <enabled>false</enabled> <columns>dbh.mean, dbh.max, dbh.min, dbh.p5, dbh.p25, dbh.p75, dbh.p95, height.mean, height.max, height.min, height.p5,height.p95, height.p25,height.p75, stress.mean, stress.max, if(stress>0,1,0).sum, if(stress>0,stress,0).sum, if(dbh>0,1,0).sum, leafarea.sum,woodymass.sum,rootmass.sum,foliagemass.sum </columns> </dynamic>