Travaux Pratiques LoggingLab

Un outil R permettant de simuler l’exploitation forestière sélective à impact réduit dans les forêts tropicales à l’aide de données d’inventaire forestier

Sylvain Schmitt

CIRAD

Oct 27, 2025

Introduction

Le package LoggingLab de R, développé dans le contexte de l’exploitation forestière sélective en Guyane française, permet de simuler chaque étape de l’exploitation forestière sélective de manière spatialement explicite. Cela permet d’évaluer et de comparer avec précision les effets de différentes pratiques d’exploitation forestière sur l’écosystème. L’objectif de cet atelier pratique sera de présenter et d’utiliser ensemble les fonctions générales de ce package.

Que fait l’outil ?

Simulation de coupe sélective à partir des données d’inventaire forestier.

Que fait l’outil ?

Les étapes sont les suivantes :

  • préparation des données
  • pistes principales
  • zones exploitables
  • sélection des arbres
  • pistes de débardage
  • abattage des arbres
  • quantification des volumes

Instalation du package

Nous utiliserons le package LoggingLab pour R (Badouard et al. 2024) afin de simuler l’exploitation forestière à impact réduit dans une forêt tropicale. Le package doit être installé à partir de son dépôt sur Github, car il n’est pas encore disponible sur CRAN.

install.packages(c("devtools", "tidyverse", "sf", "terra", "tidyterra"))
devtools::install_github("VincyaneBadouard/LoggingLab")

Autres outils R

Nous utiliserons tidyverse pour manipuler des tableaux et créer des graphiques, sf pour manipuler des objets spatiaux et terra et tidyterra pour manipuler des données raster.

library(LoggingLab)
library(tidyverse)
library(sf)
library(terra)
library(tidyterra)
theme_set(theme_bw())

Entrées

Les données et paramètres nécessaires pour utiliser LoggingLab sont les suivants :

  • Inventaire : inventaires des arbres de la parcelle
  • Masque de la parcelle : les limites de la zone à exploiter
  • Données sur les espèces : données spécifiques à chaque espèce
  • Allométrie volumétrique : les paramètres d’allométrie à calculer

Inventaire

L’inventaire doit contenir le diamètre, l’identification botanique et les coordonnées de tous les arbres dont le diamètre est supérieur à une certaine valeur (généralement DBH >= 10 cm).

Pour l’instant, le simulateur fonctionne sur de petites parcelles (quelques hectares) et ne représente pas l’ensemble des opérations d’une concession, car il se concentre sur la quantification détaillée des dommages post-opérationnels conformément aux pratiques.

Inventaire

Les colonnes requises par LoggingLab sont :

  • Forest: nom de la forêt
  • idTree: identifiant unique pour chaque arbre
  • Xutm et Yutm: coordonnées de chaque arbre
  • CodeAlive: arbre vivant ou mort
  • Family, Genus, Species: données botaniques
  • CircCorr: circonférence de chaque arbre

Inventaire

L’inventaire de la parcelle 6 de Paracou est disponible dans LoggingLab.

head(Paracou6_2016)
   Forest Plot PlotArea SubPlot idTree Protocole Xfield Yfield     Xutm
1 Paracou    6     6.25       1 100726   Guyafor   13.5  201.0 286420.1
2 Paracou    6     6.25       1 100729   Guyafor   19.0  196.5 286426.4
3 Paracou    6     6.25       1 100739   Guyafor   13.5  182.0 286424.8
4 Paracou    6     6.25       1 100741   Guyafor    9.5  179.5 286421.6
5 Paracou    6     6.25       1 100747   Guyafor   14.5  167.5 286429.3
6 Paracou    6     6.25       1 100750   Guyafor   18.0  169.0 286432.3
      Yutm UTMZone      Lat       Lon           Family    Genus     Species
1 583135.4      22 5.272669 -52.92713       Annonaceae  Oxandra    asbeckii
2 583132.2      22 5.272642 -52.92707         Fabaceae   Eperua grandiflora
3 583116.8      22 5.272502 -52.92709         Fabaceae    Bocoa prouacensis
4 583113.4      22 5.272471 -52.92712     Celastraceae Maytenus    sp.1-CAY
5 583102.9      22 5.272376 -52.92705 Chrysobalanaceae  Licania membranacea
6 583105.2      22 5.272397 -52.92702 Chrysobalanaceae  Licania   canescens
  BotaSource BotaCertainty           VernName CensusYear CensusDateCertainty
1       Bota             4             muamba       2016                TRUE
2       Bota             4 Eperua grandiflora       2016                TRUE
3       Bota             4               boco       2016                TRUE
4       Bota             3         lebi tongo       2016                TRUE
5       Bota             4         santi koko       2016                TRUE
6       Bota             4         santi koko       2016                TRUE
  CodeAlive MeasCode  Circ CircCorr CorrCode
1      TRUE        0  39.5     39.5        0
2      TRUE        0 114.0    114.0        0
3      TRUE        0  48.0     48.0        0
4      TRUE        0 123.0    123.0        0
5      TRUE        0  54.0     54.0        0
6      TRUE        0  88.0     88.0        0

Inventaire

Nous pouvons dresser une carte de la parcelle 6 de Paraou en 2016.

Paracou6_2016 %>%   st_as_sf(coords = c("Xutm", "Yutm")) %>% 
  ggplot(aes(color = paste(Genus, Species), size = CircCorr)) + geom_sf() + 
  scale_size_continuous(range = c(.25, 3)) + theme(legend.position = "none")

Masque de la parcelle

Le masque de la parcelle définit les limites de la zone à prendre en compte, c’est-à-dire les limites de la parcelle. Le masque de la parcelle est utilisé par LoggingLab pour valider l’inventaire et définir les zones exploitables.

Masque de la parcelle

Le masque de la parcelle 6 de Paracou est disponible dans LoggingLab.

ggplot(st_as_sf(PlotMask)) + geom_sf()

Données des espèces

SpeciesCriteria contient des données spécifiques à chaque espèce. Les colonnes sont les suivantes :

  • CommercialLevel: Niveau d’intérêt économique
  • MinFD: Diamètre minimal de coupe, en centimètres
  • UpMinFD: Diamètre minimal de coupe amélioré (en cas de peuplement excessivement riche), en centimètres
  • MaxFD: Diamètre maximal de coupe, en centimètres

Données des espèces

Les données relatives aux espèces de la Guyane française sont disponibles dans LoggingLab.

head(SpeciesCriteria)
# A tibble: 6 × 8
  CommercialName  Genus  Species CommercialLevel MinFD UpMinFD MaxFD Aggregative
  <chr>           <chr>  <chr>             <dbl> <dbl>   <dbl> <dbl> <lgl>      
1 st martin rouge Andira spp                   2    55      60   120 FALSE      
2 bamba apici     Aniba  spp                   2    55      60   120 FALSE      
3 bagasse         Bagas… guiane…               2    55      60   120 FALSE      
4 assao           Baliz… pedice…               2    55      60   120 FALSE      
5 dokali          Brosi… parina…               2    55      60   120 FALSE      
6 satiné rubané   Brosi… rubesc…               2    55      60   120 FALSE      

Allométries volumétriques

LoggingLab utilise des allométries volumétriques dont les paramètres varient en fonction de la région exploitée. Par exemple, pour le volume des arbres, LoggingLab utilise :

\[Volume = aCoef + bCoef \times DBH^2\]

Avec \(Volume\) le volume des arbres et \(DBH\) le diamètre des arbres.

Allométries volumétriques

Les allométries volumétriques pour différentes régions de la Guyane française sont disponibles dans LoggingLab.

head(ForestZoneVolumeParametersTable)
           Forest    Zone     aCoef    bCoef
1       Acarouany    West -0.061776  8.83580
2           BAFOG    West -0.061776  8.83580
3             Kaw    East -0.084516 10.46132
4         Laussat    West -0.061776  8.83580
5  Montagne_Plomb Central -0.035829  8.76340
6 Montagne_Tortue    East -0.084516 10.46132

D’autres allométries peuvent être modifiées, comme les allométries de la courrone

Simulation d’exploitation

Maintenant, nous allons exécuter une simulation d’exploration étape par étape à l’aide de LoggingLab.

Valider l’inventaire

Les arbres qui ne se trouvent pas dans la zone enregistrée ou qui sont trop petits pour être pris en compte sont exclus.

inventory <- inventorycheckformat(Paracou6_2016)
inventory <- cleaninventory(inventory, PlotMask)

inventorycheckformat vérifie que les données d’inventaire reçues sont compatibles avec LoggingLab, tandis que cleaninventory nettoie les données d’inventaire.

Valider l’inventaire

Comme les données étaient déjà nettoyées, il n’y a pas eu beaucoup de modifications.

inventory %>% 
  st_as_sf(coords = c("Xutm", "Yutm")) %>% 
  ggplot(aes(color = paste(Genus, Species), size = CircCorr)) + geom_sf() + 
  scale_size_continuous(range = c(.25, 3)) + theme(legend.position = "none")

Calculer les dimensions de l’arbre

Ensuite, addtreedim calcule les dimensions de l’arbre (hauteur de l’arbre, tronc et couronne, diamètre de la couronne, volume exploitable, densité du bois et biomasse).

inventory <- addtreedim(inventory, ForestZoneVolumeParametersTable)
head(select(inventory, TreeHarvestableVolume, TrunkHeight, TreeHeight, CrownHeight,
            CrownDiameter, WoodDensity, AGB))
  TreeHarvestableVolume TrunkHeight TreeHeight CrownHeight CrownDiameter
1             0.1027084    8.272213   14.65595    6.383735      2.207900
2             1.1181093   10.811462   27.40065   16.589191      8.260220
3             0.1687473    9.203739   16.78716    7.583417      3.234360
4             1.3075022   10.860306   28.35561   17.495301      8.566460
5             0.2230879    9.613873   18.14034    8.526472      3.389036
6             0.6517747   10.576502   24.12416   13.547658      7.042431
  WoodDensity       AGB
1   0.7700000 0.1003184
2   0.7040000 1.3401159
3   1.0536667 0.2275608
4   0.7131944 1.6277207
5   0.8800000 0.2590981
6   0.8800000 0.8877632

Calculer les dimensions de l’arbre

Par exemple, nous pouvons élaborer une carte du volume exploitable.

inventory %>% st_as_sf(coords = c("Xutm", "Yutm")) %>% 
  ggplot() + geom_sf(aes(col = AGB, size = CircCorr)) + 
  scale_color_viridis_c("Biomasse [t]", trans = "log", labels = ~round(., 1)) +
  scale_size_continuous("Circunférênce [cm]", range = c(.25, 3))

Pistes à camion

Comme nous simulons uniquement l’exploitation sur quelques hectares, nous ne simulons pas les pistes à camion. Mais nous avons besoin de leur emplacement pour simuler les pistes de débardage.

La fonction maintrailextract génère les pistes à camion de la zone exploitée à l’aide des bords du masque de la parcelle.

Pistes à camion

MainTrails <- maintrailextract(DTMParacou)
ggplot(MainTrails) +
  geom_sf(linewidth = 4)

Zones exploitables

Ensuite, nous devons définir les zones de récolte et les zones accessibles aux machines à l’intérieur de la parcelle. Par défaut, une unité de travail est :

  • avec une pente inférieure à 27 %
  • en évitant les sources et les cours d’eau (zone tampon de 30 m)

Zones exploitables

Nous utilisons harvestableareadefinition avec une option winching définie sur 2, c’est-à-dire que le grapin est utilisé si possible (extension de 6 m) et que le câble est utilisé jusqu’à 40 m.

HarvestableArea <- harvestableareadefinition(
  topography = DTMParacou,
  creekverticaldistance = CreekDistances$distvert,
  creekhorizontaldistance = CreekDistances$disthorz,
  maintrails = MainTrails,
  plotmask = PlotMask,
  scenario = "manual",
  winching = "2",
  advancedloggingparameters = loggingparameters()
)

Zones exploitables

Les zones vertes foncées peuvent être récoltées au grapin et les zones vertes claires au câble. Les autres zones ne peuvent pas être récoltées.

(base <- ggplot() + geom_spatraster(data = rast(DTMParacou), alpha = .5) +
    scale_fill_gradient(low = "darkblue", high = "white", "Altitude [m]", na.value = NA) + 
    geom_sf(data = HarvestableArea$HarvestablePolygons, fill = "darkgreen", alpha = 0.3) +
    geom_sf(data = HarvestableArea$MachinePolygons, fill = "darkgreen", alpha = 0.7))

Sélection des arbres

Ensuite, nous sélectionnons les arbres à abattre, les arbres futurs et les arbres de réserve. Les arbres peuvent être abattus si :

  • Ils appartiennent à des espèces de première catégorie économique ou plus, s’il y a diversification

  • Le DBH se situe entre le MinFD et le MaxFD

  • Elles sont situées sur des pentes < 22 %

  • Ils sont hors des psites principales

Les arbres à abattre sont choisis par ordre décroissant de volume, jusqu’à ce que le volume cible soit atteint.

Les arbres futurs sont ceux qui seront exploités lors de la prochaine campagne. Les arbres de réserve sont conservés comme arbres semenciers pour la régénération naturelle.

Sélection des arbres

La fonction treeselection sélectionne les arbres selon les critères précédents.

inventory <- inventory %>% 
  commercialcriteriajoin(SpeciesCriteria)
TreeSelection <- inventory %>% 
  treeselection(
    topography = DTMParacou,
    speciescriteria = SpeciesCriteria,
    scenario ="manual", 
    objective = 20,
    fuel = "0",
    diversification = TRUE, 
    winching = "2",
    harvestablearea = HarvestableArea$HarvestableArea,
    plotslope = HarvestableArea$PlotSlope,
    maintrails = MainTrails,
    harvestablepolygons = HarvestableArea$HarvestablePolygons,
    advancedloggingparameters = loggingparameters()
  )
As the harvestable volume (= 149.7m^3)
                was higher (by 74.8m^3)
                than the objective volume, the Minimum Falling Diameter (MinFD) of the 1st and 2nd economic ranks species
                  were increased to UpMinFD. The objective volume has now been reached.
crs <- st_crs(HarvestableArea$HarvestablePolygons)

Sélection des arbres

Nous pouvons cartographier les arbres exploitables, sélectionnés, futurs et de réserve.

base + geom_sf(data = TreeSelection$HarvestableTreesPoints, aes(colour = "Harvestable")) +
  geom_sf(data = TreeSelection$SelectedTreesPoints, aes(colour = "Selected")) +
  geom_sf(data = TreeSelection$FutureTreesPoints, aes(colour = "Future")) +
  geom_sf(data = TreeSelection$ReserveTreesPoints, aes(colour = "Reserve"))

Pistes de débardage

Les pistes de débardage permettent aux arbres sélectionnés d’être récoltés par les machines choisies. L’itinéraire est optimisé pour réduire la distance parcourue, en respectant les contraintes topographiques et en évitant les arbres à protéger. Elles ont une largeur de 4 mètres, avec une pente maximale de 22 % et une inclinaison latérale maximale de 4 %. Elles évitent les arbres à abattre, les grands arbres (>50 cm) et les arbres de réserve.

Pistes de débardage

secondstrailsopening permet de définir les pistes de débardage.

ScndTrailOutputs <- secondtrailsopening(
  topography = DTMParacou,
  plotmask = PlotMask,
  maintrails = MainTrails,
  plotslope = HarvestableArea$PlotSlope,
  harvestablepolygons = HarvestableArea$HarvestablePolygons,
  machinepolygons = HarvestableArea$MachinePolygons,
  treeselectionoutputs = TreeSelection,
  scenario = "manual",
  winching = "2",
  fuel = "0",
  advancedloggingparameters = loggingparameters()
)
inventory <- ScndTrailOutputs$inventory

⚠️ Cette étape peut prendre un certain temps.

Pistes de débardage

Nous pouvons cartographier les psites de débardage avec les arbres sélectionnés.

base + geom_sf(data = st_as_sf(SecondaryTrails$SmoothedTrails)) +
  geom_sf(data = TreeSelection$SelectedTreesPoints, aes(colour = "Selected"))

Abattage d’arbres

Ensuite, nous simulons la coupe de l’arbre. La coupe de l’arbre crée un arbre au sol, dont les dimensions sont calculées à l’aide d’allométries spécifiques.

La coupe directionnelle vise à orienter la chute de l’arbre, avec le pied à un angle par rapport au chemin, et en évitant les arbres à protéger. Mais la coupe directionnelle peut échouer (dans 40 % des cas) !

Abattage d’arbres

treefelling permet de simuler la coupe d’arbres.

inventory <- inventory %>% 
  treefelling(
    scenario = "manual", 
    fuel = "0",
    winching = "2", 
    directionalfelling = "2",
    maintrailsaccess = ScndTrailOutputs$MainTrailsAccess,
    scndtrail = ScndTrailOutputs$SmoothedTrails,
    advancedloggingparameters = loggingparameters()
  )

Abattage d’arbres

Nous pouvons cartographier les arbres au sol.

FelledTrees <- getgeometry(inventory, TreePolygon) %>% st_set_crs(crs)
base + geom_sf(data = st_as_sf(SecondaryTrails$SmoothedTrails)) + geom_sf(data = FelledTrees, fill = "lightpink")

Quantification des volumes

Enfin, nous pouvons quantifier le volume de bois récolté à partir d’arbres sains utilisés pour la production de bois avec timberharvestedvolume.

TimberV <- timberharvestedvolume(
  inventory, 
  scenario = "manual", 
  fuel = "0",
  advancedloggingparameters = loggingparameters()
)
TimberV$TimberLoggedVolume
[1] 74.76017

Quantification des volumes

Les détails de la production par espèce figurent dans l’inventaire.

TimberV$inventory %>% 
  filter(DeathCause == "cut") %>% 
  group_by(CommercialName) %>% 
  summarise(
    trees_n = n(), 
    volume = sum(TimberLoggedVolume), 
    CommercialLevel = unique(CommercialLevel)
  )
# A tibble: 5 × 4
  CommercialName trees_n volume CommercialLevel
  <chr>            <int>  <dbl>           <dbl>
1 chawari              1   4.11               2
2 grignon franc        2  11.4                1
3 maho noir            3  12.3                2
4 wapa                 8  34.5                2
5 wapa courbaril       3  12.4                2

Quantification des volumes

Mais surtout, nous pouvons quantifier la biomasse des dommages causés par type de mortalité.

TimberV$inventory %>% 
  group_by(DeathCause) %>% 
  mutate(lost_agb = ifelse(DeathCause == "cut", 
                           AGB - TimberLoggedVolume * WoodDensity, 
                           AGB)) %>% 
  summarise(AGB = sum(AGB) / HarvestableArea$HarvestableArea) %>% 
  na.omit() 
# A tibble: 3 × 2
  DeathCause    AGB
  <chr>       <dbl>
1 2ndtrail    19.6 
2 cut         29.0 
3 treefall2nd  7.83

Pour en savoir plus

Quelques informations supplémentaires pour ceux qui souhaitent aller plus loin avec LoggingLab.

Une seule simulation

Toutes les étapes de simulation peuvent être regroupées dans une seule fonction afin de gagner du temps.

Rslt <- loggingsimulation1(
  Paracou6_2016,
  plotmask = PlotMask, 
  topography = DTMParacou,
  creekverticaldistance = CreekDistances$distvert,
  creekhorizontaldistance = CreekDistances$disthorz,
  speciescriteria = SpeciesCriteria,
  volumeparameters = ForestZoneVolumeParametersTable,
  scenario = "manual",
  objective = 20,
  fuel = "0", 
  winching = "2", 
  directionalfelling = "2", 
  diversification = TRUE, 
  crowndiameterparameters = ParamCrownDiameterAllometry,
  advancedloggingparameters = loggingparameters()
)

Plusieurs simulations peuvent être exécutées par la fonction loggingsimulation() afin de prendre en compte la stochasticité avec l’argument iter (nombre de simulations) et cores (nombre de cœurs de processeur utilisés pour effectuer des calculs en parallèle).

Résultats

loggingsummary1 renvoie un résumé des résultats de la fonction de simulation.

loggingsummary1(Rslt)
inventory : Paracou6_2016 
scenario : manual 
objective : 20 m3/harvestable ha
fuel : 0 
diversification : TRUE 
winching : 2 
directionalfelling : 2 
specieslax : FALSE 
objectivelax : FALSE 
Harvestable area : 3.75 ha
Objective volume : 74.9 m3
Initial harvestable volume : 169.5 m3,  45.2 m3/harvestable ha
Timber logged volume : 74.9 m3,  20 m3/harvestable ha
No hollow timber logged volume : 74.9 m3,  20 m3/harvestable ha
Timber extracted volume (timber volume after purge : 64.4 m3,  17.2 m3/harvestable ha
Logging residual biomass : 152.6 ton,  40.7 ton/harvestable ha
Total forest biomass lost : 202.7 ton
Trails density : 95.9 m/ha

Please note that all volumes in m3/ha are per exploitable hectare, not per plot hectare.

Scénarios

Les scénarios regroupent les principaux paramètres d’exploitation. Ils sont utilisés pour définir la zone exploitable, les arbres à abattre et le tracé des pistes à camion.

Scénarios

Les colonnes du scénario sont les suivantes :

  • Type: le nom du scénario
  • SpatialDataType: le type de données spatiales (Lidar ou SRTM)
  • Objective: le volume cible par hectare
  • Diversification: pour autoriser la coupe d’autres espèces que les principales espèces commerciales
  • Winching: la méthode du treuil, sans câble ni griffe = « 0 », câble seul = « 1 », grapin et câble = « 2 »
  • DirectionalFelling: 0 » = non utilisé, « 1« » = uniquement pour éviter d’endommager les arbres futurs et de réserve, « 2 » = éviter d’endommager les arbres futurs et de réserve + orientation du sentier

Toutes les fonctions permettent scenario = « manual » : dans ce cas, tous les arguments doivent être ajoutés manuellement. Leur nom est le même que celui des colonnes.

Scénarios

LogingLab comprend des scénarios prédéfinis correspondant à différentes versions d’exploitation à fiable impact (EFI) en Guyane française.

ScenariosTable
# A tibble: 6 × 6
  Type     SpatialDataType Objective Diversification Winching DirectionalFelling
  <chr>    <chr>           <chr>     <lgl>           <fct>    <fct>             
1 RIL1     SRTM            20-25     FALSE           0        0                 
2 RIL2bro… LIDAR           20-25     FALSE           0        0                 
3 RIL2     LIDAR           20-25     FALSE           1        0                 
4 RIL3     LIDAR           25-30     TRUE            2        2                 
5 RIL3fuel LIDAR           25-30     TRUE            2        2                 
6 RIL3fue… LIDAR           25-30     TRUE            2        2                 

Paramètres d’exploitation

loggingparameters() définit tous les paramètres d’exploitation. Consultez son aide (?loggingparameters). Les valeurs par défaut sont celles utilisées en Guyane française.

loggingparameters()
$MinDBHValue
[1] 10

$MaxTrailCenterlineSlope
[1] 22

$MaxTrailCrossSlope
[1] 4

$GrappleMaxslope
[1] 20

$CableTreesMaxSlope
[1] 35

$PlateauMaxSlope
[1] 5

$SlopeDistance
[1] 3

$WaterSourcesBufferZone
[1] 30

$WaterSourcesRelativeHeight
[1] 2

$MinMainTrailWidth
[1] 5

$MaxMainTrailWidth
[1] 6

$ScndTrailWidth
[1] 4

$BigTrees
[1] 50

$ResamplDistDTM
[1] 5

$SmoothingFact
[1] 10

$CableLength
[1] 40

$GrappleLength
[1] 6

$IsolateTreeMinDistance
[1] 100

$FutureTreesMinDiameter
[1] 35

$TreefallSuccessProportion
[1] 0.6

$MinTreefallOrientation
[1] 30

$MaxTreefallOrientation
[1] 45

$TreeHollowPartForFuel
[1] 0.3333333

$CrownPartForFuel
[1] 0.6666667

$Purge
[1] 0.14

$MaxTrailDensity
[1] 200

$MaxLandingArea
[1] 1500

$CostMatrix
$CostMatrix[[1]]
$CostMatrix[[1]][[1]]
$CostMatrix[[1]][[1]]$Slope
[1] 3

$CostMatrix[[1]][[1]]$Cost
[1] 3


$CostMatrix[[1]][[2]]
$CostMatrix[[1]][[2]]$Slope
[1] 5

$CostMatrix[[1]][[2]]$Cost
[1] 5


$CostMatrix[[1]][[3]]
$CostMatrix[[1]][[3]]$Slope
[1] 12

$CostMatrix[[1]][[3]]$Cost
[1] 20


$CostMatrix[[1]][[4]]
$CostMatrix[[1]][[4]]$Slope
[1] 20

$CostMatrix[[1]][[4]]$Cost
[1] 60


$CostMatrix[[1]][[5]]
$CostMatrix[[1]][[5]]$Slope
[1] 35

$CostMatrix[[1]][[5]]$Cost
[1] 1000


$CostMatrix[[1]][[6]]
$CostMatrix[[1]][[6]]$Slope
[1] Inf

$CostMatrix[[1]][[6]]$Cost
[1] Inf



$CostMatrix[[2]]
$CostMatrix[[2]][[1]]
$CostMatrix[[2]][[1]]$CostType
[1] "Initial"

$CostMatrix[[2]][[1]]$CostValue
[1] 1000


$CostMatrix[[2]][[2]]
$CostMatrix[[2]][[2]]$CostType
[1] "Access"

$CostMatrix[[2]][[2]]$CostValue
[1] Inf


$CostMatrix[[2]][[3]]
$CostMatrix[[2]][[3]]$CostType
[1] "BigTrees"

$CostMatrix[[2]][[3]]$CostValue
[1] 500


$CostMatrix[[2]][[4]]
$CostMatrix[[2]][[4]]$CostType
[1] "Reserves"

$CostMatrix[[2]][[4]]$CostValue
[1] 500


$CostMatrix[[2]][[5]]
$CostMatrix[[2]][[5]]$CostType
[1] "Futures"

$CostMatrix[[2]][[5]]$CostValue
[1] 50


$CostMatrix[[2]][[6]]
$CostMatrix[[2]][[6]]$CostType
[1] "MainTrails"

$CostMatrix[[2]][[6]]$CostValue
[1] 1e-04


$CostMatrix[[2]][[7]]
$CostMatrix[[2]][[7]]$CostType
[1] "SecondTrails"

$CostMatrix[[2]][[7]]$CostValue
[1] 0.1




$TreeHarvestableVolumeAllometry
function (DBH, aCoef, bCoef) 
aCoef + bCoef * (DBH/100)^2
<environment: 0x63eb0031a0c8>

$TrunkHeightAllometry
function (DBH, TreeHarvestableVolume) 
TreeHarvestableVolume/(pi * (((DBH/100)/2)^2))
<environment: 0x63eb0031a0c8>

$TreeHeightAllometry
function (DBH) 
exp(0.07359191 + 1.34241216 * log(DBH) + -0.12282344 * log(DBH)^2)
<environment: 0x63eb0031a0c8>

$CrownDiameterAllometry
function (DBH, TreeHeight, alpha, beta) 
exp(((log(DBH) - alpha - rnorm(length(DBH), 0, 0.0295966977))/beta))/TreeHeight
<environment: 0x63eb0031a0c8>

$RottenModel
function (DBH) 
1/(1 + exp(-(-5.151 + 0.042 * DBH)))
<environment: 0x63eb0031a0c8>

$VisiblyDefectModel
function (LogDBH) 
1/(1 + exp(-(-3.392 + 0.357 * LogDBH)))
<environment: 0x63eb0031a0c8>

$Treefall2ndDeathModel
function (DBH) 
1/(1 + exp(-(-0.47323 + -0.02564 * DBH)))
<environment: 0x63eb0031a0c8>

Conclusion

Félicitations 👏 , vous êtes désormais des pros de LoggingLab !

Plus sérieusement, je serais ravis de répondre à toutes vos questions. N’hésitez pas à consulter GitHub si vous avez besoin d’aide plus tard.

Références

Badouard, Vincyane, Sylvain Schmitt, Guillaume Salzet, Thomas Gaquiere, Margaux Rojat, Caroline Bedeau, Olivier Brunaux, and Géraldine Derroire. 2024. LoggingLab: An R Package to Simulate Reduced-Impact Selective Logging in Tropical Forests Using Forest Inventory Data.” Ecological Modelling 487 (January): 110539. https://doi.org/10.1016/j.ecolmodel.2023.110539.