#' Ouverture de fichiers de chroniques
#'
#' Cette fonction permet d'ouvrir de manière semi-automatisée des fichiers de chroniques
#' @name chronique.ouverture
#' @param Type Type de données en entrée (Mesures, Suivis, Stations, Commentaires, Capteurs)
#' @param typemesure Défini le type de données (Thermie, Piézométrie, etc.)
#' @param Localisation Localisation relative du fichier (à partir de /NAS-DATA/)
#' @param feuille Feuille où lire les données dans le cas de l'ouverture d'un fichier excel : \code{1} (par défaut)
#' @param skipvalue Nombre de lignes à sauter en début de fichier (1 par défaut pour les mesures)
#' @param nbcolonnes Nombre de colonnes concernées
#' @param separateur Séparateur de colonnes : \code{;} (par défaut), \code{,}
#' @param typefichier Type de fichier : \code{.csv} (par défaut), \code{excel}, \code{.ods} ou \code{Interne}
#' @param typedate Format des dates pour les mesures (ymd par défaut, dmy, mdy, dmy_hms, dmy_hm, mdy_hms, mdy_hm ou ymd_hms)
#' @param typecapteur Type de capteur, pour les piézomètres ou les capteurs O2 (\code{Non précisé} par défaut)
#' @param formatmacmasalmo Format d'entrée nécessaire à MacmaSalmo (Heure puis date puis valeur) : \code{FALSE} (par défault)
#' @keywords chronique
#' @import glue
#' @import readODS
#' @import testit
#' @import tidyverse
#' @export
#' @examples
#' DataToAdd <- chronique.ouverture("Mesures", "Thermie", "/NAS-DATA/Chroniques/Saisie_JB/2018-12-17_Suivi_Ain_amont_FJPPMA_été_2018/10880567.txt")
#' DataToAdd <- chronique.ouverture("Stations", "Thermie", "/NAS-DATA/Chroniques/Saisie_JB/2019-01-11_PDPG/Stations sondesPDPG.xlsx")
#' chronique.ouverture("Suivi", "Thermie", "/NAS-DATA/Chroniques/Saisie_JB/2019-01-18_PDPG/Saisie_cahier_terrain_PDPG_V2.xlsx")
chronique.ouverture <- function(
Type = c("Mesures", "Suivis", "Stations", "Commentaires", "Capteurs"),
typemesure = c("Thermie", "Thermie barométrique", "Thermie piézométrique", "Barométrie", "Piézométrie", "Piézométrie brute", "Piézométrie compensée", "Piézométrie calée", "Piézométrie NGF", "Oxygénation", "Hydrologie", "Pluviométrie", "Télétransmission"),
Localisation = NA_character_,
feuille = 1,
skipvalue = 9,
nbcolonnes = 2,
separateur = c(";", ","),
typefichier = c(".csv", "excel", ".ods", "Interne"),
typedate = c("ymd", "dmy", "mdy", "dmy_hms", "dmy_hm", "mdy_hms", "mdy_hm", "ymd_hms"),
typecapteur = c("Non précisé", "Hobo", "Diver", "VuSitu", "miniDOTindividuel", "miniDOTregroupe", "EDF", "RuggedTROLL", "Aquaread", "WiSens"),
formatmacmasalmo = F
)
{
#### Évaluation des choix ####
Type <- match.arg(Type)
typemesure <- match.arg(typemesure)
typefichier <- match.arg(typefichier)
typedate <- match.arg(typedate)
typecapteur <- match.arg(typecapteur)
#### Localisation du fichier ####
if(any(class(url) == "character")) Localisation <- adresse.switch(Localisation)
#### Mesures ####
if(Type == "Mesures"){
if(typemesure == "Thermie"){
if(nbcolonnes == 2){
if(typefichier == "excel"){dataaimporter <- read_excel(Localisation, sheet = feuille, skip = skipvalue, col_names = F)}
if(typefichier == ".csv"){dataaimporter <- read_delim(Localisation, skip = skipvalue, delim=separateur, col_types = "cc", col_names = F) %>% filter(!is.na(X2))}
if(typefichier == ".ods"){dataaimporter <- read_ods(Localisation, sheet = feuille, skip = skipvalue, col_types = "cc", col_names = F)}
names(dataaimporter)[1] <- c('DateHeure')
names(dataaimporter)[2] <- c('Valeur')
}
if(nbcolonnes == 3){
if(typefichier == "excel"){dataaimporter <- read_excel(Localisation, sheet = feuille, skip = skipvalue, col_names = F)}
if(typefichier == ".csv"){dataaimporter <- read_delim(Localisation, skip = skipvalue, delim=separateur, col_types = "ctc", col_names = F)}
if(typefichier == ".ods"){dataaimporter <- read_ods(Localisation, sheet = feuille, skip = skipvalue, col_types = "ctc", col_names = F)}
}
if(nbcolonnes == 4){
if(typefichier == "excel"){dataaimporter <- read_excel(Localisation, sheet = feuille, skip = skipvalue, col_names = F)}
if(typefichier == "excel"){data_a_tester <- read_excel(Localisation, sheet = feuille, skip = skipvalue, col_names = T)}
if(typefichier == ".csv"){dataaimporter <- read_delim(Localisation, skip = skipvalue, delim=separateur, col_types = "ctcc", col_names = F)}
if(typefichier == ".csv"){data_a_tester <- read_delim(Localisation, skip = skipvalue, delim=separateur, col_types = "ctcc", col_names = T)}
if(names(data_a_tester)[4] %in% c("chmes_validation")) names(dataaimporter)[4] <- c('chmes_validation')
if(names(data_a_tester)[4] %in% c("chmes_mode_acquisition")) names(dataaimporter)[4] <- c('chmes_mode_acquisition')
}
if(nbcolonnes == 5){
if(typefichier == "excel"){dataaimporter <- read_excel(Localisation, sheet = feuille, skip = skipvalue, col_names = F)}
if(typefichier == "excel"){data_a_tester <- read_excel(Localisation, sheet = feuille, skip = skipvalue-1, col_names = T)}
if(typefichier == ".csv"){dataaimporter <- read_delim(Localisation, skip = skipvalue, delim=separateur, col_types = "ctccc", col_names = F)}
if(typefichier == ".csv"){data_a_tester <- read_delim(Localisation, skip = skipvalue-1, delim=separateur, col_types = "ctccc", col_names = T)}
if(names(data_a_tester)[4] %in% c("chmes_validation")) names(dataaimporter)[4] <- c('chmes_validation')
if(names(data_a_tester)[4] %in% c("chmes_mode_acquisition")) names(dataaimporter)[4] <- c('chmes_mode_acquisition')
if(names(data_a_tester)[5] %in% c("chmes_validation")) names(dataaimporter)[5] <- c('chmes_validation')
if(names(data_a_tester)[5] %in% c("chmes_mode_acquisition")) names(dataaimporter)[5] <- c('chmes_mode_acquisition')
if(names(data_a_tester)[5] %in% c("chmes_mode_acquisition ")) names(dataaimporter)[5] <- c('chmes_mode_acquisition')
}
if(nbcolonnes == 6){
if(typefichier == ".csv"){dataaimporter <- read_delim(Localisation, skip = skipvalue, delim=separateur, col_types = "ctcccc", col_names = F)}
}
if(exists("dataaimporter") == FALSE) stop("Scénario d'importation à développer")
if(formatmacmasalmo == F){
if(nbcolonnes == 3 | nbcolonnes == 4 | nbcolonnes == 5 | nbcolonnes == 6){names(dataaimporter)[1] <- c('Date')}
if(nbcolonnes == 3 | nbcolonnes == 4 | nbcolonnes == 5 | nbcolonnes == 6){names(dataaimporter)[2] <- c('Heure')}
if(nbcolonnes == 3 | nbcolonnes == 4 | nbcolonnes == 5 | nbcolonnes == 6){names(dataaimporter)[3] <- c('Valeur')}
# if(nbcolonnes == 4 | nbcolonnes == 5 | nbcolonnes == 6){names(dataaimporter)[4] <- c('asup1')}
# if(nbcolonnes == 5 | nbcolonnes == 6){names(dataaimporter)[5] <- c('asup2')}
if(!(names(dataaimporter)[4] %in% c("chmes_validation", "chmes_mode_acquisition")) & (nbcolonnes == 4 | nbcolonnes == 5 | nbcolonnes == 6)){names(dataaimporter)[4] <- c('asup1')}
if(!(names(dataaimporter)[5] %in% c("chmes_validation", "chmes_mode_acquisition")) & (nbcolonnes == 4 | nbcolonnes == 5 | nbcolonnes == 6)){names(dataaimporter)[5] <- c('asup2')}
if(nbcolonnes == 6){names(dataaimporter)[6] <- c('asup3')}
}
if(formatmacmasalmo == T){
if(nbcolonnes == 3 | nbcolonnes == 4 | nbcolonnes == 5 | nbcolonnes == 6){names(dataaimporter)[1] <- c('Heure')}
if(nbcolonnes == 3 | nbcolonnes == 4 | nbcolonnes == 5 | nbcolonnes == 6){names(dataaimporter)[2] <- c('Date')}
if(nbcolonnes == 3 | nbcolonnes == 4 | nbcolonnes == 5 | nbcolonnes == 6){names(dataaimporter)[3] <- c('Valeur')}
}
## Nettoyage ##
if(testit::has_warning(ymd(dataaimporter$Date)) == FALSE & typedate == "ymd") dataaimporter$Date <- ymd(dataaimporter$Date)
if(testit::has_warning(dmy(dataaimporter$Date)) == FALSE & typedate == "dmy") dataaimporter$Date <- dmy(dataaimporter$Date)
if(testit::has_warning(mdy(dataaimporter$Date)) == FALSE & typedate == "mdy") dataaimporter$Date <- mdy(dataaimporter$Date)
if(testit::has_warning(ymd_hms(dataaimporter$DateHeure)) == FALSE & typedate == "ymd_hms"){
dataaimporter <-
dataaimporter %>%
mutate(DateHeure = ymd_hms(DateHeure)) %>%
mutate(Date = format(DateHeure, format="%Y-%m-%d")) %>%
mutate(Heure = format(DateHeure, format="%H:%M:%S"))
}
if(testit::has_warning(dmy_hm(dataaimporter$DateHeure)) == FALSE & typedate == "dmy_hm"){
dataaimporter <-
dataaimporter %>%
mutate(DateHeure = dmy_hm(DateHeure)) %>%
mutate(Date = format(DateHeure, format="%Y-%m-%d")) %>%
mutate(Heure = format(DateHeure, format="%H:%M:%S"))
}
if(testit::has_warning(dmy_hms(dataaimporter$DateHeure)) == FALSE & typedate == "dmy_hms"){
dataaimporter <-
dataaimporter %>%
mutate(DateHeure = dmy_hms(DateHeure)) %>%
mutate(Date = format(DateHeure, format="%Y-%m-%d")) %>%
mutate(Heure = format(DateHeure, format="%H:%M:%S"))
}
if(testit::has_warning(mdy_hms(dataaimporter$DateHeure)) == FALSE & typedate == "mdy_hms"){
dataaimporter <-
dataaimporter %>%
mutate(DateHeure = mdy_hms(DateHeure)) %>%
mutate(Date = format(DateHeure, format="%Y-%m-%d")) %>%
mutate(Heure = format(DateHeure, format="%H:%M:%S"))
}
if(testit::has_warning(mdy_hm(dataaimporter$DateHeure)) == FALSE & typedate == "mdy_hm"){
dataaimporter <-
dataaimporter %>%
mutate(DateHeure = mdy_hm(DateHeure)) %>%
mutate(Date = format(DateHeure, format="%Y-%m-%d")) %>%
mutate(Heure = format(DateHeure, format="%H:%M:%S"))
}
# Cas où les heures sont au format 1899-12-31 00:00:00 (POSIXct avec str ou dttm en tibble) :
if(inherits(dataaimporter$Heure, "POSIXct")){ #dataaimporter[[2]] car avec macma on peut avoir un ordre de champs différents
dataaimporter <-
dataaimporter %>%
mutate(Heure = format(Heure, format="%H:%M:%S"))
}
dataaimporter <-
dataaimporter %>%
{if ("chmes_validation" %in% names(.)) rename(., "validation" = "chmes_validation") else .} %>%
{if ("chmes_mode_acquisition" %in% names(.)) rename(., "mode_acquisition" = "chmes_mode_acquisition") else .} %>%
{if ("validation" %in% names(.) & "mode_acquisition" %in% names(.)) dplyr::select(., Date, Heure, Valeur, validation, mode_acquisition) else .} %>%
{if ("validation" %in% names(.) & !("mode_acquisition" %in% names(.))) dplyr::select(., Date, Heure, Valeur, validation) else .} %>%
{if ("mode_acquisition" %in% names(.) & !("validation" %in% names(.))) dplyr::select(., Date, Heure, Valeur, mode_acquisition) else .} %>%
{if (!("validation" %in% names(.) & "mode_acquisition" %in% names(.))) dplyr::select(., Date, Heure, Valeur) else .} %>%
# dplyr::select(Date, Heure, Valeur) %>%
mutate(Date = format(Date, format="%Y-%m-%d")) %>%
mutate(Date = ymd(Date)) %>%
mutate(Heure = as.character(Heure)) %>%
mutate(Valeur = str_replace(Valeur, " °C", "")) %>%
mutate(Valeur = str_replace(Valeur, "°C", "")) %>%
mutate(Valeur = as.numeric(sub(",", ".", Valeur))) %>%
mutate(Valeur = round(Valeur,3)) %>%
filter(is.na(Valeur) != T) %>%
mutate(typemesure = "Thermie") %>%
mutate(unite = "°C")
}
if(typemesure == "Piézométrie"){
if(typecapteur == "Non précisé"){
typecapteur = readline(prompt = "Type de capteur piézométrique : 1 (Hobo) ou 2 (Diver) ou 3 (VuSitu) ou 4 (RuggedTROLL) : ")
if (!(typecapteur == 1 | typecapteur == 2 | typecapteur == 3 | typecapteur == 4)) {stop("Valeur non disponible")}
if (typecapteur == 1) {typecapteur <- "Hobo"}
if (typecapteur == 2) {typecapteur <- "Diver"}
if (typecapteur == 3) {typecapteur <- "VuSitu"}
if (typecapteur == 4) {typecapteur <- "RuggedTROLL"}
}
typedonnee = readline(prompt = "Type de mesure piézométrique 1 (Baro) ou 2 (Piézo) : ")
typedonnee <- ifelse(typedonnee == 1, "Baro", "Piézo")
if(typecapteur == "Diver"){
dataaimporter <-
read_csv2(Localisation, skip = 54, col_names = c("Date","Piézométrie", "Thermie")) %>%
filter(Piézométrie != 4133.6) %>% # Car fin de chronique remplie avec cette valeur
filter(Thermie != 193.35) %>% # Car fin de chronique remplie avec cette valeur
mutate(Date = ymd_hms(Date)) %>%
mutate(Heure = format(Date, format="%H:%M:%S")) %>%
mutate(Datefine = Date) %>%
mutate(Date = ymd(format(Date, format="%Y-%m-%d")))
}
if(typecapteur == "Hobo"){
dataaimporter <-
read_csv2(Localisation, skip = 2, col_names = c("Date","Heure","Piézométrie", "Thermie")) %>%
{if(typedate == "dmy") mutate(., Date = as.character(format(dmy(Date), format="%Y-%m-%d"))) else .} %>%
mutate(Date = ymd(Date)) %>%
dplyr::select(Date, Heure, Piézométrie, Thermie)
}
if(typecapteur == "VuSitu"){
dataaimporter <-
read_csv2(Localisation, skip = 1, col_names = c("Date","Pression","Thermie", "Piézométrie"), col_types = "cccc") %>%
mutate(Thermie = as.numeric(sub(",", ".", Thermie))) %>%
mutate(Piézométrie = as.numeric(sub(",", ".", Piézométrie))) %>%
mutate(Date = ymd_hms(Date)) %>%
mutate(Heure = format(Date, format="%H:%M:%S")) %>%
mutate(Datefine = Date) %>%
mutate(Date = ymd(format(Date, format="%Y-%m-%d"))) %>%
dplyr::select(Date, Heure, Piézométrie, Thermie)
}
if(typecapteur == "RuggedTROLL"){
dataaimporter <-
read_csv2(Localisation, skip = 70, col_names = c("Date", "Heure", "Seconde", "Thermie", "Profondeur", "Piézométrie"), col_types = "cccccc") %>%
mutate(Thermie = as.numeric(sub(",", ".", Thermie))) %>%
mutate(Piézométrie = as.numeric(sub(",", ".", Piézométrie))) %>%
mutate(Date = ymd(Date)) %>%
dplyr::select(Date, Heure, Piézométrie, Thermie)
}
dataaimporter <-
dataaimporter %>%
filter(!is.na(Thermie)) %>%
mutate(Heure = as.character(Heure)) %>%
tidyr::gather(typemesure, Valeur, Piézométrie:Thermie) %>%
mutate(unite = ifelse(typemesure == "Thermie", "°C", NA_character_)) %>%
mutate(unite = ifelse(typemesure == "Piézométrie" & (typecapteur == "Hobo" | typecapteur == "RuggedTROLL"), "kPa", unite)) %>%
mutate(unite = ifelse(typemesure == "Piézométrie" & (typecapteur == "Diver" | typecapteur == "VuSitu"), "cm H2O", unite)) %>%
mutate(typemesure = ifelse(typemesure == "Thermie" & typedonnee == "Baro", "Thermie barométrique", typemesure)) %>%
mutate(typemesure = ifelse(typemesure == "Thermie" & typedonnee == "Piézo", "Thermie piézométrique", typemesure)) %>%
mutate(typemesure = ifelse(typemesure == "Piézométrie" & typedonnee == "Baro", "Barométrie", typemesure)) %>%
mutate(typemesure = ifelse(typemesure == "Piézométrie" & typedonnee == "Piézo", "Piézométrie brute", typemesure))
}
if(typemesure == "Télétransmission"){
if(typecapteur == "Non précisé"){
## Définition du point de suivi :
station <- stringr::str_extract_all(Localisation, pattern = "[:alnum:]+__", simplify = FALSE)[[1]][1] %>% str_replace("__", "")
if(nchar(station) == 1){station <- stringr::str_extract_all(Localisation, pattern = "[:alnum:]+-[:alnum:]+__", simplify = FALSE)[[1]][1] %>% str_replace("__", "")}
Contexte <- readChar(adresse.switch(Localisation), file.info(adresse.switch(Localisation))$size)
debutData <- str_split(Contexte, pattern = "Record n", simplify = FALSE)[[1]][1] %>% str_count(pattern = "\n")+1
nData <- str_split(Contexte, pattern = "-----------", simplify = FALSE)[[1]][1] %>% str_count(pattern = "\n")-debutData
nColonnes <- str_split(Contexte, pattern = "Record n", simplify = FALSE)[[1]][2]
nColonnes <- str_split(nColonnes, pattern = "\n", simplify = FALSE)[[1]][1] %>% str_count(pattern = ",")+1
emetteur <- stringr::str_extract_all(Contexte, pattern = "s/n:[0-9]+", simplify = FALSE)[[1]][1] %>% str_replace("^s/n:", "")
capteur <- stringr::str_extract_all(Contexte, pattern = "s/n:[0-9]+", simplify = FALSE)[[1]][2] %>% str_replace("^s/n:", "")
dateCompleteTeletransmission <- dmy_hms(str_split(Contexte, pattern = "\n", simplify = FALSE)[[1]][6], locale = "en_US.UTF-8")
dateTeletransmission <- format(dateCompleteTeletransmission, format="%Y-%m-%d")
heureTeletransmission <- format(dateCompleteTeletransmission, format="%H:%M:%S")
valeurTempTeletransmission <- str_split(Contexte, pattern = "\n", simplify = FALSE)[[1]][debutData + nData + 3]
valeurTempTeletransmission <- str_split(valeurTempTeletransmission, pattern = "- Temperature: ", simplify = FALSE)[[1]][2]
valeurTempTeletransmission <- as.numeric(str_split(valeurTempTeletransmission, pattern = " \xb0C\r", simplify = FALSE)[[1]][1])
## Importation des données ##
dataaimporter <-
read_delim(Localisation, skip = debutData, delim=",", col_types = str_dup("c", nColonnes), col_names = F, n_max = nData) %>%
rename(Date = "X2") %>%
filter(!is.na(Date)) %>%
mutate(Date = dmy(Date)) %>%
mutate(Date = as.character(format(Date, format="%Y-%m-%d"))) #%>%
#mutate(.[[3]] = as.numeric( sub(",", ".", .[[3]])))
## Travail des données de VOU ##
if(station == "VOUmercantine" | station == "VOUsurchauffant" | station == "AIN22-2" | station == "AIN37-2"){
dataaimporterPartie1 <-
dataaimporter %>%
dplyr::select(2:3,5) %>%
rename(Heure = 2, Valeur = 3) %>%
mutate(Capteur = emetteur) %>%
mutate(Valeur = as.numeric( sub(",", ".", Valeur))) %>%
mutate(typemesure = "Barométrie") %>%
mutate(unite = "mBar")
dataaimporterPartie2 <-
dataaimporter %>%
dplyr::select(2,3,8) %>%
rename(Heure = 2, Valeur = 3) %>%
mutate(Capteur = capteur) %>%
mutate(Valeur = as.numeric( sub(",", ".", Valeur))) %>%
mutate(typemesure = "Thermie") %>%
mutate(unite = "°C")
}
## Travail des données de l'Ain à Ney ##
if(station == "AIN22-2"){
# Piézo brute
dataaimporterPartie3 <-
dataaimporter %>%
dplyr::select(2,3,7) %>%
rename(Heure = 2, Valeur = 3) %>%
mutate(Capteur = capteur) %>%
mutate(Valeur = as.numeric( sub(",", ".", Valeur))) %>%
mutate(typemesure = "Piézométrie brute") %>%
mutate(unite = "cmH2O")
# Piézo nette
dataaimporterPartie4 <-
dataaimporter %>%
dplyr::select(2,3,9) %>%
rename(Heure = 2, Valeur = 3) %>%
mutate(Capteur = capteur) %>%
mutate(Valeur = as.numeric( sub(",", ".", Valeur))) %>%
mutate(typemesure = "Piézométrie compensée") %>%
mutate(unite = "cmH2O")
dataaimporterPartie2 <-
dataaimporterPartie2 %>%
bind_rows(dataaimporterPartie3) %>%
bind_rows(dataaimporterPartie4)
}
## Travail des données de l'Ain à Marigny ##
if(station == "AIN37-2"){
capteurQualite <- stringr::str_extract_all(Contexte, pattern = "s/n:[0-9]+", simplify = FALSE)[[1]][3] %>% str_replace("^s/n:", "")
# O2 concentration
dataaimporterPartie3 <-
dataaimporter %>%
dplyr::select(2,3,7) %>%
rename(Heure = 2, Valeur = 3) %>%
mutate(Capteur = capteur) %>%
mutate(Valeur = as.numeric( sub(",", ".", Valeur))) %>%
mutate(typemesure = "Oxygénation") %>%
mutate(unite = "mg/L")
# O2 saturation
dataaimporterPartie4 <-
dataaimporter %>%
dplyr::select(2,3,9) %>%
rename(Heure = 2, Valeur = 3) %>%
mutate(Capteur = capteur) %>%
mutate(Valeur = as.numeric( sub(",", ".", Valeur))) %>%
mutate(typemesure = "Oxygénation") %>%
mutate(unite = "%")
# O2 pression
dataaimporterPartie5 <-
dataaimporter %>%
dplyr::select(2,3,10) %>%
rename(Heure = 2, Valeur = 3) %>%
mutate(Capteur = capteur) %>%
mutate(Valeur = as.numeric( sub(",", ".", Valeur))) %>%
mutate(typemesure = "Oxygénation") %>%
mutate(unite = "torr")
#### Baromètre et capteur O2 traités -> reste sonde qualité à faire au moins pour la piézo brute + compensée
# Piézo brute
if(ncol(dataaimporter) > 24){ # Sinon il n'y a pas les données issues de l'Aquatroll (pas assez d'énergie par exemple)
# dataaimporterPartie6 <-
# dataaimporter %>%
# dplyr::select(2,3,28) %>%
# rename(Heure = 2, Valeur = 3) %>%
# mutate(Capteur = capteur) %>%
# mutate(Valeur = as.numeric( sub(",", ".", Valeur))) %>%
# mutate(typemesure = "Piézométrie brute") %>%
# mutate(unite = "kPa")
# Piézo nette
dataaimporterPartie7 <-
dataaimporter %>%
# dplyr::select(2,3,31) %>%
dplyr::select(2,3,30) %>%
rename(Heure = 2, Valeur = 3) %>%
mutate(Capteur = capteur) %>%
mutate(Valeur = as.numeric( sub(",", ".", Valeur))) %>%
mutate(typemesure = "Piézométrie compensée") %>%
mutate(unite = "cmH2O")
}
dataaimporterPartie2 <-
dataaimporterPartie2 %>%
bind_rows(dataaimporterPartie3) %>%
bind_rows(dataaimporterPartie4) %>%
bind_rows(dataaimporterPartie5) %>%
# {if(ncol(dataaimporter) > 24) bind_rows(., dataaimporterPartie6) else .} %>%
{if(ncol(dataaimporter) > 24) bind_rows(., dataaimporterPartie7) else .} # %>% Nutriments, conductivité, turbidité à ajouter ensuite
#bind_rows(dataaimporterPartie8)
}
## Regroupement des parties de données ##
dataaimporter <-
dataaimporterPartie1 %>%
bind_rows(dataaimporterPartie2) %>%
add_row(Date = dateTeletransmission, Heure = heureTeletransmission, Valeur = valeurTempTeletransmission, Capteur = emetteur, typemesure = "Thermie barométrique", unite = "°C") %>%
#rowwise() %>%
#mutate(Heure = ifelse(nchar(Heure == 5, paste0(Heure, ":00")))) %>%
mutate(Valeur = as.numeric(sub(",", ".", Valeur))) %>%
mutate(Valeur = round(Valeur,3)) %>%
mutate(coderhj = station)
}
if(typecapteur == "EDF"){
dataaimporter <-
read_csv(Localisation, skip = 1) %>%
rename(complet = !!names(.[1])) %>%
filter(!grepl("FIN", complet)) %>%
mutate(ligne = row_number())
dataaimporter <-
dataaimporter %>%
filter(grepl("SID", complet)) %>%
full_join(tibble(ligne = seq(1, max(dataaimporter$ligne), by = 1)), by = "ligne") %>%
arrange(ligne) %>%
fill(complet) %>%
rename(localisation = complet) %>%
right_join(dataaimporter, by = "ligne") %>%
dplyr::select(-ligne) %>%
filter(!grepl("SID", complet)) %>%
tidyr::separate(localisation, c("code1", "codemo", "coderhj", "typemesure", "unite", "code3"), sep = ';') %>%
mutate(complet = str_sub(complet, 1, -4)) %>% # Suppression du dernier ; en fin de ligne, car pose pb ensuite
tidyr::separate(complet, c("code11", "DateHeure", "valeur"), sep = ';') %>%
mutate(DateHeure = dmy_hm(DateHeure)) %>%
mutate(Date = ymd(format(DateHeure, format="%Y-%m-%d"))) %>%
mutate(Heure = format(DateHeure, format="%H:%M:%S")) %>%
dplyr::select(Date, Heure, coderhj, typemesure, valeur)
dataaimporter <-
dataaimporter %>%
filter(!is.na(valeur)) %>%
mutate(Heure = as.character(Heure)) %>%
mutate(typemesure = case_when(typemesure == "PL" ~ "Pluviométrie",
typemesure == "DE" ~ "Hydrologie",
typemesure == "TA" ~ "Thermie barométrique",
typemesure == "TE" ~ "Thermie",
typemesure == "CD" ~ "Conductivité",
typemesure == "O2" ~ "Oxygénation")
) %>%
mutate(unite = case_when(typemesure == "Pluviométrie" ~ "mm",
typemesure == "Hydrologie" ~ "m3/s",
typemesure == "Thermie barométrique" ~ "°C",
typemesure == "Thermie" ~ "°C",
typemesure == "Conductivité" ~ "µS/cm",
typemesure == "Oxygénation" ~ "mg/L")
)
}
if(typecapteur == "Aquaread"){
## Définition du point de suivi
modem <- basename(Localisation) %>% stringr::str_extract(pattern = "[:alnum:]+")
capteur <- ifelse(modem == "215640287", "21584010", NA_character_)
station <- ifelse(modem == "215640287", "ILA", NA_character_)
# modem;capteur;station
## Importation des données
dataaimporter <-
# read_csv(Localisation) %>%
# rename(Heure = Time) %>%
# rename(`Piézométrie compensée` = `Level(m)`) %>%
# rename(`Thermie piézométrique` = `Water Temperature(C)`) %>%
# rename(`Piézométrie brute` = `Water Pressure(mB)`) %>%
# rename(`Thermie barométrique` = `Air Temperature(C)`) %>%
# rename(`Barométrie` = `Air Pressure(mB)`) %>%
read_csv(Localisation, col_names = F) %>%
rename(Date = X2) %>%
rename(Heure = X3) %>%
rename(`Piézométrie compensée` = X4) %>%
rename(`Thermie piézométrique` = X5) %>%
rename(`Piézométrie brute` = X12) %>%
rename(`Thermie barométrique` = X13) %>%
rename(`Barométrie` = X14) %>%
select(Date, Heure, `Piézométrie compensée`, `Thermie piézométrique`, `Piézométrie brute`, `Thermie barométrique`, `Barométrie`) %>%
pivot_longer(-c(Date, Heure), names_to = "typemesure", values_to = "Valeur") %>%
mutate(Date = dmy(Date)) %>%
mutate(Heure = as.character(Heure)) %>%
mutate(Capteur = capteur) %>%
mutate(Coderhj = station) %>%
mutate(Valeur = as.numeric( sub(",", ".", Valeur))) %>%
mutate(Valeur = ifelse(typemesure == "Piézométrie compensée", Valeur*100, Valeur)) %>%
mutate(unite = case_when(typemesure == "Piézométrie compensée" ~ "cm H2O",
typemesure == "Piézométrie brute" ~ "mBar",
typemesure == "Thermie piézométrique" ~ "°C",
typemesure == "Thermie barométrique" ~ "°C",
typemesure == "Barométrie" ~ "mBar")
)
}
}
if(typemesure == "Oxygénation"){
if(typecapteur == "Non précisé"){
typecapteur = readline(prompt = "Type de capteur oxygène : 1 (Hobo) ou 2 (miniDOTindividuel) ou 3 (miniDOTregroupe) ou 4 (WiSens) : ")
if (!(typecapteur == 1 | typecapteur == 2)) {stop("Valeur non disponible")}
if (typecapteur == 1) {typecapteur <- "Hobo"}
if (typecapteur == 2) {typecapteur <- "miniDOTindividuel"}
if (typecapteur == 3) {typecapteur <- "miniDOTregroupe"}
if (typecapteur == 4) {typecapteur <- "WiSens"}
}
if(typecapteur == "miniDOTindividuel" | typecapteur == "miniDOTregroupe"){
if (typecapteur == "miniDOTindividuel") dataaimporter <- read_csv(Localisation, skip = 3, col_names = c("Time","Tension","Thermie", "Concentration", "Saturation"), col_types = "ddddd")
if (typecapteur == "miniDOTregroupe") dataaimporter <- read_csv(Localisation, skip = 9, col_names = c("Time", "Time2", "Time3", "Tension", "Thermie", "Concentration", "Saturation", "Autre"), col_types = "dccddddd")
dataaimporter <-
dataaimporter %>%
mutate(Time = as_datetime(Time)) %>%
mutate(Date = ymd(format(Time, format="%Y-%m-%d"))) %>%
mutate(Heure = format(Time, format="%H:%M:%S")) %>%
dplyr::select(Date, Heure, Concentration, Thermie, Saturation)
if(typecapteur == "miniDOTindividuel") dataaimporter <- dataaimporter %>% dplyr::select(-Saturation) %>% PC.saturationO2()
}
if(typecapteur == "WiSens"){
dataaimporter <-
read_csv2(Localisation, skip = 1, col_names = c("Time", "Pression", "Thermie", "Oxy_degre", "Concentration", "Saturation"), col_types = "cddddd") %>%
filter(!is.na(Thermie)) %>%
mutate(Time = as_datetime(Time)) %>%
mutate(Date = ymd(format(Time, format="%Y-%m-%d"))) %>%
mutate(Heure = format(Time, format="%H:%M:%S")) %>%
dplyr::select(Date, Heure, Concentration, Pression, Thermie, Saturation)
}
dataaimporter <-
dataaimporter %>%
filter(!is.na(Thermie)) %>%
mutate(Heure = as.character(Heure)) %>%
tidyr::gather(typemesure, Valeur, Concentration:Saturation) %>%
mutate(unite = ifelse(typemesure == "Thermie", "°C", NA_character_)) %>%
mutate(unite = ifelse(typemesure == "Concentration", "mg/L", unite)) %>%
mutate(unite = ifelse(typemesure == "Saturation", "%", unite)) %>%
mutate(unite = ifelse(typemesure == "Pression", "Bar", unite)) %>%
mutate(typemesure = ifelse(grepl("Concentration|Saturation", typemesure), "Oxygénation", typemesure))
}
if(typemesure == "Pluviométrie"){
}
if(typemesure == "Hydrologie"){
# Format récupéré depuis l'API Hub'Eau en .csv :
if(typefichier == "Interne"){
dataaimporter <- Localisation
dataaimporter <-
dataaimporter %>%
# rename_all(~sub("<", "", .x)) %>%
# rename_all(~sub(">", "", .x)) %>%
mutate(DateHeure = ymd_hms(date_obs)) %>%
mutate(Date = format(DateHeure, format="%Y-%m-%d")) %>%
mutate(Heure = format(DateHeure, format="%H:%M:%S")) %>%
mutate(coderhj = code_site) %>%
mutate(capteur = "Sonde DREAL") %>%
mutate(Valeur = resultat_obs/10000) %>% # Les données en sortie de l'API sont en L/s, donc on convertit en m3/s. Il faut toutefois diviser par 10000 au lieu de 1000 car les données en sortie sont au format 903.0 et le .0 est mangé par read_csv2 et devient 9030.
# mutate(unite = "L/s") %>%
mutate(unite = "m3/s") %>%
mutate(typemesure = glue("Hydrologie - {grandeur_hydro}")) %>%
mutate(validation = libelle_qualification_obs) %>%
mutate(mode_acquisition = libelle_methode_obs) %>%
filter(is.na(Valeur) != T) %>%
select(coderhj, capteur, Date, Heure, Valeur, unite, typemesure, validation, mode_acquisition)
} # Fin d'importation d'un format récupéré depuis l'API Hub'Eau en .csv :
# Format exporté/téléchargé de manière classique via un navigateur depuis hydroportail en .csv :
if(typefichier == ".csv"){
dataaimporter <- read_csv2(Localisation, show_col_types = FALSE) %>% filter(row_number() > 1)
dataaimporter <-
dataaimporter %>%
rename_all(~sub("<", "", .x)) %>%
rename_all(~sub(">", "", .x)) %>%
mutate(DateHeure = ymd_hms(DtObsElaborHydro)) %>%
mutate(Date = format(DateHeure, format="%Y-%m-%d")) %>%
mutate(Heure = format(DateHeure, format="%H:%M:%S")) %>%
mutate(coderhj = CdSiteHydro) %>%
mutate(capteur = "Sonde DREAL") %>%
mutate(Valeur = as.numeric(sub(",", ".", ResObsElaborHydro))) %>%
mutate(unite = "L/s") %>%
mutate(typemesure = glue("Hydrologie - {TypDeGrdSerieObsElaborHydro}")) %>%
mutate(validation = QualifObsElaborHydro) %>%
mutate(mode_acquisition = MethObsElaborHydro) %>%
filter(is.na(Valeur) != T) %>%
select(coderhj, capteur, Date, Heure, Valeur, unite, typemesure, validation, mode_acquisition)
} # Fin d'importation d'un format exporté/téléchargé de manière classique via un navigateur depuis hydroportail en .csv
} # Fin d'importation de données d'hydrologie
## Tri ##
dataaimporter <-
dataaimporter %>%
arrange(Date, Heure)
## Transformation des champs ##
dataaimporter <-
dataaimporter %>%
rename_all(list(~stringi::stri_trans_general(., "latin-ascii"))) %>% # Pour remplacer les caractères accentués par les mêmes sans accents
rename_all(list(~paste0("chmes_",.))) %>%
rename_all(list(~gsub("[[:punct:]]", "_", .))) %>%
rename_all(list(~tolower(.)))
}
#### Suivis ####
if(Type == "Suivis"){
SuiviTerrain <-
structure(list(id = numeric(0), chsvi_mo = logical(0), chsvi_coderhj = character(0),
chsvi_typesuivi = character(0), chsvi_operateurs = logical(0),
chsvi_date = logical(0), chsvi_heure = logical(0), chsvi_capteur = logical(0),
chsvi_valeur = logical(0), chsvi_unite = character(0), chsvi_profondeur = logical(0), chsvi_action = logical(0),
chsvi_fonctionnement = logical(0), chsvi_qualite = character(0),
chsvi_actionafaire = logical(0), chsvi_remarques = logical(0),
`_modif_utilisateur` = logical(0), `_modif_type` = logical(0),
`_modif_date` = logical(0)), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, 0L))
dataaimporter <- read_excel(Localisation, sheet = feuille)
## Renommage des champs ##
dataaimporter <-
dataaimporter %>%
rename_at(vars(matches("Valeur")), list(~str_replace(., "Valeur", "chsvi_valeur"))) %>%
rename_at(vars(matches("Valeur manuelle")), list(~str_replace(., "Valeur manuelle", "chsvi_valeur"))) %>%
rename_at(vars(matches("Profondeur")), list(~str_replace(., "Profondeur", "chsvi_profondeur"))) %>%
rename_at(vars(matches("Température manuelle")), list(~str_replace(., "Température manuelle", "chsvi_valeur"))) %>%
rename_at(vars(matches("Tmanuelle")), list(~str_replace(., "Tmanuelle", "chsvi_valeur"))) %>%
rename_at(vars(matches("MO")), list(~str_replace(., "MO", "chsvi_mo"))) %>%
rename_at(vars(matches("Maître d'ouvrage")), list(~str_replace(., "Maître d'ouvrage", "chsvi_mo"))) %>%
rename_at(vars(ends_with("Operateurs")), list(~str_replace(., "Operateurs", "chsvi_operateurs"))) %>%
rename_at(vars(ends_with("Opérateur")), list(~str_replace(., "Opérateur", "chsvi_operateurs"))) %>%
rename_at(vars(ends_with("Opérateurs")), list(~str_replace(., "Opérateurs", "chsvi_operateurs"))) %>%
rename_at(vars(matches("CodeRDT")), list(~str_replace(., "CodeRDT", "chsvi_coderhj"))) %>%
rename_at(vars(matches("Station")), list(~str_replace(., "Station", "chsvi_coderhj"))) %>%
rename_at(vars(matches("TypeSuivi")), list(~str_replace(., "TypeSuivi", "chsvi_typesuivi"))) %>%
rename_at(vars(matches("Date")), list(~str_replace(., "Date", "chsvi_date"))) %>%
rename_at(vars(matches("Heure")), list(~str_replace(., "Heure", "chsvi_heure"))) %>%
rename_at(vars(matches("Capteur")), list(~str_replace(., "Capteur", "chsvi_capteur"))) %>%
rename_at(vars(matches("Numéro sonde")), list(~str_replace(., "Numéro sonde", "chsvi_capteur"))) %>%
rename_at(vars(matches("Unité")), list(~str_replace(., "Unité", "chsvi_unite"))) %>%
rename_at(vars(matches("Unite")), list(~str_replace(., "Unite", "chsvi_unite"))) %>%
rename_at(vars(matches("Action")), list(~str_replace(., "Action", "chsvi_action"))) %>%
rename_at(vars(matches("Fonctionnement")), list(~str_replace(., "Fonctionnement", "chsvi_fonctionnement"))) %>%
rename_at(vars(matches("Qualité")), list(~str_replace(., "Qualité", "chsvi_qualite"))) %>%
rename_at(vars(matches("Qualite")), list(~str_replace(., "Qualite", "chsvi_qualite"))) %>%
rename_at(vars(starts_with("Remarque")), list(~str_replace(., "Remarque", "chsvi_remarques"))) %>%
rename_at(vars(matches("AFaire")), list(~str_replace(., "AFaire", "chsvi_actionafaire"))) %>%
rename_at(vars(matches("chsvi_action à réaliser lors de la prochaine visite")), list(~str_replace(., "chsvi_action à réaliser lors de la prochaine visite", "chsvi_actionafaire"))) %>%
rename_at(vars(matches("ToDo")), list(~str_replace(., "ToDo", "chsvi_actionafaire"))) %>%
rename_at(vars(matches("A faire Printemps 2019")), list(~str_replace(., "A faire Printemps 2019", "chsvi_actionafaire"))) %>%
dplyr::select(-contains("SuiviTerrainID")) %>%
dplyr::select(-contains("saisie")) %>%
mutate('_modif_utilisateur' = NA) %>%
mutate('_modif_type' = NA) %>%
mutate('_modif_date' = NA)
## Complément des données ##
dataaimporter <-
dataaimporter %>%
rowwise() %>%
mutate(chsvi_typesuivi = ifelse("chsvi_typesuivi" %in% names(.) & typemesure == "Thermie", chsvi_typesuivi, "Thermie")) %>%
mutate(chsvi_unite = ifelse("chsvi_unite" %in% names(.) & typemesure == "Thermie", chsvi_unite, "°C")) %>%
mutate(chsvi_qualite = ifelse("chsvi_qualite" %in% names(.), chsvi_qualite, as.character(NA))) %>%
mutate(chsvi_profondeur = ifelse("chsvi_profondeur" %in% names(.), chsvi_profondeur, as.character(NA))) %>%
mutate(chsvi_actionafaire = ifelse("chsvi_actionafaire" %in% names(.), chsvi_actionafaire, as.character(NA))) %>%
ungroup() %>%
mutate(id = NA_integer_)
if(typemesure != "Thermie") stop(paste0("Complément des données non développés pour le type de mesures ",typemesure))
## Formatage des données ##
# Réalisé dans BDD.format
## Filtrage des données ##
dataaimporter <-
dataaimporter %>%
filter(!is.na(chsvi_date))
## Modification de l'ordre des champs ##
dataaimporter <-
dataaimporter %>%
{if (!("Modification" %in% names(dataaimporter))) dplyr::select(., match(colnames(SuiviTerrain), names(.))) else .} %>%
{if ("Modification" %in% names(dataaimporter)) dplyr::select(., match(colnames(SuiviTerrain), names(.)), contains("Modification")) else .} # Afin de conserver temporairement une hypothétique colonne Modification qui permet de repérer les lignes modifiées dans le cas de nettoyages massifs
}
#### Stations ####
if(Type == "Stations"){
## Chargement des données ##
dataaimporter <- read_excel(Localisation, sheet = feuille)
## Transformation ##
dataaimporter <-
dataaimporter %>%
rename_at(vars(contains("CodeRDT")), list(~str_replace(., "CodeRDT", "coderhj"))) %>%
rename_at(vars(contains("X")), list(~str_replace(., "X", "coord_x"))) %>%
rename_at(vars(contains("Y")), list(~str_replace(., "Y", "coord_y"))) %>%
rename_at(vars(contains("LIIE")), list(~str_replace(., "LIIE", ""))) %>%
rename_at(vars(contains("TypeCoord")), list(~str_replace(., "TypeCoord", "coord_type"))) %>%
rename_at(vars(contains("CommuneINSEE")), list(~str_replace(., "CommuneINSEE", "commune"))) %>%
rename_at(vars(contains("Ecosystème")), list(~str_replace(., "Ecosystème", "milieu"))) %>%
rename_at(vars(contains("Code hydro")), list(~str_replace(., "Code hydro", "milieucodehydro"))) %>%
rename_at(vars(contains("ReseauThermie")), list(~str_replace(., "ReseauThermie", "reseauthermietype"))) %>%
rename_at(vars(contains("Thermie")), list(~str_replace(., "Thermie", "suivithermie"))) %>%
rename_at(vars(contains("Piezo")), list(~str_replace(., "Piezo", "suivipiezo"))) %>%
rename_at(vars(contains("Hydro")), list(~str_replace(., "Hydro", "suivihydro"))) %>%
rename_at(vars(contains("Type")), list(~str_replace(., "Type", "suivihydro"))) %>%
rename_at(vars(contains("O2")), list(~str_replace(., "O2", "suivio2"))) %>%
rename_at(vars(contains("Pluvio")), list(~str_replace(., "Pluvio", "suivipluvio"))) %>%
rename_at(vars(contains("CodCONT")), list(~str_replace(., "CodCONT", "codecontextepdpg"))) %>%
rename_at(vars(contains("Sous_bassi")), list(~str_replace(., "Sous_bassi", "sousbassin"))) %>%
rename_at(vars(contains("DistSource")), list(~str_replace(., "DistSource", "distancesource"))) %>%
rename_at(vars(contains("Tmm30j")), list(~str_replace(., "Tmm30j", "temperaturemax"))) %>%
rename_at(vars(contains("Sectionmou")), list(~str_replace(., "Sectionmou", "sectionmouillee"))) %>%
rename_at(vars(contains("LLitMin")), list(~str_replace(., "LLitMin", "largeurlitmineur"))) %>%
rename_at(vars(matches("LLitEti")), list(~str_replace(., "LLitEti", "largeurlitetiage"))) %>%
rename_at(vars(starts_with("NTT")), list(~str_replace(., "NTT", "typetheorique"))) %>%
rename_at(vars(matches("0NGFéchelle")), list(~str_replace(., "0NGFéchelle", "zcapteur"))) %>%
rename_at(vars(contains("ProfSondeE")), list(~str_replace(., "ProfSondeE", "profsonde"))) %>%
rename_at(vars(contains("SurfaceBV")), list(~str_replace(., "SurfaceBV", "surfacebassinversant"))) %>%
rename_at(vars(contains("Remarque")), list(~str_replace(., "Remarque", "remarques"))) %>%
rename_all(list(~str_to_lower(.))) %>%
rename_all(list(~str_replace(., "[[:punct:]]", "_"))) %>%
rename_all(list(~str_replace(., "chsta_", ""))) %>% # car parfois déjà présent devant certains noms de colonnes dans excel
rename_all(list(~str_c("chsta_",.))) %>%
mutate(chsta_codesie = ifelse(!is.na(chsta_codesie) & nchar(chsta_codesie) == 7, glue("0{chsta_codesie}"), chsta_codesie)) %>%
mutate(chsta_coderhj = ifelse(!is.na(chsta_codemo) & is.na(chsta_coderhj), chsta_codemo, chsta_coderhj)) %>%
mutate(chsta_coord_x = ifelse(is.na(chsta_coord_x) & "chsta_coord_xl93" %in% names(.), chsta_coord_xl93, chsta_coord_x)) %>%
mutate(chsta_coord_y = ifelse(is.na(chsta_coord_y) & "chsta_coord_yl93" %in% names(.), chsta_coord_yl93, chsta_coord_y)) %>%
mutate(chsta_coord_x = ifelse(is.na(chsta_coord_x) & "chsta_coord_xliie" %in% names(.), chsta_coord_xliie, chsta_coord_x)) %>%
mutate(chsta_coord_y = ifelse(is.na(chsta_coord_y) & "chsta_coord_yliie" %in% names(.), chsta_coord_yliie, chsta_coord_y)) %>%
dplyr::select(-(matches("chsta_stationid"))) %>%
dplyr::select(-(matches("chsta_coord_xliie"))) %>%
dplyr::select(-(matches("chsta_coord_yliie"))) %>%
dplyr::select(-(matches("chsta_coord_xl93"))) %>%
dplyr::select(-(matches("chsta_coord_yl93"))) %>%
dplyr::select(-(matches("chsta_coord_xamont"))) %>%
dplyr::select(-(matches("chsta_coord_yaval"))) %>%
rowwise() %>%
mutate(chsta_distancesource_confluencedrainprincipal = ifelse("chsta_distancesource_confluencedrainprincipal" %in% names(.), chsta_distancesource_confluencedrainprincipal, NA)) %>%
mutate(chsta_milieucodehydro = ifelse("chsta_milieucodehydro" %in% names(.), chsta_milieucodehydro, NA)) %>%
mutate(chsta_bassin = ifelse("chsta_bassin" %in% names(.), chsta_bassin, NA)) %>%
mutate(chsta_sousbassin = ifelse("chsta_sousbassin" %in% names(.), chsta_sousbassin, NA)) %>%
mutate(chsta_commune = ifelse("chsta_commune" %in% names(.), chsta_commune, NA)) %>%
mutate(chsta_departement = ifelse("chsta_departement" %in% names(.), chsta_departement, NA)) %>%
mutate(chsta_pays = ifelse("chsta_pays" %in% names(.), chsta_pays, NA)) %>%
mutate(chsta_transmission = ifelse("chsta_transmission" %in% names(.), chsta_transmission, NA)) %>%
mutate(chsta_transmission = ifelse(is.na(chsta_transmission), "Non", chsta_transmission)) %>%
mutate(chsta_fonctionnement = ifelse("chsta_fonctionnement" %in% names(.), chsta_fonctionnement, NA)) %>%
mutate(chsta_suivithermie = ifelse("chsta_suivithermie" %in% names(.), chsta_suivithermie, NA)) %>%
mutate(chsta_codemo = ifelse("chsta_codemo" %in% names(.), chsta_codemo, NA)) %>%
mutate(chsta_codesie = ifelse("chsta_codesie" %in% names(.), chsta_codesie, NA)) %>%
mutate(chsta_mo = ifelse("chsta_mo" %in% names(.), chsta_mo, NA)) %>%
mutate(chsta_coord_type = ifelse("chsta_coord_type" %in% names(.), chsta_coord_type, NA)) %>%
mutate(chsta_reseauthermietype = ifelse("chsta_reseauthermietype" %in% names(.), chsta_reseauthermietype, NA)) %>%
mutate(chsta_suivipiezo = ifelse("chsta_suivipiezo" %in% names(.), chsta_suivipiezo, NA)) %>%
mutate(chsta_suivio2 = ifelse("chsta_suivio2" %in% names(.), chsta_suivio2, NA)) %>%
mutate(chsta_suivipluvio = ifelse("chsta_suivipluvio" %in% names(.), chsta_suivipluvio, NA)) %>%
mutate(chsta_typetheorique = ifelse("chsta_typetheorique" %in% names(.), chsta_typetheorique, NA)) %>%
mutate(chsta_altitude = ifelse("chsta_altitude" %in% names(.), chsta_altitude, NA)) %>%
mutate(chsta_codecontextepdpg = ifelse("chsta_codecontextepdpg" %in% names(.), chsta_codecontextepdpg, NA)) %>%
mutate(chsta_sprep = ifelse("chsta_sprep" %in% names(.), chsta_sprep, NA)) %>%
mutate(chsta_distancesource = ifelse("chsta_distancesource" %in% names(.), chsta_distancesource, NA)) %>%
mutate(chsta_temperaturemax = ifelse("chsta_temperaturemax" %in% names(.), chsta_temperaturemax, NA)) %>%
mutate(chsta_sectionmouillee = ifelse("chsta_sectionmouillee" %in% names(.), chsta_sectionmouillee, NA)) %>%
mutate(chsta_durete = ifelse("chsta_durete" %in% names(.), chsta_durete, NA)) %>%
mutate(chsta_largeurlitmineur = ifelse("chsta_largeurlitmineur" %in% names(.), chsta_largeurlitmineur, NA)) %>%
mutate(chsta_largeurlitetiage = ifelse("chsta_largeurlitetiage" %in% names(.), chsta_largeurlitetiage, NA)) %>%
mutate(chsta_pente = ifelse("chsta_pente" %in% names(.), chsta_pente, NA)) %>%
mutate(chsta_carteign = ifelse("chsta_carteign" %in% names(.), chsta_carteign, NA)) %>%
mutate(chsta_rive = ifelse("chsta_rive" %in% names(.), chsta_rive, NA)) %>%
mutate(chsta_ancrage = ifelse("chsta_ancrage" %in% names(.), chsta_ancrage, NA)) %>%
mutate(chsta_acces = ifelse("chsta_acces" %in% names(.), chsta_acces, NA)) %>%
mutate(chsta_detailsloc = ifelse("chsta_detailsloc" %in% names(.), chsta_detailsloc, NA)) %>%
mutate(chsta_description = ifelse("chsta_description" %in% names(.), chsta_description, NA)) %>%
mutate(chsta_remarques = ifelse("chsta_remarques" %in% names(.), chsta_remarques, NA)) %>%
mutate(chsta_ordretournee = ifelse("chsta_ordretournee" %in% names(.), chsta_ordretournee, NA)) %>%
mutate(chsta_impacts = ifelse("chsta_impacts" %in% names(.), chsta_impacts, NA)) %>%
mutate(chsta_profsonde = ifelse("chsta_profsonde" %in% names(.), chsta_profsonde, NA)) %>%
mutate(chsta_substrats = ifelse("chsta_substrats" %in% names(.), chsta_substrats, NA)) %>%
mutate(chsta_distberge = ifelse("chsta_distberge" %in% names(.), chsta_distberge, NA)) %>%
mutate(chsta_ombrage = ifelse("chsta_ombrage" %in% names(.), chsta_ombrage, NA)) %>%
mutate(chsta_facies = ifelse("chsta_facies" %in% names(.), chsta_facies, NA)) %>%
mutate(chsta_numphoto = ifelse("chsta_numphoto" %in% names(.), chsta_numphoto, NA)) %>%
mutate(chsta_zbouchon = ifelse("chsta_zbouchon" %in% names(.), chsta_zbouchon, NA)) %>%
mutate(chsta_typez = ifelse("chsta_typez" %in% names(.), chsta_typez, NA)) %>%
mutate(chsta_hcapteurbouchon = ifelse("chsta_hcapteurbouchon" %in% names(.), chsta_hcapteurbouchon, NA)) %>%
mutate(chsta_url = ifelse("chsta_url" %in% names(.), chsta_url, NA)) %>%
mutate(chsta_module = ifelse("chsta_module" %in% names(.), round(as.numeric(chsta_module),3), NA)) %>%
mutate(chsta_qmna5 = ifelse("chsta_qmna5" %in% names(.), chsta_qmna5, NA)) %>%
mutate(chsta_q2 = ifelse("chsta_q2" %in% names(.), chsta_q2, NA)) %>%
mutate(chsta_q5 = ifelse("chsta_q5" %in% names(.), chsta_q5, NA)) %>%
mutate(chsta_q10 = ifelse("chsta_q10" %in% names(.), chsta_q10, NA)) %>%
mutate(chsta_q20 = ifelse("chsta_q20" %in% names(.), chsta_q20, NA)) %>%
mutate(chsta_q30 = ifelse("chsta_q30" %in% names(.), chsta_q30, NA)) %>%
mutate(chsta_q50 = ifelse("chsta_q50" %in% names(.), chsta_q50, NA)) %>%
mutate(chsta_q100 = ifelse("chsta_q100" %in% names(.), chsta_q100, NA)) %>%
mutate(chsta_q300 = ifelse("chsta_q300" %in% names(.), chsta_q300, NA)) %>%
mutate(chsta_surfacebassinversant = ifelse("chsta_surfacebassinversant" %in% names(.), chsta_surfacebassinversant, NA)) %>%
ungroup() %>%
# dplyr::select(-(matches("chsta_afaire"))) %>%
# dplyr::select(-(matches("chsta_numcarte"))) %>%
# dplyr::select(-(matches("chsta_projection"))) %>%
# dplyr::select(-(matches("chsta_type"))) %>%
# dplyr::select(-(matches("chsta_profondeur"))) %>%
dplyr::select(chsta_coderhj,
chsta_codemo,
chsta_codesie,
chsta_mo,
chsta_milieu,
chsta_milieucodehydro,
chsta_bassin,
chsta_sousbassin,
chsta_commune,
chsta_departement,
chsta_pays,
chsta_coord_x,
chsta_coord_y,
chsta_coord_type,
chsta_fonctionnement,
chsta_transmission,
chsta_suivithermie,
chsta_reseauthermietype,
chsta_suivipiezo,
chsta_suivihydro,
chsta_suivio2,
chsta_suivipluvio,
chsta_typetheorique,
chsta_altitude,
chsta_codecontextepdpg,
chsta_sprep,
chsta_distancesource,
chsta_distancesource_confluencedrainprincipal,
chsta_temperaturemax,
chsta_sectionmouillee,
chsta_durete,
chsta_largeurlitmineur,
chsta_largeurlitetiage,
chsta_pente,
chsta_surfacebassinversant,
chsta_carteign,
chsta_rive,
chsta_ancrage,
chsta_acces,
chsta_detailsloc,
chsta_description,
chsta_url,
chsta_remarques,
chsta_ordretournee,
chsta_impacts,
chsta_profsonde,
chsta_substrats,
chsta_distberge,
chsta_ombrage,
chsta_facies,
chsta_numphoto,
chsta_zcapteur,
chsta_zbouchon,
chsta_typez,
chsta_hcapteurbouchon,
chsta_module,
chsta_qmna5,
chsta_q2,
chsta_q5,
chsta_q10,
chsta_q20,
chsta_q30,
chsta_q50,
chsta_q100,
chsta_q300
) %>%
mutate(id = NA) %>%
mutate('_modif_utilisateur' = NA) %>%
mutate('_modif_type' = NA) %>%
mutate('_modif_date' = NA) %>%
dplyr::select(id, everything(), '_modif_utilisateur', '_modif_type', '_modif_date')
## Test ##
if(dataaimporter %>% filter(is.na(chsta_coord_x)) %>% nrow() > 0) stop("Présence de stations sans coordonnées")
}
#### Commentaires ####
if(Type == "Commentaires"){
## Chargement des données ##
Commentaires <-
structure(
list(
id = 2:3,
chres_coderhj = c("ORA2-7", "ANG0-7"),
chres_typemesure = c("Thermie", "Thermie"),
chres_anneebiol = c(2018L,
2014L),
chres_commentaire = c(
"Test commentaire",
"La chronique de température fait état d'une amplitude totale annuelle moyenne, avec une température médiane assez faible. Les variations intra-journalières sont assez réduites, mais augmentent légèrement à partir du printemps et durant la période estivale. Les pics de chaleur restent toutefois à des valeurs peu importantes."
),
`_modif_utilisateur` = c("jb", "jb"),
`_modif_type` = c("I",
"I"),
`_modif_date` = structure(
c(1571991458.03569, 1574241840.5954),
class = c("POSIXct", "POSIXt"),
tzone = ""
)
),
row.names = 1:2,
class = c("tbl_df",
"tbl", "data.frame")
)
dataaimporter <- read_excel(Localisation, sheet = feuille)
if(all(names(dataaimporter) %in% names(Commentaires)) == FALSE) stop("Le fichier source de commentaires contient des noms de colonne à corriger")
if(dataaimporter %>% nrow() == 0) dataaimporter <- commentaires_structure %>% select(contains("chres"))
}
#### Capteurs ####
if(Type == "Capteurs"){
## Chargement des données ##
Capteurs <-
structure(list(chcap_proprietaire = character(0), chcap_typecapteur = character(0),
chcap_modelecapteur = character(0), chcap_numerocapteur = character(0),
chcap_etat = character(0), chcap_projet = character(0), chcap_originecapteur = character(0),
chcap_datedebut = character(0), chcap_datefin = character(0),
chcap_remarques = character(0)), row.names = integer(0), class = c("tbl_df",
"tbl", "data.frame"))
dataaimporter <- read_excel(Localisation, sheet = feuille)
if(all(names(dataaimporter) %in% names(Capteurs)) == FALSE) stop("Le fichier source des capteurs contient des noms de colonne à corriger")
}
#### Sortie des résultats ####
return(dataaimporter)
} # Fin de la fonction
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.