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)
This output details the calculation of a tree's gross and net primary production (GPP, NPP) for the year. It shows how the available resources and the tree's state translate into potential growth.
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 |
mStemMass | biomass (kg) of the stem (biomass states before growth) |
mCoarseRootMass | biomass (kg) of the coarse roots |
mFoliageMass | biomass (kg) of the foliage |
mLeafArea | leaf area (m2) of the tree |
LRI_modified | The Light Resource Index after being modified by the resource unit's modifier (e.g., from water stress). |
light_response | The tree's physiological response (0-1) to the modified LRI. |
effective_area | The effective light-intercepting area of the tree (m2), considering its leaf area and light response. |
raw_gpp | The raw Gross Primary Production (kg biomass) for the tree before accounting for age-related decline. |
gpp | The final GPP (kg biomass) for the tree after applying the species-specific aging factor. |
npp | The Net Primary Production (kg biomass), calculated as GPP reduced by autotrophic respiration losses. |
aging_factor | The aging factor (0-1) applied to the tree, which reduces GPP based on its age and height. |
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)
This output details the calculation of the stem diameter and height increment based on the net stem NPP allocated for 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 |
mStemMass | biomass (kg) of the stem (biomass states before growth) |
mCoarseRootMass | biomass (kg) of the coarse roots |
mFoliageMass | biomass (kg) of the foliage |
mLeafArea | leaf area (m2) of the tree |
net_stem_npp | The portion of NPP (kg biomass) allocated to stem growth for the year. |
stem_mass_before | The tree's stem mass (kg) at the beginning of the year, before the current increment is added. |
hd_growth_ratio | The relative height-to-diameter growth ratio for the year, determined by the tree's light environment (LRI). |
factor_diameter | A calculated conversion factor representing the diameter increment per kg of stem NPP. |
dbh_inc_estimate_cm | An initial estimate of the diameter increment (cm) for the year. |
dbh_inc_final_cm | The final calculated diameter increment (cm) for the year after iterative correction. |
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 (stocked area) |
gpp_kg | Total GPP (kg Biomass) of the species on the whole resource unit (i.e., gpp_kg_m2 * stocked_area_m2) |
avg_aging | Average aging factor (0..1) of the species' trees on the resource unit. |
f_env_yr | Aggregated environmental factor 0..1 for the year, used for sapling growth calculations. See sapling growth and competition for details on on $f_{env,yr}$ |
Water Cycle (16)
This output details the daily calculations of the water balance for a resource unit. The permafrost-related columns are only populated with meaningful values if the permafrost module is enabled in the project file; otherwise, they will be zero.
Name | Description |
date | Date of the day (yyyymmdd) from 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 | Precipitation of the day (mm). |
rad | Global radiation (MJ/m2). |
combined_response | Combined daily response modifier (0-1) of all species on the RU, representing the minimum of the water and VPD responses. |
after_intercept | Precipitation that reaches the ground after canopy interception (mm). |
after_snow | Water input to the soil after accounting for the snow pack (i.e., snowmelt or rain passing through) (mm). |
et_canopy | Evapotranspiration of the day from the canopy (mm). |
evapo_intercepted | Evaporation from intercepted water on the canopy (mm). |
content | Current soil water content at the end of the day, after evapotranspiration (mm). |
psi_kpa | Soil water potential (kPa) at the beginning of the day, before evapotranspiration. |
excess_mm | Water that leaves the soil profile as runoff or 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, saplings, and ground vegetation. |
pf_top | Depth of the top of the frozen soil layer (m). During summer thaw, this value increases from zero. |
pf_bottom | Depth of the bottom of the frozen soil layer (m). |
pf_freezeback | Depth of the soil layer that is freezing from the surface downwards during autumn (m). |
pf_delta_water_mm | Daily change (mm) in the liquid water pool due to thawing (+) or freezing (-) of soil water. |
pf_delta_soil_m | Daily change in the depth of the unfrozen soil column (m). |
pf_k_unfrozen | Thermal conductivity of the unfrozen soil (W/m/K). |
pf_soil_frozen_m | Total current depth of frozen soil (m). |
pf_water_frozen_mm | Total water currently held in the frozen soil layer (mm). |
pf_unfrozen_fc_mm | The current field capacity (mm) of the unfrozen portion of the soil. |
moss_f_light | Light limitation factor (0-1) for moss growth on the current day. |
moss_f_deciduous | Deciduous litter inhibition factor (0-1) for moss growth on the current day. |
Daily responses (32)
This output provides a detailed look at the monthly response functions for each species on a resource unit. These response functions are modifiers (typically 0-1) that represent limitations on growth due to various environmental factors. The final utilizableRadiation is the culmination of these factors applied to the absorbed radiation. Note that while the output is logged daily, the response values themselves are calculated and reported as monthly averages or sums.
Name | Description |
day_id | Unique identifier for the day of the year (yyyymmdd). |
ru_index | 0-based index of the resource unit. |
ru_id | User-defined ID of the resource unit. |
species | 4-character species code. |
temp | Average daily temperature (°C). |
vpd | Vapour Pressure Deficit of the day (kPa). |
rad | Global radiation of the day (MJ/m2). |
resp_soil | Monthly average of the daily soil water response modifier (0-1). A value of 1 indicates no water limitation. |
resp_vpd | Monthly average of the daily Vapour Pressure Deficit (VPD) response modifier (0-1). A value of 1 indicates no limitation from atmospheric drought. |
resp_temp | Monthly average of the daily temperature response modifier (0-1). A value of 1 indicates optimal temperature for growth. |
resp_meteo | The monthly meteorological response, calculated as the monthly average of the daily minimum of soil water, VPD, and temperature responses. |
resp_pheno | Monthly phenology response (0 or 1), indicating if the species is photosynthetically active during the month. |
resp_co2 | The CO2 fertilization effect modifier for the month, based on atmospheric CO2 concentration. |
apar_mj_m2 | The total absorbed photosynthetically active radiation (APAR) for the month (MJ/m2). |
resp_daylength | Monthly average of the daily daylength response modifier (0-1). |
utilizable_rad | The utilizable radiation for the month (MJ/m2). This is the APAR value after being reduced by all preceding response modifiers (meteo, pheno, co2, daylength). |
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) |
avgSeedDensity | Average seed density of the species on the resource unit. |
TACAminTemp | Boolean switch (true/false). Is false if the daily minimum temperature drops below the species-specific threshold. If false, establishment is not possible. |
TACAchill | Boolean switch (true/false). Is true if the species' chilling requirement is met. If false, establishment is not possible. |
TACAfrostFree | Boolean switch (true/false). Is true if the number of frost-free days exceeds the species-specific threshold. If false, establishment is not possible. |
TACAgdd | Boolean switch (true/false). Is true if the calculated growing degree days (GDD) are within the species-specific min/max thresholds. If false, establishment is not possible. |
frostDaysAfterBudburst | The number of frost days (Tmin <= 0°C) that occur after bud burst. This value is used to calculate a frost damage effect. |
waterLimitation | A value from 0 to 1 indicating the limitation on establishment due to soil water availability. A value of 1 means no limitation. |
GDD | The calculated growing degree days for the year. |
pAbiotic | The final probability (0-1) for establishment based on the abiotic environment. It is a multiplicative combination of the effects of frost after bud burst, water limitation, and limitations by the soil organic layer depth. It is only > 0 if all TACA-requirements (TACAminTemp, TACAchill, TACAfrostFree, TACAgdd) are met. |
fEnvYr | The aggregated environmental factor 0..1 from the 3PG production model for the resource unit and year. |
newSaplings | The number of new saplings of the species established on the resource unit in the current year. |
Sapling Growth (128)
This output provides detailed statistics on the population dynamics of saplings (trees < 4m height) for each species on a resource unit. It is only created if there are living saplings of a species on the resource unit.
Name | Description |
species | Short name of the species. |
RU_index | 0-based index of the resource unit. |
rid | User-defined ID of the resource unit. |
Living_cohorts | Number of living sapling cohorts for the species on the resource unit at the end of the year. |
averageHeight | Average height (m) of all surviving sapling cohorts. |
averageAge | Average age (years) of all surviving sapling cohorts. |
avgDeltaHPot | Average potential height increment (m) for the year, before considering competition effects. |
avgDeltaHRealized | Average realized height increment (m) for the year, after accounting for competition and environmental factors. |
added | Number of new sapling cohorts established from seed in the current year. |
addedVegetative | Number of new sapling cohorts created by vegetative sprouting in the current year. |
died | Number of sapling cohorts that died due to environmental stress in the current year. |
recruited | Number of sapling cohorts that grew taller than the 4m threshold and were recruited as adult trees into the main model. |
refRatio | The species-specific reference ratio parameter, used for scaling sapling growth responses. See sapling growth and competition. |
carbonLiving | Total carbon (kg) stored in the biomass of all living saplings at the end of the year. |
carbonGain | Net carbon gain (kg) of the sapling pool during the current year. |
Carbon Cycle (256)
This output details the state of various carbon and nitrogen pools and their fluxes for each resource unit. Note that values for snags (standing and downed dead wood) are for the stockable area of the resource unit, while the soil values (from the ICBM/2N model) are scaled to a full hectare.
Name | Description |
SnagState_c | Total carbon content in all snag pools (standing dead wood, coarse roots, branches) (kg/ha). |
TotalC_in | Total carbon input into all snag pools from tree mortality (kg/ha). |
TotalC_toAtm | Total carbon flux to the atmosphere from the decay of all snag pools (kg/ha). |
SWDtoDWD_c,SWDtoDWD_n | Carbon and Nitrogen flux from standing dead wood (SWD) to downed dead wood (DWD) (kg/ha). |
toLabile_c, toLabile_n | Total C and N flux into the labile soil pool from litterfall and fine root turnover (kg/ha). |
toRefr_c, to_Refr_n | Total C and N flux into the refractory soil pool from the decay of coarse woody debris (kg/ha). |
for each class X=1..3 | |
swdX_c, swdX_n | Carbon and Nitrogen content in standing woody debris (SWD) class X (kg/ha). |
swdX_count | Number of individual snags in SWD class X. |
swdX_tsd | Average time since death (years) for snags in SWD class X. |
dbhX | Average DBH (cm) of snags in SWD class X. |
heightX | Average height (m) of snags in SWD class X. |
volumeX | Average volume (m³) of snags in SWD class X. |
toSwdX_c, toSwdX_n | Input flux of Carbon and Nitrogen into SWD class X from tree mortality (kg/ha). |
other wood classes: X: 1..5 | |
otherWoodX_c, otherWoodX_n | Carbon and Nitrogen content of other woody debris classes (e.g., branches, coarse roots) (kg/ha). |
Soil (ICBM/2N) | |
iLabC, iLabN | Carbon and Nitrogen input to the soil's labile pool (t/ha). |
iKyl | Decomposition rate of the labile input pool. |
iRefC, iRefN | Carbon and Nitrogen input to the soil's refractory pool (t/ha). |
iKyr | Decomposition rate of the refractory input pool. |
re | Climate modifier for decomposition, based on temperature and moisture. |
kyl, kyr | Current annual decomposition rates for the labile and refractory pools, respectively. |
ylC, yLN | State of the young labile matter pool (C, N) in t/ha. |
yrC, yrN | State of the young refractory matter pool (C, N) in t/ha. |
somC, somN | State of the old soil organic matter pool (C, N) in t/ha. |
NAvailable | Total calculated plant-available nitrogen for the year (kg/ha). |
NAVLab | Plant-available nitrogen mineralized from the labile pool (kg/ha/yr). |
NAVRef | Plant-available nitrogen mineralized from the refractory pool (kg/ha/yr). |
NAVSom | Plant-available nitrogen mineralized from the old SOM pool, also including atmospheric N deposition (kg/ha/yr). |
Performance (512)
This output provides a summary of key model performance metrics for each simulation year, including counts of simulated entities and execution times for major model processes. The time values are reported in milliseconds (ms).
Name | Description |
year | Year of the simulation. |
treeCount | Total number of individual trees (> 4m height) in the simulation. |
saplingCount | Total number of sapling cohorts (< 4m height) in the simulation. |
newSaplings | Number of sapling cohorts newly established in the current year. |
management | Execution time spent in the management module (ms). |
applyPattern | Execution time for applying the Light Influence Patterns (LIP) of all trees to the light grid (ms). |
readPattern | Execution time for reading the light grid and calculating the Light Resource Index (LRI) for all trees (ms). |
treeGrowth | Execution time spent in the individual tree growth, partitioning, and mortality routines (ms). |
seedDistribution | Execution time for the seed dispersal module (ms). |
establishment | Execution time for the sapling establishment routine (ms). |
saplingGrowth | Execution time for the growth of all sapling cohorts (ms). |
carbonCycle | Execution time for the carbon cycle module, including snag and soil dynamics (ms). |
writeOutput | Time spent writing the standard database outputs (ms). |
totalYear | Total execution time for the entire year's simulation loop (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>