
Forest dynamics
Miquel De Caceres
2026-09-14
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, (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.3673 25.14751 802.6528 37.59931
## 3 550.7312 25.25992 805.2975 37.64859
## 4 550.0917 25.37262 807.9395 37.69792
## 5 549.4470 25.48540 810.5746 37.74723
## 6 548.8007 25.59857 813.2082 37.79662
## 7 548.1510 25.71189 815.8383 37.84606
## 8 547.4979 25.82532 818.4644 37.89553
## 9 546.8395 25.93872 821.0864 37.94503
## 10 546.1795 26.05234 823.7061 37.99460
## 11 545.5197 26.16623 826.3204 38.04418
## QuadraticMeanTreeDiameter HartBeckingIndex ShrubCoverLive BasalAreaDead
## 1 24.02949 53.20353 3.750000 0.00000000
## 2 24.09806 53.05811 3.859594 0.03899665
## 3 24.16580 52.91440 3.921379 0.03938876
## 4 24.23373 52.77201 3.989613 0.03978145
## 5 24.30177 52.63130 4.061031 0.04028792
## 6 24.37000 52.49173 4.132921 0.04057763
## 7 24.43835 52.35351 4.205669 0.04098032
## 8 24.50680 52.21665 4.279827 0.04138608
## 9 24.57533 52.08123 4.355399 0.04190964
## 10 24.64397 51.94694 4.430820 0.04220704
## 11 24.71271 51.81390 4.507320 0.04238723
## ShrubCoverDead BasalAreaCut ShrubCoverCut
## 1 0.000000000 0 0
## 2 0.005832415 0 0
## 3 0.005974952 0 0
## 4 0.006073624 0 0
## 5 0.006197510 0 0
## 6 0.006290721 0 0
## 7 0.006401805 0 0
## 8 0.006514596 0 0
## 9 0.006647820 0 0
## 10 0.006745796 0 0
## 11 0.006824435 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.6997 18.620105
## 5 1 Quercus coccifera 1 NA NA
## 6 1 Quercus ilex 1 383.6676 6.527402
## 7 2 Pinus halepensis 1 167.3978 18.635324
## 8 2 Quercus coccifera 1 NA NA
## 9 2 Quercus ilex 1 383.3334 6.624600
## 10 3 Pinus halepensis 1 167.0942 18.650307
## 11 3 Quercus coccifera 1 NA NA
## 12 3 Quercus ilex 1 382.9975 6.722314
## 13 4 Pinus halepensis 1 166.7881 18.664877
## 14 4 Quercus coccifera 1 NA NA
## 15 4 Quercus ilex 1 382.6589 6.820526
## 16 5 Pinus halepensis 1 166.4812 18.679319
## 17 5 Quercus coccifera 1 NA NA
## 18 5 Quercus ilex 1 382.3195 6.919250
## 19 6 Pinus halepensis 1 166.1726 18.693502
## 20 6 Quercus coccifera 1 NA NA
## 21 6 Quercus ilex 1 381.9784 7.018383
## 22 7 Pinus halepensis 1 165.8624 18.707414
## 23 7 Quercus coccifera 1 NA NA
## 24 7 Quercus ilex 1 381.6355 7.117903
## 25 8 Pinus halepensis 1 165.5496 18.720950
## 26 8 Quercus coccifera 1 NA NA
## 27 8 Quercus ilex 1 381.2899 7.217769
## 28 9 Pinus halepensis 1 165.2361 18.734343
## 29 9 Quercus coccifera 1 NA NA
## 30 9 Quercus ilex 1 380.9434 7.318000
## 31 10 Pinus halepensis 1 164.9226 18.747629
## 32 10 Quercus coccifera 1 NA NA
## 33 10 Quercus ilex 1 380.5971 7.418597
## 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.033341011 NA 0 NA
## 5 3.859594 NA 0.005832415 NA 0
## 6 NA 0.005655639 NA 0 NA
## 7 NA 0.033613747 NA 0 NA
## 8 3.921379 NA 0.005974952 NA 0
## 9 NA 0.005775013 NA 0 NA
## 10 NA 0.033885722 NA 0 NA
## 11 3.989613 NA 0.006073624 NA 0
## 12 NA 0.005895723 NA 0 NA
## 13 NA 0.034253231 NA 0 NA
## 14 4.061031 NA 0.006197510 NA 0
## 15 NA 0.006034685 NA 0 NA
## 16 NA 0.034435265 NA 0 NA
## 17 4.132921 NA 0.006290721 NA 0
## 18 NA 0.006142369 NA 0 NA
## 19 NA 0.034712191 NA 0 NA
## 20 4.205669 NA 0.006401805 NA 0
## 21 NA 0.006268125 NA 0 NA
## 22 NA 0.034990587 NA 0 NA
## 23 4.279827 NA 0.006514596 NA 0
## 24 NA 0.006395493 NA 0 NA
## 25 NA 0.035367260 NA 0 NA
## 26 4.355399 NA 0.006647820 NA 0
## 27 NA 0.006542380 NA 0 NA
## 28 NA 0.035551952 NA 0 NA
## 29 4.430820 NA 0.006745796 NA 0
## 30 NA 0.006655085 NA 0 NA
## 31 NA 0.035637330 NA 0 NA
## 32 4.507320 NA 0.006824435 NA 0
## 33 NA 0.006749904 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_158 Pinus halepensis 37.55000 800.0000 168.0000 100 300 NA
## 2 0 NA T2_179 Quercus ilex 14.60000 660.0000 384.0000 300 1000 NA
## 3 1 2001 T1_158 Pinus halepensis 37.59931 802.6528 167.6997 100 300 NA
## 4 1 2001 T2_179 Quercus ilex 14.71796 661.8168 383.6676 300 1000 NA
## 5 2 2002 T1_158 Pinus halepensis 37.64859 805.2975 167.3978 100 300 NA
## 6 2 2002 T2_179 Quercus ilex 14.83360 663.5916 383.3334 300 1000 NA
## 7 3 2003 T1_158 Pinus halepensis 37.69792 807.9395 167.0942 100 300 NA
## 8 3 2003 T2_179 Quercus ilex 14.94915 665.3627 382.9975 300 1000 NA
## 9 4 2004 T1_158 Pinus halepensis 37.74723 810.5746 166.7881 100 300 NA
## 10 4 2004 T2_179 Quercus ilex 15.06462 667.1305 382.6589 300 1000 NA
## 11 5 2005 T1_158 Pinus halepensis 37.79662 813.2082 166.4812 100 300 NA
## 12 5 2005 T2_179 Quercus ilex 15.17998 668.8950 382.3195 300 1000 NA
## 13 6 2006 T1_158 Pinus halepensis 37.84606 815.8383 166.1726 100 300 NA
## 14 6 2006 T2_179 Quercus ilex 15.29517 670.6544 381.9784 300 1000 NA
## 15 7 2007 T1_158 Pinus halepensis 37.89553 818.4644 165.8624 100 300 NA
## 16 7 2007 T2_179 Quercus ilex 15.41014 672.4086 381.6355 300 1000 NA
## 17 8 2008 T1_158 Pinus halepensis 37.94503 821.0864 165.5496 100 300 NA
## 18 8 2008 T2_179 Quercus ilex 15.52490 674.1577 381.2899 300 1000 NA
## 19 9 2009 T1_158 Pinus halepensis 37.99460 823.7061 165.2361 100 300 NA
## 20 9 2009 T2_179 Quercus ilex 15.63943 675.9009 380.9434 300 1000 NA
## 21 10 2010 T1_158 Pinus halepensis 38.04418 826.3204 164.9226 100 300 NA
## 22 10 2010 T2_179 Quercus ilex 15.75372 677.6379 380.5971 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_158 Pinus halepensis 37.59931 802.6528 0.3002818 0
## 2 1 2001 T2_179 Quercus ilex 14.71796 661.8168 0.3324271 0
## 3 2 2002 T1_158 Pinus halepensis 37.64859 805.2975 0.3019463 0
## 4 2 2002 T2_179 Quercus ilex 14.83360 663.5916 0.3341719 0
## 5 3 2003 T1_158 Pinus halepensis 37.69792 807.9395 0.3035932 0
## 6 3 2003 T2_179 Quercus ilex 14.94915 665.3627 0.3359033 0
## 7 4 2004 T1_158 Pinus halepensis 37.74723 810.5746 0.3060846 0
## 8 4 2004 T2_179 Quercus ilex 15.06462 667.1305 0.3385701 0
## 9 5 2005 T1_158 Pinus halepensis 37.79662 813.2082 0.3069075 0
## 10 5 2005 T2_179 Quercus ilex 15.17998 668.8950 0.3393934 0
## 11 6 2006 T1_158 Pinus halepensis 37.84606 815.8383 0.3085680 0
## 12 6 2006 T2_179 Quercus ilex 15.29517 670.6544 0.3411453 0
## 13 7 2007 T1_158 Pinus halepensis 37.89553 818.4644 0.3102311 0
## 14 7 2007 T2_179 Quercus ilex 15.41014 672.4086 0.3429026 0
## 15 8 2008 T1_158 Pinus halepensis 37.94503 821.0864 0.3127532 0
## 16 8 2008 T2_179 Quercus ilex 15.52490 674.1577 0.3456114 0
## 17 9 2009 T1_158 Pinus halepensis 37.99460 823.7061 0.3135666 0
## 18 9 2009 T2_179 Quercus ilex 15.63943 675.9009 0.3464350 0
## 19 10 2010 T1_158 Pinus halepensis 38.04418 826.3204 0.3135010 0
## 20 10 2010 T2_179 Quercus ilex 15.75372 677.6379 0.3462911 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 × 53
## 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.66 0 3.66
## 2 2001-01-02 1.64 2.50 2.50 0 1.30 0 1.30
## 3 2001-01-03 1.30 0 0 0 0 0 0
## 4 2001-01-04 0.569 5.80 5.80 0 4.60 0 4.60
## 5 2001-01-05 1.68 1.88 1.88 0 0.862 0 0.862
## 6 2001-01-06 1.21 13.4 13.4 0 12.0 0 12.0
## 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.91 5.38 9.28
## # ℹ 3,640 more rows
## # ℹ 45 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],
## # MistletoeTranspiration [L/m^2], HydraulicRedistribution [L/m^2],
## # LAI [m^2/m^2], LAIherb [m^2/m^2], LAIlive [m^2/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_158 Pinus halepensis 37.59931 802.6528 9.158143 100 300 NA
## 2 1 2001 T2_179 Quercus ilex 14.71796 661.8168 383.667573 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 Z95 Z100
## 1 0 NA T1_158 Pinus halepensis 37.55000 800.00000 168.0000 100 300 NA
## 2 0 NA T2_179 Quercus ilex 14.60000 660.00000 384.0000 300 1000 NA
## 3 1 2001 T1_158 Pinus halepensis 37.59931 802.65283 158.5416 100 300 NA
## 4 1 2001 T3_179 Quercus ilex 1.00000 47.23629 3000.0000 300 1000 NA
## 5 2 2002 T1_158 Pinus halepensis 37.71656 808.86594 158.3707 100 300 NA
## 6 2 2002 T3_179 Quercus ilex 1.00000 47.23629 2998.2956 300 1000 NA
## 7 3 2003 T1_158 Pinus halepensis 37.80703 813.63837 158.1989 100 300 NA
## 8 3 2003 T3_179 Quercus ilex 1.00000 47.23629 2996.5831 300 1000 NA
## 9 4 2004 T1_158 Pinus halepensis 37.85620 816.22405 158.0262 100 300 NA
## 10 4 2004 T3_179 Quercus ilex 1.00000 47.23629 2994.8619 300 1000 NA
## 11 5 2005 T1_158 Pinus halepensis 37.90537 818.80343 157.8538 100 300 NA
## 12 5 2005 T3_179 Quercus ilex 1.00000 47.23629 2993.1435 300 1000 NA
## 13 6 2006 T1_158 Pinus halepensis 37.95455 821.37809 157.6813 100 300 NA
## 14 6 2006 T3_179 Quercus ilex 1.00000 47.23629 2991.4231 300 1000 NA
## 15 7 2007 T1_158 Pinus halepensis 38.00377 823.94880 157.5086 100 300 NA
## 16 7 2007 T3_179 Quercus ilex 1.00000 47.23629 2989.7009 300 1000 NA
## 17 8 2008 T1_158 Pinus halepensis 38.05290 826.50895 157.3352 100 300 NA
## 18 8 2008 T3_179 Quercus ilex 1.00000 47.23629 2987.9719 300 1000 NA
## 19 9 2009 T1_158 Pinus halepensis 38.10207 829.06562 157.1622 100 300 NA
## 20 9 2009 T3_179 Quercus ilex 1.00000 47.23629 2986.2459 300 1000 NA
## 21 10 2010 T1_158 Pinus halepensis 38.15125 831.61694 156.9900 100 300 NA
## 22 10 2010 T3_179 Quercus ilex 1.00000 47.23629 2984.5274 300 1000 NA
## Age ObsID
## 1 40 <NA>
## 2 24 <NA>
## 3 40 NA
## 4 24 <NA>
## 5 41 NA
## 6 24 NA
## 7 42 NA
## 8 25 NA
## 9 43 NA
## 10 26 NA
## 11 44 NA
## 12 27 NA
## 13 45 NA
## 14 28 NA
## 15 46 NA
## 16 29 NA
## 17 47 NA
## 18 30 NA
## 19 48 NA
## 20 31 NA
## 21 49 NA
## 22 32 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).