
Forest dynamics
Miquel De Caceres
2025-12-24
Source:vignettes/runmodels/ForestDynamics.Rmd
ForestDynamics.RmdAbout this vignette
This document describes how to run the forest dynamics model of
medfate, described in De Cáceres et al. (2023) and
implemented in function fordyn(). This document is meant to
teach users to run the simulation model with function
fordyn(). Details of the model design and formulation can
be found at the corresponding chapters of the medfate
book.
Because the model builds on the growth and water balance models, the
reader is assumed here to be familiarized with spwb() and
growth() (otherwise read vignettes Basic
water balance and Forest
growth).
Preparing model inputs
Any forest dynamics model needs information on climate, vegetation
and soils of the forest stand to be simulated. Moreover, since models in
medfate differentiate between species, information on
species-specific model parameters is also needed. In this subsection we
explain the different steps to prepare the data needed to run function
fordyn().
Model inputs are explained in greater detail in vignettes Understanding
model inputs and Preparing
model inputs. Here we only review the different steps required
to run function fordyn().
Soil, vegetation, meteorology and species data
Soil information needs to be entered as a data frame
with soil layers in rows and physical attributes in columns. Soil
physical attributes can be initialized to default values, for a given
number of layers, using function defaultSoilParams():
examplesoil <- defaultSoilParams(4)
examplesoil## widths clay sand om nitrogen ph bd rfc
## 1 300 25 25 NA NA NA 1.5 25
## 2 700 25 25 NA NA NA 1.5 45
## 3 1000 25 25 NA NA NA 1.5 75
## 4 2000 25 25 NA NA NA 1.5 95
As explained in the package overview, models included in
medfate were primarily designed to be ran on forest
inventory plots. Here we use the example object provided with
the package:
data(exampleforest)
exampleforest## $treeData
## Species DBH Height N Z50 Z95
## 1 Pinus halepensis 37.55 800 168 100 300
## 2 Quercus ilex 14.60 660 384 300 1000
##
## $shrubData
## Species Height Cover Z50 Z95
## 1 Quercus coccifera 80 3.75 200 1000
##
## attr(,"class")
## [1] "forest" "list"
We can keep track of cohort age if we define a column called
Age in tree or shrub data, for example let us assume we
know the age of the two tree cohorts:
exampleforest$treeData$Age <- c(40, 24)Importantly, a data frame with daily weather for the period to be simulated is required. Here we use the default data frame included with the package:
## dates MinTemperature MaxTemperature Precipitation MinRelativeHumidity
## 1 2001-01-01 -0.5934215 6.287950 4.869109 65.15411
## 2 2001-01-02 -2.3662458 4.569737 2.498292 57.43761
## 3 2001-01-03 -3.8541036 2.661951 0.000000 58.77432
## 4 2001-01-04 -1.8744860 3.097705 5.796973 66.84256
## 5 2001-01-05 0.3288287 7.551532 1.884401 62.97656
## 6 2001-01-06 0.5461322 7.186784 13.359801 74.25754
## MaxRelativeHumidity Radiation WindSpeed
## 1 100.00000 12.89251 2.000000
## 2 94.71780 13.03079 7.662544
## 3 94.66823 16.90722 2.000000
## 4 95.80950 11.07275 2.000000
## 5 100.00000 13.45205 7.581347
## 6 100.00000 12.84841 6.570501
Finally, simulations in medfate require a data frame
with species parameter values, which we load using defaults for
Catalonia (NE Spain):
data("SpParamsMED")Simulation control
Apart from data inputs, the behaviour of simulation models can be
controlled using a set of global parameters. The default
parameterization is obtained using function
defaultControl():
control <- defaultControl("Granier")Here we will run simulations of forest dynamics using the basic water
balance model (i.e. transpirationMode = "Granier"). The
complexity of the soil water balance calculations can be changed by
using "Sperry" as input to defaultControl().
However, when running fordyn() sub-daily output will never
be stored (i.e. setting subdailyResults = TRUE is
useless).
Executing the forest dynamics model
In this vignette we will fake a ten-year weather input by repeating the example weather data frame ten times.
meteo <- rbind(examplemeteo, examplemeteo, examplemeteo, examplemeteo,
examplemeteo, examplemeteo, examplemeteo, examplemeteo,
examplemeteo, examplemeteo)
meteo$dates <- as.character(seq(as.Date("2001-01-01"),
as.Date("2010-12-29"), by="day"))Now we run the forest dynamics model using all inputs (note that no
intermediate input object is needed, as in spwb() or
growth()):
fd<-fordyn(exampleforest, examplesoil, SpParamsMED, meteo, control,
latitude = 41.82592, elevation = 100)## Simulating year 2001 (1/10): (a) Growth/mortality
## Package 'meteoland' [ver. 2.2.5]
## , (b) Regeneration nT = 2 nS = 1
## Simulating year 2002 (2/10): (a) Growth/mortality, (b) Regeneration nT = 2 nS = 1
## Simulating year 2003 (3/10): (a) Growth/mortality, (b) Regeneration nT = 2 nS = 1
## Simulating year 2004 (4/10): (a) Growth/mortality, (b) Regeneration nT = 2 nS = 1
## Simulating year 2005 (5/10): (a) Growth/mortality, (b) Regeneration nT = 2 nS = 1
## Simulating year 2006 (6/10): (a) Growth/mortality, (b) Regeneration nT = 2 nS = 1
## Simulating year 2007 (7/10): (a) Growth/mortality, (b) Regeneration nT = 2 nS = 1
## Simulating year 2008 (8/10): (a) Growth/mortality, (b) Regeneration nT = 2 nS = 1
## Simulating year 2009 (9/10): (a) Growth/mortality, (b) Regeneration nT = 2 nS = 1
## Simulating year 2010 (10/10): (a) Growth/mortality, (b) Regeneration nT = 2 nS = 1
It is worth noting that, while fordyn() calls function
growth() internally for each simulated year, the
verbose option of the control parameters only affects
function fordyn() (i.e. all console output from
growth() is hidden). Recruitment and summaries are done
only once a year at the level of function fordyn().
Inspecting model outputs
Stand, species and cohort summaries and plots
Among other outputs, function fordyn() calculates
standard summary statistics that describe the structural and
compositional state of the forest at each time step. For example, we can
access stand-level statistics using:
fd$StandSummary## Step NumTreeSpecies NumTreeCohorts NumShrubSpecies NumShrubCohorts
## 1 0 2 2 1 1
## 2 1 2 2 1 1
## 3 2 2 2 1 1
## 4 3 2 2 1 1
## 5 4 2 2 1 1
## 6 5 2 2 1 1
## 7 6 2 2 1 1
## 8 7 2 2 1 1
## 9 8 2 2 1 1
## 10 9 2 2 1 1
## 11 10 2 2 1 1
## TreeDensityLive TreeBasalAreaLive DominantTreeHeight DominantTreeDiameter
## 1 552.0000 25.03330 800.0000 37.55000
## 2 551.3665 25.19852 806.0409 37.66252
## 3 550.7277 25.36616 812.1633 37.77714
## 4 550.0833 25.53601 818.3155 37.89291
## 5 549.4315 25.70596 824.4540 38.00903
## 6 548.7760 25.87606 830.5649 38.12523
## 7 548.1148 26.04530 836.6431 38.24142
## 8 547.4481 26.21375 842.6797 38.35742
## 9 546.7740 26.38156 848.6735 38.47320
## 10 546.0962 26.54894 854.6232 38.58874
## 11 545.4165 26.71599 860.5290 38.70402
## QuadraticMeanTreeDiameter HartBeckingIndex ShrubCoverLive BasalAreaDead
## 1 24.02949 53.20353 3.750000 0.00000000
## 2 24.12250 52.83512 3.077537 0.03914919
## 3 24.21665 52.46724 3.123712 0.03978393
## 4 24.31181 52.10327 3.159522 0.04043462
## 5 24.40704 51.74600 3.206606 0.04120917
## 6 24.50228 51.39595 3.243641 0.04176629
## 7 24.59711 51.05332 3.291605 0.04244126
## 8 24.69154 50.71845 3.329884 0.04312058
## 9 24.78571 50.39128 3.379122 0.04392563
## 10 24.87964 50.07152 3.418244 0.04449570
## 11 24.97333 49.75885 3.467195 0.04494161
## ShrubCoverDead BasalAreaCut ShrubCoverCut
## 1 0.000000000 0 0
## 2 0.005300612 0 0
## 3 0.004761042 0 0
## 4 0.004826214 0 0
## 5 0.004901045 0 0
## 6 0.004954349 0 0
## 7 0.005017627 0 0
## 8 0.005085791 0 0
## 9 0.005165189 0 0
## 10 0.005220835 0 0
## 11 0.005257540 0 0
Species-level analogous statistics are shown using:
fd$SpeciesSummary## Step Species NumCohorts TreeDensityLive TreeBasalAreaLive
## 1 0 Pinus halepensis 1 168.0000 18.604547
## 2 0 Quercus coccifera 1 NA NA
## 3 0 Quercus ilex 1 384.0000 6.428755
## 4 1 Pinus halepensis 1 167.6993 18.682713
## 5 1 Quercus coccifera 1 NA NA
## 6 1 Quercus ilex 1 383.6672 6.515803
## 7 2 Pinus halepensis 1 167.3959 18.762595
## 8 2 Quercus coccifera 1 NA NA
## 9 2 Quercus ilex 1 383.3317 6.603570
## 10 3 Pinus halepensis 1 167.0898 18.843250
## 11 3 Quercus coccifera 1 NA NA
## 12 3 Quercus ilex 1 382.9935 6.692761
## 13 4 Pinus halepensis 1 166.7800 18.923768
## 14 4 Quercus coccifera 1 NA NA
## 15 4 Quercus ilex 1 382.6515 6.782190
## 16 5 Pinus halepensis 1 166.4683 19.004067
## 17 5 Quercus coccifera 1 NA NA
## 18 5 Quercus ilex 1 382.3077 6.871992
## 19 6 Pinus halepensis 1 166.1538 19.083952
## 20 6 Quercus coccifera 1 NA NA
## 21 6 Quercus ilex 1 381.9610 6.961352
## 22 7 Pinus halepensis 1 165.8365 19.163238
## 23 7 Quercus coccifera 1 NA NA
## 24 7 Quercus ilex 1 381.6116 7.050508
## 25 8 Pinus halepensis 1 165.5156 19.241790
## 26 8 Quercus coccifera 1 NA NA
## 27 8 Quercus ilex 1 381.2584 7.139774
## 28 9 Pinus halepensis 1 165.1927 19.319768
## 29 9 Quercus coccifera 1 NA NA
## 30 9 Quercus ilex 1 380.9034 7.229169
## 31 10 Pinus halepensis 1 164.8689 19.397274
## 32 10 Quercus coccifera 1 NA NA
## 33 10 Quercus ilex 1 380.5476 7.318711
## ShrubCoverLive BasalAreaDead ShrubCoverDead BasalAreaCut ShrubCoverCut
## 1 NA 0.000000000 NA 0 NA
## 2 3.750000 NA 0.000000000 NA 0
## 3 NA 0.000000000 NA 0 NA
## 4 NA 0.033497380 NA 0 NA
## 5 3.077537 NA 0.005300612 NA 0
## 6 NA 0.005651808 NA 0 NA
## 7 NA 0.034004434 NA 0 NA
## 8 3.123712 NA 0.004761042 NA 0
## 9 NA 0.005779499 NA 0 NA
## 10 NA 0.034523779 NA 0 NA
## 11 3.159522 NA 0.004826214 NA 0
## 12 NA 0.005910838 NA 0 NA
## 13 NA 0.035148048 NA 0 NA
## 14 3.206606 NA 0.004901045 NA 0
## 15 NA 0.006061125 NA 0 NA
## 16 NA 0.035585896 NA 0 NA
## 17 3.243641 NA 0.004954349 NA 0
## 18 NA 0.006180389 NA 0 NA
## 19 NA 0.036123855 NA 0 NA
## 20 3.291605 NA 0.005017627 NA 0
## 21 NA 0.006317403 NA 0 NA
## 22 NA 0.036664863 NA 0 NA
## 23 3.329884 NA 0.005085791 NA 0
## 24 NA 0.006455722 NA 0 NA
## 25 NA 0.037311762 NA 0 NA
## 26 3.379122 NA 0.005165189 NA 0
## 27 NA 0.006613872 NA 0 NA
## 28 NA 0.037758137 NA 0 NA
## 29 3.418244 NA 0.005220835 NA 0
## 30 NA 0.006737562 NA 0 NA
## 31 NA 0.038098532 NA 0 NA
## 32 3.467195 NA 0.005257540 NA 0
## 33 NA 0.006843081 NA 0 NA
Package medfate provides a simple plot
function for objects of class fordyn. For example, we can
show the interannual variation in stand-level basal area using:
plot(fd, type = "StandBasalArea")
Tree/shrub tables
Another useful output of fordyn() are tables in long
format with cohort structural information (i.e. DBH, height, density,
etc) for each time step:
fd$TreeTable## Step Year Cohort Species DBH Height N Z50 Z95 Z100
## 1 0 NA T1_148 Pinus halepensis 37.55000 800.0000 168.0000 100 300 NA
## 2 0 NA T2_168 Quercus ilex 14.60000 660.0000 384.0000 300 1000 NA
## 3 1 2001 T1_148 Pinus halepensis 37.66252 806.0409 167.6993 100 300 NA
## 4 1 2001 T2_168 Quercus ilex 14.70489 663.2652 383.6672 300 1000 NA
## 5 2 2002 T1_148 Pinus halepensis 37.77714 812.1633 167.3959 100 300 NA
## 6 2 2002 T2_168 Quercus ilex 14.81007 666.5313 383.3317 300 1000 NA
## 7 3 2003 T1_148 Pinus halepensis 37.89291 818.3155 167.0898 100 300 NA
## 8 3 2003 T2_168 Quercus ilex 14.91633 669.8227 382.9935 300 1000 NA
## 9 4 2004 T1_148 Pinus halepensis 38.00903 824.4540 166.7800 100 300 NA
## 10 4 2004 T2_168 Quercus ilex 15.02237 673.0985 382.6515 300 1000 NA
## 11 5 2005 T1_148 Pinus halepensis 38.12523 830.5649 166.4683 100 300 NA
## 12 5 2005 T2_168 Quercus ilex 15.12829 676.3626 382.3077 300 1000 NA
## 13 6 2006 T1_148 Pinus halepensis 38.24142 836.6431 166.1538 100 300 NA
## 14 6 2006 T2_168 Quercus ilex 15.23324 679.5881 381.9610 300 1000 NA
## 15 7 2007 T1_148 Pinus halepensis 38.35742 842.6797 165.8365 100 300 NA
## 16 7 2007 T2_168 Quercus ilex 15.33750 682.7838 381.6116 300 1000 NA
## 17 8 2008 T1_148 Pinus halepensis 38.47320 848.6735 165.5156 100 300 NA
## 18 8 2008 T2_168 Quercus ilex 15.44143 685.9611 381.2584 300 1000 NA
## 19 9 2009 T1_148 Pinus halepensis 38.58874 854.6232 165.1927 100 300 NA
## 20 9 2009 T2_168 Quercus ilex 15.54504 689.1198 380.9034 300 1000 NA
## 21 10 2010 T1_148 Pinus halepensis 38.70402 860.5290 164.8689 100 300 NA
## 22 10 2010 T2_168 Quercus ilex 15.64832 692.2599 380.5476 300 1000 NA
## Age ObsID
## 1 40 <NA>
## 2 24 <NA>
## 3 40 <NA>
## 4 24 <NA>
## 5 41 <NA>
## 6 25 <NA>
## 7 42 <NA>
## 8 26 <NA>
## 9 43 <NA>
## 10 27 <NA>
## 11 44 <NA>
## 12 28 <NA>
## 13 45 <NA>
## 14 29 <NA>
## 15 46 <NA>
## 16 30 <NA>
## 17 47 <NA>
## 18 31 <NA>
## 19 48 <NA>
## 20 32 <NA>
## 21 49 <NA>
## 22 33 <NA>
The same can be shown for dead trees:
fd$DeadTreeTable## Step Year Cohort Species DBH Height N N_starvation
## 1 1 2001 T1_148 Pinus halepensis 37.66252 806.0409 0.3006784 0
## 2 1 2001 T2_168 Quercus ilex 14.70489 663.2652 0.3327930 0
## 3 2 2002 T1_148 Pinus halepensis 37.77714 812.1633 0.3033804 0
## 4 2 2002 T2_168 Quercus ilex 14.81007 666.5313 0.3354951 0
## 5 3 2003 T1_148 Pinus halepensis 37.89291 818.3155 0.3061346 0
## 6 3 2003 T2_168 Quercus ilex 14.91633 669.8227 0.3382479 0
## 7 4 2004 T1_148 Pinus halepensis 38.00903 824.4540 0.3097688 0
## 8 4 2004 T2_168 Quercus ilex 15.02237 673.0985 0.3419689 0
## 9 5 2005 T1_148 Pinus halepensis 38.12523 830.5649 0.3117188 0
## 10 5 2005 T2_168 Quercus ilex 15.12829 676.3626 0.3438319 0
## 11 6 2006 T1_148 Pinus halepensis 38.24142 836.6431 0.3145112 0
## 12 6 2006 T2_168 Quercus ilex 15.23324 679.5881 0.3466283 0
## 13 7 2007 T1_148 Pinus halepensis 38.35742 842.6797 0.3172936 0
## 14 7 2007 T2_168 Quercus ilex 15.33750 682.7838 0.3494185 0
## 15 8 2008 T1_148 Pinus halepensis 38.47320 848.6735 0.3209513 0
## 16 8 2008 T2_168 Quercus ilex 15.44143 685.9611 0.3531757 0
## 17 9 2009 T1_148 Pinus halepensis 38.58874 854.6232 0.3228491 0
## 18 9 2009 T2_168 Quercus ilex 15.54504 689.1198 0.3550007 0
## 19 10 2010 T1_148 Pinus halepensis 38.70402 860.5290 0.3238219 0
## 20 10 2010 T2_168 Quercus ilex 15.64832 692.2599 0.3558165 0
## N_dessication N_burnt N_resprouting_stumps Z50 Z95 Z100 Age ObsID
## 1 0 0 0 100 300 NA 40 <NA>
## 2 0 0 0 300 1000 NA 24 <NA>
## 3 0 0 0 100 300 NA 40 <NA>
## 4 0 0 0 300 1000 NA 24 <NA>
## 5 0 0 0 100 300 NA 41 <NA>
## 6 0 0 0 300 1000 NA 25 <NA>
## 7 0 0 0 100 300 NA 42 <NA>
## 8 0 0 0 300 1000 NA 26 <NA>
## 9 0 0 0 100 300 NA 43 <NA>
## 10 0 0 0 300 1000 NA 27 <NA>
## 11 0 0 0 100 300 NA 44 <NA>
## 12 0 0 0 300 1000 NA 28 <NA>
## 13 0 0 0 100 300 NA 45 <NA>
## 14 0 0 0 300 1000 NA 29 <NA>
## 15 0 0 0 100 300 NA 46 <NA>
## 16 0 0 0 300 1000 NA 30 <NA>
## 17 0 0 0 100 300 NA 47 <NA>
## 18 0 0 0 300 1000 NA 31 <NA>
## 19 0 0 0 100 300 NA 48 <NA>
## 20 0 0 0 300 1000 NA 32 <NA>
Accessing the output from function growth()
Since function fordyn() makes internal calls to function
growth(), it stores the result in a vector called
GrowthResults, which we can use to inspect intra-annual
patterns of desired variables. For example, the following shows the leaf
area for individuals of the three cohorts during the second year:
plot(fd$GrowthResults[[2]], "LeafArea", bySpecies = T)
Instead of examining year by year, it is possible to plot the whole
series of results by passing a fordyn object to the
plot() function:
plot(fd, "LeafArea")
We can also create interactive plots for particular steps using
function shinyplot(), e.g.:
shinyplot(fd$GrowthResults[[1]])Finally, calling function extract() will extract and
bind outputs for all the internal calls to function
growth():
## # A tibble: 3,650 × 51
## date PET Precipitation Rain Snow NetRain Snowmelt Infiltration
## <date> [L/m^2] [L/m^2] [L/m^2] [L/m^… [L/m^2] [L/m^2] [L/m^2]
## 1 2001-01-01 0.883 4.87 4.87 0 3.60 0 3.60
## 2 2001-01-02 1.64 2.50 2.50 0 1.25 0 1.25
## 3 2001-01-03 1.30 0 0 0 0 0 0
## 4 2001-01-04 0.569 5.80 5.80 0 4.54 0 4.54
## 5 2001-01-05 1.68 1.88 1.88 0 0.822 0 0.822
## 6 2001-01-06 1.21 13.4 13.4 0 11.9 0 11.9
## 7 2001-01-07 0.637 5.38 0 5.38 0 0 0
## 8 2001-01-08 0.832 0 0 0 0 0 0
## 9 2001-01-09 1.98 0 0 0 0 0 0
## 10 2001-01-10 0.829 5.12 5.12 0 3.85 5.38 9.23
## # ℹ 3,640 more rows
## # ℹ 43 more variables: InfiltrationExcess [L/m^2], SaturationExcess [L/m^2],
## # Runoff [L/m^2], DeepDrainage [L/m^2], CapillarityRise [L/m^2],
## # Evapotranspiration [L/m^2], Interception [L/m^2], SoilEvaporation [L/m^2],
## # HerbTranspiration [L/m^2], PlantExtraction [L/m^2], Transpiration [L/m^2],
## # HydraulicRedistribution [L/m^2], LAI [m^2/m^2], LAIherb [m^2/m^2],
## # LAIlive [m^2/m^2], LAIexpanded [m^2/m^2], LAIdead [m^2/m^2], Cm [L/m^2], …
Forest dynamics including management
The package allows including forest management in simulations of
forest dynamics. This is done in a very flexible manner, in the sense
that fordyn() allows the user to supply an arbitrary
function implementing a desired management strategy for the stand whose
dynamics are to be simulated. The package includes, however, an in-built
default function called defaultManagementFunction() along
with a flexible parameterization, a list with defaults provided by
function defaultManagementArguments().
Here we provide an example of simulations including forest management:
# Default arguments
args <- defaultManagementArguments()
# Here one can modify defaults before calling fordyn()
#
# Simulation
fd<-fordyn(exampleforest, examplesoil, SpParamsMED, meteo, control,
latitude = 41.82592, elevation = 100,
management_function = defaultManagementFunction,
management_args = args)## Simulating year 2001 (1/10): (a) Growth/mortality & management [thinning], (b) Regeneration nT = 2 nS = 2
## Simulating year 2002 (2/10): (a) Growth/mortality & management [none], (b) Regeneration nT = 2 nS = 2
## Simulating year 2003 (3/10): (a) Growth/mortality & management [none], (b) Regeneration nT = 2 nS = 2
## Simulating year 2004 (4/10): (a) Growth/mortality & management [none], (b) Regeneration nT = 2 nS = 2
## Simulating year 2005 (5/10): (a) Growth/mortality & management [none], (b) Regeneration nT = 2 nS = 2
## Simulating year 2006 (6/10): (a) Growth/mortality & management [none], (b) Regeneration nT = 2 nS = 2
## Simulating year 2007 (7/10): (a) Growth/mortality & management [none], (b) Regeneration nT = 2 nS = 2
## Simulating year 2008 (8/10): (a) Growth/mortality & management [none], (b) Regeneration nT = 2 nS = 2
## Simulating year 2009 (9/10): (a) Growth/mortality & management [none], (b) Regeneration nT = 2 nS = 2
## Simulating year 2010 (10/10): (a) Growth/mortality & management [none], (b) Regeneration nT = 2 nS = 2
When management is included in simulations, two additional tables are produced, corresponding to the trees and shrubs that were cut, e.g.:
fd$CutTreeTable## Step Year Cohort Species DBH Height N Z50 Z95 Z100
## 1 1 2001 T1_148 Pinus halepensis 37.66252 806.0409 9.368904 100 300 NA
## 2 1 2001 T2_168 Quercus ilex 14.70489 663.2652 383.667207 300 1000 NA
## Age ObsID
## 1 40 <NA>
## 2 24 <NA>
Management parameters were those of an irregular model with thinning interventions from ‘below’, indicating that smaller trees were to be cut earlier:
args$type## [1] "irregular"
args$thinning## [1] "below"
Note that in this example, there is resprouting of Quercus ilex after the thinning intervention, evidenced by the new cohort (T3_168) appearing in year 2001:
fd$TreeTable## Step Year Cohort Species DBH Height N Z50
## 1 0 NA T1_148 Pinus halepensis 37.550000 800.00000 168.0000 100.0000
## 2 0 NA T2_168 Quercus ilex 14.600000 660.00000 384.0000 300.0000
## 3 1 2001 T1_148 Pinus halepensis 37.662518 806.04095 158.3304 100.0000
## 4 1 2001 T3_168 Quercus ilex 1.000000 47.23629 3000.0000 300.0000
## 5 2 2002 T1_148 Pinus halepensis 37.779136 812.21649 158.1591 100.0000
## 6 2 2002 T3_168 Quercus ilex 1.130783 55.25316 2632.5399 300.0000
## 7 3 2003 T1_148 Pinus halepensis 37.898827 818.51566 157.9864 100.0000
## 8 3 2003 T3_168 Quercus ilex 1.242466 62.05837 2381.7149 300.0000
## 9 4 2004 T1_148 Pinus halepensis 38.018814 824.79674 157.8119 100.0000
## 10 4 2004 T3_168 Quercus ilex 1.353841 68.84259 2173.9745 300.0000
## 11 5 2005 T1_148 Pinus halepensis 38.138853 831.04708 157.6365 100.0000
## 12 5 2005 T3_168 Quercus ilex 1.466372 75.69700 1997.0597 300.0000
## 13 6 2006 T1_148 Pinus halepensis 38.258900 837.26439 157.4597 100.0000
## 14 6 2006 T3_168 Quercus ilex 1.579728 82.60212 1845.0721 300.0000
## 15 7 2007 T1_148 Pinus halepensis 38.378804 843.44101 157.2816 100.0000
## 16 7 2007 T3_168 Quercus ilex 1.693745 89.54970 1713.3211 300.0000
## 17 8 2008 T1_148 Pinus halepensis 38.498525 849.57517 157.1015 100.0000
## 18 8 2008 T3_168 Quercus ilex 1.808302 96.53536 1598.1683 300.0000
## 19 9 2009 T1_148 Pinus halepensis 38.618036 855.66585 156.9206 100.0000
## 20 9 2009 T2_168 Quercus ilex 1.767277 99.70784 1902.7552 309.5582
## 21 10 2010 T1_148 Pinus halepensis 38.733850 861.53672 156.7398 100.0000
## 22 10 2010 T2_168 Quercus ilex 1.880641 106.63345 1532.9035 309.5582
## Z95 Z100 Age ObsID
## 1 300.000 NA 40.00000 <NA>
## 2 1000.000 NA 24.00000 <NA>
## 3 300.000 NA 40.00000 <NA>
## 4 1000.000 NA 24.00000 <NA>
## 5 300.000 NA 41.00000 <NA>
## 6 1000.000 NA 24.00000 <NA>
## 7 300.000 NA 42.00000 <NA>
## 8 1000.000 NA 25.00000 <NA>
## 9 300.000 NA 43.00000 <NA>
## 10 1000.000 NA 26.00000 <NA>
## 11 300.000 NA 44.00000 <NA>
## 12 1000.000 NA 27.00000 <NA>
## 13 300.000 NA 45.00000 <NA>
## 14 1000.000 NA 28.00000 <NA>
## 15 300.000 NA 46.00000 <NA>
## 16 1000.000 NA 29.00000 <NA>
## 17 300.000 NA 47.00000 <NA>
## 18 1000.000 NA 30.00000 <NA>
## 19 300.000 NA 49.00000 <NA>
## 20 1274.641 NA 30.15539 <NA>
## 21 300.000 NA 49.00000 <NA>
## 22 1274.641 NA 30.15539 <NA>
References
- De Cáceres M, Molowny-Horas R, Cabon A, Martínez-Vilalta J, Mencuccini M, García-Valdés R, Nadal-Sala D, Sabaté S, Martin-StPaul N, Morin X, D’Adamo F, Batllori E, Améztegui A (2023) MEDFATE 2.9.3: A trait-enabled model to simulate Mediterranean forest function and dynamics at regional scales. Geoscientific Model Development 16: 3165-3201 (https://doi.org/10.5194/gmd-16-3165-2023).