Skip to contents

Introduction

Package forestindicators is meant to assist the estimation of indicators (metrics) for forest stands, either derived from forest inventory data or forest model simulations. Most often, those indicators will estimate the provision of forest ecosystem services, but the package can be understood more generally as a platform to estimate forest metrics.

Installation

Package forestindicators can be installed from GitHub using:

remotes::install_github("emf-creaf/forestindicators")

Examples

Step 1: Choose target indicators and examine their requirements

The first step is to decide which indicators are to be estimated. You can examine the names of the indicators in the package that could be estimated with your data by calling function available_indicators():

library(forestindicators)
available_indicators(plant_dynamic_input = example_plant_dynamic_input)
#>  [1] "cut_tree_basal_area"          "cut_tree_density"            
#>  [3] "dead_tree_basal_area"         "dead_tree_density"           
#>  [5] "density_dead_wood"            "dominant_tree_diameter"      
#>  [7] "dominant_tree_height"         "hart_becking_index"          
#>  [9] "live_tree_basal_area"         "live_tree_biomass_stock"     
#> [11] "live_tree_carbon_change_rate" "live_tree_carbon_stock"      
#> [13] "live_tree_density"            "live_tree_volume_stock"      
#> [15] "mean_tree_height"             "quadratic_mean_tree_diameter"
#> [17] "timber_harvest_carbon_rate"   "timber_harvest_volume"       
#> [19] "timber_harvest_volume_rate"

We may need to check which data inputs are required, their units, etc. for a particular indicator. We can find this information using function show_information(), for example:

show_information("live_tree_basal_area")
#> A) DEFINITION
#> 
#>    Name:  live_tree_basal_area 
#>    Estimation:  The sum of tree sections weighted by tree density of living trees larger than a pre-specified minimum parameter 
#>    Interpretation:  Basal area of the stand, focusing of living trees 
#>    Output units:  m2/ha 
#> 
#> 
#> B) DATA INPUTS
#> 
#> B.1) Stand-level static data: <NONE>
#> B.2) Stand-level dynamic data: <NONE>
#> B.3) Plant-level static data: <NONE>
#> B.4) Plant-level dynamic data:
#> 
#>  variable      type units
#>       dbh   numeric    cm
#>         n   numeric  ha-1
#>     state character  <NA>
#>                                                   description
#>                                     diameter at breast height
#>                                                       density
#>  state of the cohort, tree, … can be 'live', 'cut', or 'dead'
#> 
#> 
#> C) ADDITIONAL PARAMETERS
#> 
#>     parameter default_value
#>  min_tree_dbh           7.5
#>                                                                          description
#>  Minimum  tree diameter to be included in the estimation of basal area of live trees

Step 2: Assemble inputs and define values for additional parameters

Once the requested format and content of inputs is know, it is the responsibility of the user to build the necessary data frames to be used as inputs. Variable names and types should follow the guidelines of show_information(). Variable units can be specified using package units (and in this case unit correspondence will be checked), but they are not compulsory.

We will sometimes need to define additional parameters to fine-tune the estimation of indicators. For that, users should define a named list where each element corresponds to a different indicator and, in turn, contains a named list of parameters, e.g.:

params <- list(live_tree_basal_area = list(min_dbh = 8),
               live_tree_density = list(min_dbh = 8))

Step 3: Call general estimation function

Once we have our inputs ready, the indicators are estimated by calling function estimate_indicators() as follows:

res <- estimate_indicators(indicators = c("live_tree_basal_area", "live_tree_density"),
                           plant_dynamic_input = example_plant_dynamic_input,
                           additional_params = params,
                           include_units = TRUE)

The result of the estimation is the following:

res
#> # A tibble: 6 × 4
#>   id_stand date       live_tree_basal_area live_tree_density
#>   <chr>    <date>                 [m^2/ha]            [1/ha]
#> 1 080001   2023-01-01                107.               1488
#> 2 080001   2024-01-01                119.               1891
#> 3 080001   2025-01-01                169.               1909
#> 4 080005   2023-01-01                162.               1311
#> 5 080005   2024-01-01                 24.3               653
#> 6 080005   2025-01-01                240.               1949

Parameter include_units was set to TRUE to include indicator output units in the resulting tibble.

Documentation and training

Two vignettes are included here illustrate:

  1. How to use the R package to estimate indicators
  2. How to define new indicators.

Volume/biomass allometric functions

Some of the indicators require the use of allometric relationships for volume or biomass estimation. Users of forestindicators can define their own functions for volume/biomass estimation and provide them to calls of estimate_indicators(). Alternatively, they can resort on additional packages and write wrapper functions. Even though it is not a strict requirement for forestindicators, applications of the package within Spain will be most useful if package IFNallometry is available, because it contains wrapper functions for volume or biomass estimation, which can be readily used when calculating forest indicators. Package IFNallometry is also installed from GitHub using:

remotes::install_github("emf-creaf/IFNallometry")

Authorship

Package forestindicators is developed and maintained by the Ecosystem Modelling Facility unit at CREAF (in Spain) and the Landscape Modelling Group at CTFC (in Spain).

Funding

  • Research project: Improving the modelling of key forest dynamic processes to forecast long-term changes in Mediterranean forests under climate change (IMPROMED). Financial Entity: Ministerio de Ciencia e Innovación (PID2023-152644NB-I00). Duration from: 01/09/2024 to: 31/08/2025. PI: Miquel De Cáceres/Josep Mª Espelta.

  • Research project: Bosques del siglo XXI, empoderados, innovadores y con emprendimiento (PRISMA). Financial Entity: Fundación Biodiversidad. Duration from: 01/01/2024 to: 31/12/2025. Beneficiary: Núria Aquilué (CTFC).