Estimation des dommages matériels
Emma Mondoloni
damage-vignette.Rmd
Préparation de l’espace de travail
- 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.
- 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.
- 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 |