diff --git a/DESCRIPTION b/DESCRIPTION index b9367f50639f4ca265498abab827a52bea30d7a9..7d5ae15f9b6a9c6a2f72fdd4553e50234beaf422 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: floodam.data Title: An easy way to recover and prepare some useful data linked to CBA applied to flood -Version: 0.9.23.0 +Version: 0.9.24.0 Authors@R: c( person(given = "Frédéric", family = "Grelot", diff --git a/R/adapt_gaspar.R b/R/adapt_gaspar.R index b7780baac41fe3919e64e6ae7befcf6686acac83..e68f435c4956de8559be2711263a269eb85b47b5 100644 --- a/R/adapt_gaspar.R +++ b/R/adapt_gaspar.R @@ -96,6 +96,23 @@ adapt_gaspar = function( unlink(file.path(origin, version, sprintf("%s_gaspar.csv", theme))) # Application of scheme + + ## Temporary pretreatment necessary for catnat theme because of data issues + if (theme == "catnat") { + result$num_risque_jo = gsub(" ", "", result$num_risque_jo) + result$lib_risque_jo = gsub("\uFFFD", "\u00E9", result$lib_risque_jo) + num_risque_jo = stats::setNames( + floodam.data::catnat_classification$catnat, + floodam.data::catnat_classification$catnat_label_fr + ) + selection = result$num_risque_jo == "" + result$num_risque_jo[selection] = num_risque_jo[result$lib_risque_jo[selection]] + if (nrow(unique(result[c("num_risque_jo", "lib_risque_jo")])) != + nrow(floodam.data::catnat_classification)) { + stop("Trouble with catnat_classification. Check compatibility with data") + } + } + result = apply_scheme(result, scheme) # Selection of flood hazard diff --git a/R/analyse_gaspar.R b/R/analyse_gaspar.R index 916e19343d043a66acec816c531b99f3f611cc6c..fd66e959789b43f0f4ef158d3b16cb89ef101e85 100644 --- a/R/analyse_gaspar.R +++ b/R/analyse_gaspar.R @@ -23,15 +23,76 @@ analyse_catnat = function(catnat) { event = event[order(event[["date_start"]]), ] event[["duration"]] = event[["date_end"]] - event[["date_start"]] # alert_mattermost(c("**gaspar - last catnat events**", "", as.character(knitr::kable(tail(event, 15), row.names = FALSE)))) - - year = table(factor(format(event[["date_start"]], "%Y"), levels = 1982:as.integer(format(Sys.Date(), "%Y")))) - month = table(factor(format(event[["date_start"]], "%m"), levels = sprintf("%02d", 1:12))) - type = table(event[["catnat"]]) + + event[["phenomena"]] = NA_character_ + id = 1 + for (i in seq(nrow(event))) { + max_date = suppressWarnings(max(event[event[["phenomena"]] == id, "date_end"], na.rm = TRUE)) + if (i > 1 && (event[i, "date_start"] - 1 >= max_date + 1)) { + id = id + 1 + } + event[i, "phenomena"] = id + } + + phenomena = do.call( + rbind, + mapply( + function(x){ + result = data.frame( + id = unique(x[["phenomena"]]), + catnat_type = length(unique(x[["catnat"]])), + date_start = min(x[["date_start"]]), + date_end = min(x[["date_end"]]), + catnat_decree = sum(x[["commune"]]) + ) + }, + split(event, event[["phenomena"]]), + SIMPLIFY = FALSE + ) + ) + + catnat = merge(catnat, event[c("catnat", "date_start", "date_end", "duration", "phenomena")]) + phenomena = merge( + phenomena, + stats::aggregate(catnat["commune"], catnat["phenomena"], length), + by.x = "id", by.y = "phenomena" + ) + phenomena = phenomena[order(as.integer(phenomena[["id"]])), ] + + year = 1982:as.integer(format(Sys.Date(), "%Y")) + n_year = function(x, year) { + as.vector(table(factor(format(x[["date_start"]], "%Y"), levels = year))) + } + year = data.frame( + year = year, + catnat = n_year(catnat, year), + event = n_year(event, year), + phenomena = n_year(phenomena, year) + ) + + month = sprintf("%02d", 1:12) + n_month = function(x, year) { + as.vector(table(factor(format(x[["date_start"]], "%m"), levels = month))) + } + month = data.frame( + month = month, + catnat = n_month(catnat, year), + event = n_month(event, year), + phenomena = n_month(phenomena, year) + ) + + n_type = function(x, year) {as.vector(table(x[["catnat"]]))} + type = data.frame( + type = levels(event[["catnat"]]), + catnat = n_type(catnat), + event = n_type(event) + ) return ( list( catnat = catnat, event = event, + phenomena = phenomena, year = year, month = month, type = type @@ -43,11 +104,11 @@ analyse_catnat = function(catnat) { } #' @title Analyse ppr theme from gaspar to give state of documents -#' +#' #' @details #' #' To be added. -#' +#' #' @param ppr data.frame, data to be analysed #' #' @return A factor of state. @@ -57,7 +118,7 @@ analyse_catnat = function(catnat) { #' @encoding UTF-8 #' @author Frédéric Grelot -analyse_ppr_state = function(ppr) { +analyse_ppr_state = function(ppr) { classification = data.frame( in_use = !is.na(ppr[["date_approval"]]) & @@ -93,7 +154,7 @@ analyse_ppr_state = function(ppr) { } #' @title Analyse ppr theme from gaspar to give some elementary results -#' +#' #' @details #' #' The following treatments are performed: diff --git a/data/catnat_classification.rda b/data/catnat_classification.rda index 8e9fb13c0cad8a8092d6ab41f253bf1341484576..7a9c50b22d8d06934302877a2bb25d0e068010bb 100644 Binary files a/data/catnat_classification.rda and b/data/catnat_classification.rda differ diff --git a/inst/extdata/catnat_classification-2022-03-31.csv b/inst/extdata/catnat_classification-2022-03-31.csv new file mode 100644 index 0000000000000000000000000000000000000000..02d80a05248ab5062ec38133207a253e17f108e4 --- /dev/null +++ b/inst/extdata/catnat_classification-2022-03-31.csv @@ -0,0 +1,54 @@ +catnat;catnat_label_fr;flooding;mudslide;water_table;torrential;submersion;hurricane +1;Inondations et coulées de boue;TRUE;TRUE;;;; +2;Séisme;;;;;; +3;Avalanche;;;;;; +4;Glissement de terrain;;;;;; +5;Effondrements / éboulements;;;;;; +6;Raz-de-marée;;;;;TRUE; +7;Poids de la neige - chutes de neige;;;;;; +8;Tempête;;;;;; +10;Lave torrentielle;;;;TRUE;; +12;Mouvements de terrain consécutifs à la sécheresse;;;;;; +13;Tassement de terrain;;;;;; +14;Effondrement de terrain;;;;;; +15;Inondations, coulées de boue et mouvements de terrain;TRUE;TRUE;;;; +16;Mouvements de terrain;;;;;; +17;Glissements de terrain et éboulements rocheux;;;;;; +19;Eboulement, glissement et affaissement de terrain;;;;;; +21;Inondations par remontées de nappe phréatique;;;TRUE;;; +22;Eboulement ou effondrement de carrière;;;;;; +23;Eboulements rocheux;;;;;; +24;Effondrement de falaise;;;;;; +25;Eboulement de falaise;;;;;; +26;Affondrement / éboulement de coteaux;;;;;; +27;Affaissement de falaise;;;;;; +28;Affaissement de terrain;;;;;; +29;Tornade et grêle;;;;;; +30;Phénomènes tropicaux (ouragan, onde) (inondations, coulées de boue, éboulements, ...);TRUE;TRUE;;;;TRUE +31;Chocs mécaniques liés à l'action des vagues;;;;;TRUE; +32;Inondations et chocs mécaniques liés à l'action des vagues;TRUE;;;;TRUE; +34;Glissement de terrain et effondrement de terrain;;;;;; +35;Inondations, coulées de boue et effets exceptionnels dus aux précipitations;TRUE;TRUE;;;; +36;Inondations, coulées de boue et chocs mécaniques liés à l'action des vagues;TRUE;TRUE;;;TRUE; +37;Eboulement de terrain;;;;;; +38;Chutes de rochers / de blocs rocheux;;;;;; +39;Mouvements de terrain différentiels consécutifs à la sécheresse et à la réhydratation des sols;;;;;; +41;Crues torrentielles et glissements de terrain;;;;TRUE;; +42;Inondations par remontée de la nappe phréatique et mouvements de terrain;;;TRUE;;; +43;Inondations, coulées de boue et glissements de terrain;TRUE;TRUE;;;; +45;Inondations, coulées de boue, glissements et chocs mécaniques liés à l'action des vagues;TRUE;TRUE;;;TRUE; +46;Coulées de boue et lave torrentielle;;TRUE;;TRUE;; +47;inondations et coulées de boue, inondations par remontées de nappe phréatique;TRUE;TRUE;TRUE;;; +48;Inondations, coulées de boue, mouvements de terrain et chocs mécaniques liés à l'action des vagues;TRUE;TRUE;;;TRUE;TRUE +60;Inondations, coulées de boue, éboulements, glissements ou affaissements de terrain et chocs mécaniques liés à l'action des vagues consécutifs au passage de l'ouragan Luis;TRUE;TRUE;;;TRUE;TRUE +61;Inondations, coulées de boue, éboulements, glissements ou affaissements de terrain consécutifs au passage de l'ouragan Marylin;TRUE;TRUE;;;;TRUE +62;Inondations, coulées de boue, éboulements, glissements ou affaissements de terrain consécutifs au passage de l'onde tropicale;TRUE;TRUE;;;;TRUE +63;Inondations, coulées de boue, éboulements, glissements ou affaissements de terrain et chocs mécaniques liés à l'action des vagues consécutifs au passage de la dépression tropicale Iris;TRUE;TRUE;;;TRUE;TRUE +64;Vents cycloniques;;;;;; +65;inondations et coulées de boue, chocs mécaniques liés à l'action des vagues, vents cycloniques;TRUE;TRUE;;;TRUE;TRUE +66;inondations et coulées de boue, vents cycloniques;TRUE;TRUE;;;;TRUE +67;chocs mécaniques liés à l'action des vagues, vents cycloniques;;;;;TRUE;TRUE +68;éruption volcanique;;;;;; +69;chocs mécaniques liés à l'action des vagues, mouvements de terrain;;;;;TRUE; +90;inondations et coulées de boue et inondations et chocs mécaniques liés à l'action des vagues;TRUE;TRUE;;;TRUE; +91;Inondations par remontées de nappe naturelle;;;TRUE;;; diff --git a/inst/extdata/catnat_classification.csv b/inst/extdata/catnat_classification.csv index 02d80a05248ab5062ec38133207a253e17f108e4..374ddaf1029d58c2b2f15d0a0cf60a5a2850e91f 100644 --- a/inst/extdata/catnat_classification.csv +++ b/inst/extdata/catnat_classification.csv @@ -1,54 +1,23 @@ catnat;catnat_label_fr;flooding;mudslide;water_table;torrential;submersion;hurricane -1;Inondations et coulées de boue;TRUE;TRUE;;;; -2;Séisme;;;;;; -3;Avalanche;;;;;; -4;Glissement de terrain;;;;;; -5;Effondrements / éboulements;;;;;; -6;Raz-de-marée;;;;;TRUE; -7;Poids de la neige - chutes de neige;;;;;; -8;Tempête;;;;;; -10;Lave torrentielle;;;;TRUE;; -12;Mouvements de terrain consécutifs à la sécheresse;;;;;; -13;Tassement de terrain;;;;;; -14;Effondrement de terrain;;;;;; -15;Inondations, coulées de boue et mouvements de terrain;TRUE;TRUE;;;; -16;Mouvements de terrain;;;;;; -17;Glissements de terrain et éboulements rocheux;;;;;; -19;Eboulement, glissement et affaissement de terrain;;;;;; -21;Inondations par remontées de nappe phréatique;;;TRUE;;; -22;Eboulement ou effondrement de carrière;;;;;; -23;Eboulements rocheux;;;;;; -24;Effondrement de falaise;;;;;; -25;Eboulement de falaise;;;;;; -26;Affondrement / éboulement de coteaux;;;;;; -27;Affaissement de falaise;;;;;; -28;Affaissement de terrain;;;;;; -29;Tornade et grêle;;;;;; -30;Phénomènes tropicaux (ouragan, onde) (inondations, coulées de boue, éboulements, ...);TRUE;TRUE;;;;TRUE -31;Chocs mécaniques liés à l'action des vagues;;;;;TRUE; -32;Inondations et chocs mécaniques liés à l'action des vagues;TRUE;;;;TRUE; -34;Glissement de terrain et effondrement de terrain;;;;;; -35;Inondations, coulées de boue et effets exceptionnels dus aux précipitations;TRUE;TRUE;;;; -36;Inondations, coulées de boue et chocs mécaniques liés à l'action des vagues;TRUE;TRUE;;;TRUE; -37;Eboulement de terrain;;;;;; -38;Chutes de rochers / de blocs rocheux;;;;;; -39;Mouvements de terrain différentiels consécutifs à la sécheresse et à la réhydratation des sols;;;;;; -41;Crues torrentielles et glissements de terrain;;;;TRUE;; -42;Inondations par remontée de la nappe phréatique et mouvements de terrain;;;TRUE;;; -43;Inondations, coulées de boue et glissements de terrain;TRUE;TRUE;;;; -45;Inondations, coulées de boue, glissements et chocs mécaniques liés à l'action des vagues;TRUE;TRUE;;;TRUE; -46;Coulées de boue et lave torrentielle;;TRUE;;TRUE;; -47;inondations et coulées de boue, inondations par remontées de nappe phréatique;TRUE;TRUE;TRUE;;; -48;Inondations, coulées de boue, mouvements de terrain et chocs mécaniques liés à l'action des vagues;TRUE;TRUE;;;TRUE;TRUE -60;Inondations, coulées de boue, éboulements, glissements ou affaissements de terrain et chocs mécaniques liés à l'action des vagues consécutifs au passage de l'ouragan Luis;TRUE;TRUE;;;TRUE;TRUE -61;Inondations, coulées de boue, éboulements, glissements ou affaissements de terrain consécutifs au passage de l'ouragan Marylin;TRUE;TRUE;;;;TRUE -62;Inondations, coulées de boue, éboulements, glissements ou affaissements de terrain consécutifs au passage de l'onde tropicale;TRUE;TRUE;;;;TRUE -63;Inondations, coulées de boue, éboulements, glissements ou affaissements de terrain et chocs mécaniques liés à l'action des vagues consécutifs au passage de la dépression tropicale Iris;TRUE;TRUE;;;TRUE;TRUE -64;Vents cycloniques;;;;;; -65;inondations et coulées de boue, chocs mécaniques liés à l'action des vagues, vents cycloniques;TRUE;TRUE;;;TRUE;TRUE -66;inondations et coulées de boue, vents cycloniques;TRUE;TRUE;;;;TRUE -67;chocs mécaniques liés à l'action des vagues, vents cycloniques;;;;;TRUE;TRUE -68;éruption volcanique;;;;;; -69;chocs mécaniques liés à l'action des vagues, mouvements de terrain;;;;;TRUE; -90;inondations et coulées de boue et inondations et chocs mécaniques liés à l'action des vagues;TRUE;TRUE;;;TRUE; -91;Inondations par remontées de nappe naturelle;;;TRUE;;; +ALS;Algues Sargasses;;;;;; +AVA;Avalanche;;;;;; +CMV;Chocs Mécaniques liés à l'action des Vagues;;;;;TRUE; +COB;Coulée de Boue;;TRUE;;;; +DIV;Divers;;;;;; +ECB;Eboulement et/ou Chute de Blocs;;;;;; +EFA;Effondrement et/ou Affaisement;;;;;; +VOL;Eruption Volcanique;;;;;; +GLT;Glissement de Terrain;;;;;; +GER;Glissement et Eboulement Rocheux;;;;;; +GET;Glissement et Effondrement de Terrain;;;;;; +GRL;Grêle;;;;;; +ICB;Inondations et/ou Coulées de Boue;TRUE;TRUE;;;; +IRN;Inondations Remontée Nappe;;;TRUE;;; +LVT;Lave Torrentielle;;;;TRUE;; +MVT;Mouvement de Terrain;;;;;; +PDN;Poids de la Neige;;;;;; +RAZ;Raz de Marée;;;;;TRUE; +SEC;Sécheresse;;;;;; +SEI;Secousse Sismique;;;;;; +TMP;Tempête;;;;;; +VCY;Vents Cycloniques;;;;;; diff --git a/man/catnat_classification.Rd b/man/catnat_classification.Rd index f5eda82e917609011f41195c74fc73abf2aaeccb..2333c4a377a45d2545f4038c806583fc6d4db38e 100644 --- a/man/catnat_classification.Rd +++ b/man/catnat_classification.Rd @@ -5,7 +5,7 @@ \alias{catnat_classification} \title{Classification of hazards events in catnat (gaspar DB)} \format{ -An object of class \code{data.frame} with 53 rows and 8 columns. +An object of class \code{data.frame} with 22 rows and 8 columns. } \usage{ catnat_classification diff --git a/script/maintain_gaspar.R b/script/maintain_gaspar.R index 052953747857123d48d41bf70a121d554f4693fb..7d7bee6d35b130699300674ef82122be0442e050 100644 --- a/script/maintain_gaspar.R +++ b/script/maintain_gaspar.R @@ -17,4 +17,9 @@ ppri = adapt_gaspar( theme = "pprn", scope = list("so_ii" = so.ii::so_ii_scope), retrieve = TRUE, keep = TRUE) -ppri_commune = analyse_ppr(ppri) \ No newline at end of file +ppri_commune = analyse_ppr(ppri) + +catnat = adapt_gaspar(original, adapted, scope = list("so_ii" = so.ii::so_ii_scope), retrieve = TRUE, keep = TRUE) + +catnat = readRDS("data-local/floodam-data/adapted/gaspar/2022-03-14/catnat_so_ii.rds") +analyse = analyse_catnat(catnat)