Préparation de l’espace de travail

  1. Se mettre dans un répertoire parent de la librairie

Il faut mettre le dossier de la librairie ‘floodam.campsite’ dans un dossier parent, exemple : floodam/floodam.campsite.

  1. Préparer un dossier pour les données

Il faut créer un dossier spécifique (exemple : data-camping) pour les données - qui sont nécessaires pour l’application de ‘floodam.campsite’ - au même niveau que le dossier de la librairie, exemple : floodam/data-camping. Pour savoir quelles sont les données nécessaires, il faut se référer à la vignette : data-vignette.

  1. Pour utiliser le script campsite.R

Il faut ouvrir le script - campsite.R - en se mettant au niveau du répertoire parent dans le terminal. Ensuite, il faut charger les librairies : sf et floodam.campsite.

library(sf)
#> Linking to GEOS 3.10.2, GDAL 3.4.3, PROJ 8.2.0; sf_use_s2() is TRUE
library(floodam.campsite)
# devtools::load_all("../../floodam.campsite")

Avant d’utiliser les fonctions de cette librairie, il faut charger les données dont nous avons besoin (données présentées dans la vignette data-vignette). Exemple :

campsite = data.table::fread(
    system.file(
        "extdata/dataset",
        "campsite.csv",
        package = "floodam.campsite"
    ),
    data.table = FALSE
)
hydraulic <- sf::read_sf(
    system.file(
        "extdata/dataset",
        "hydraulic.gpkg",
        package = "floodam.campsite"
    )
)
elementary_vulnerability = data.table::fread(
    system.file(
        "extdata",
        "elementary_vulnerability.csv",
        package = "floodam.campsite"
    ),
    data.table = FALSE
)

Estimer les dommages matériels

Pour estimer les dommages matériels de la composante emplacement, il faut se servir de 4 fonctions :

  • la fonction load_campsite va permettre de charger les données spatiales sur les campings (niveaux 1, 2 et 3).

  • la fonction add_hydraulic va permettre de superposer sur le périmètre du camping, les valeurs hydrauliques (hauteur d’eau), afin de savoir par quelle hauteur d’eau les emplacements sont touchés.

  • la fonction add_damage_material sert à associer à chaque élément, une valeur : le coût d’une action de remise en état selon l’état dans lequel l’emplacement se retrouve.

  • la fonction estimate_damage sert à estimer les dommages.

En fonction du niveau de détail de données obtenues - détails au niveau cartographique - l’application des fonctions peut varier. Pour faire la démonstration de l’application de ces fonctions, nous allons nous servir des données du camping du Domaine de l’Arnel.

étape 1 - charger les données spatiales

Dans un premier temps, il faut charger les données spatiales sur les campings au niveau cartographique souhaité / obtenu.

Pour le niveau 1, les données spatiales désignent uniquement le périmètre des campings. Les emplacements sont considérés comme étant répartis uniformément sur le périmètre du camping. Pour cela, il faut préciser le paramètre détail : “u” pour uniforme.

# charger les données spatiales du camping au niveau 1 :
path_n1 = system.file(
    "extdata/dataset",
    "camping_n1.gpkg",
    package = "floodam.campsite"
)
c_n1 = load_campsite(path_n1, campsite, "u", hydraulic)

Pour le niveau 2, les données spatiales désignent des zonages d’emplacements. Les emplacements sont considérés comme étant répartis de manière zonale sur le camping. Pour cela, il faut préciser le paramètre détail : “z” pour zonale.

# charger les données spatiales du camping au niveau 2
path_n2 = system.file(
    "extdata/dataset",
    "camping_n2.gpkg",
    package = "floodam.campsite"
) 
c_n2 = load_campsite(path_n2, campsite, "z", hydraulic)

Pour le niveau 3, les données spatiales désignent la localisation précise des emplacements. On possède le détail de la localisation des emplacements sur le camping. Pour cela, il faut préciser le paramètre détail : “d” pour détail.

#charger les données niveau 3 camping
path_n3 = system.file(
    "extdata/dataset",
    "camping_n3.gpkg",
    package = "floodam.campsite"
) 
c_n3 = load_campsite(path_n3, campsite, "d", hydraulic)

étape 2 - croiser les données hydrauliques avec les données spatiales

Dans un second temps, il faut charger les paramètres hydrauliques pour qu’ils puissent être croisés avec les données spatiales des campings. Pour les cas où la localisation des emplacements n’est pas connue, il faut préciser le traitement que l’on veut appliquer.

Dans le cas du niveau 1, il faut diviser (treatment = “divide”) la surface du camping avec les différentes hauteurs d’eau qui la touche. Chaque surface découpée représente une seule hauteur d’eau. Après avoir calculé la densité de chaque type d’emplacements, on va savoir quel est le pourcentage d’emplacements à l’intérieur de chaque surface de hauteur d’eau.

# croiser les données hydrauliques et spatiales - niveau 1 :
c_n1_h = add_hydraulic(c_n1, hydraulic, treatment = "divide")

Dans le cas du niveau 2, il faut diviser (treatment = “divide”) les zones d’emplacements avec les différentes hauteurs d’eau qui les touchent. Après avoir calculé la densité de chaque type d’emplacements en fonction des zonages d’emplacements, on va savoir le pourcentage d’un type d’emplacement à l’intérieur d’une zone d’emplacement découpée par une hauteur d’eau.

# croiser les données hydrauliques et spatiales - niveau 2 :
c_n2_h = add_hydraulic(c_n2, hydraulic, treatment = "divide")

Dans le cas du niveau 3, il n’y a pas besoin de traitement pour découper les hauteurs d’eau. On associe à chaque emplacement la hauteur d’eau maximale qui le touche.

# croiser les données hydrauliques et spatiales - niveau 3 :
c_n3 = add_hydraulic(c_n3, hydraulic)

étape 3 - associer les coûts de remise en état

Dans un troisième temps, il faut associer un état à chaque emplacement pour savoir l’action à réaliser et les coûts associés. Après avoir croisé les données spatiales et les données hydrauliques, on sait par quelle hauteur d’eau les emplacements sont touchés. Il faut maintenant leur associer un état - normal, endommagé, détruit - en fonction de la hauteur d’eau, pour pouvoir leur associer ensuite un coût. On attribue une vulnérabilité à l’eau à chaque emplacement (voir data-vignette : elementary_vulnerability).

# associer les coûts de remise en état à chaque niveau :
c_n1_h = add_damage_material(c_n1_h)
c_n2_h = add_damage_material(c_n2_h)
c_n3 = add_damage_material(c_n3)

étape 4 - estimer les dommages matériels

Après avoir croisé les données spatiales et hydrauliques avec les données sur leur vulnérabilité et les coûts associés, on va pouvoir estimer les dommages à partir de la fonction estimate_damage. Cette fonction va donner les dommages matériels totaux d’un camping.

# estimer les dommages matériels totaux :
estimate_damage(c_n1_h)
#>              camping  dam_mat
#> 1 Domaine de l'Arnel 647274.7
estimate_damage(c_n2_h)
#>              camping  dam_mat
#> 1 Domaine de l'Arnel 696434.3
estimate_damage(c_n3)
#>              camping  dam_mat
#> 1 Domaine de l'Arnel 832309.3

Il est possible d’obtenir un détail des dommages par type d’emplacements à partir d’un paramètre en fixant à TRUE le paramètre detail.

# estimer les dommages matériels des trois types d'emplacements :
estimate_damage(c_n1_h, detail = TRUE)
#>              camping dam_mat_mobil_home dam_mat_chalet dam_mat_bare_pitch
#> 1 Domaine de l'Arnel           457733.8       174154.9           15386.01
#>    dam_mat
#> 1 647274.7
estimate_damage(c_n2_h, detail = TRUE)
#>              camping dam_mat_mobil_home dam_mat_chalet dam_mat_bare_pitch
#> 1 Domaine de l'Arnel           622144.3       57980.68           16309.31
#>    dam_mat
#> 1 696434.3
estimate_damage(c_n3, detail = TRUE)
#>              camping dam_mat_mobil_home dam_mat_chalet dam_mat_bare_pitch
#> 1 Domaine de l'Arnel             744000          72000           16309.31
#>    dam_mat
#> 1 832309.3

Exemple des dommages matériels d’un camping au niveau 1 pour un scénario d’inondation :

n1 = estimate_damage(c_n1_h, dam = "dam_mat", detail = TRUE)
knitr::kable(
    n1,
    row.names = FALSE
)
camping dam_mat_mobil_home dam_mat_chalet dam_mat_bare_pitch dam_mat
Domaine de l’Arnel 457733.8 174154.9 15386.01 647274.7