library(tools4DCE)
Pour rendre les graphiques lisibles lorsqu'une longue chronique comporte quelques données très éloignées du reste de la gamme de mesure, on remplace ces données par une étiquette localisée au sommet ou à la base du graphique selon que la valeur non affichée est inférieure ou supérieure au reste de la gamme de valeurs.
Pour écrêter les valeurs on fait appel à la fonction filtre_donnees_extremes.
Par exemple si on veut remplacer toutes les données inférieures à 3 par 3 et toutes celles supérieures à 9 par 9 :
filtre_donnees_extremes(x=seq(1:10), xmin=3, xmax=9)
Elle sert à déterminer combien de chiffres significatifs il faut conserver sur l'axe des ordonnées dans le graphique final.
compte_decimales(3.234)
Fonction pour calculer les arrondis selon les règles usuelels en France (et non comme la fonction round qui arrondi différemment les nombres terminant par 0.5 selon si leur partie entière est paire ou impaire).
round(2.5) arrondi(2.5) round(1.5) arrondi(1.5)
Calcul le percentile selon les règles DCE. Dans l'exemple ci-dessous le percentile 90 correspond au 18ème rang sur 20 valeurs (rang = arrondi((20 x 0.9) + 0.5))
test<-sample(x=1:100, size=20, replace=T) test%>%sort PercentileDCE(test, type=0.9)
Les couleurs et les valeurs des seuils pour les différents paramètres sont listés dans le jeu de données base_seuils
head(base_seuils)
pour avoir la couleur on croise sur les colonnes TYPE et CLASSE avec la table couleurs_classes
head(couleurs_classes)
pour classer les levels on utilise la colonne CLASSE de la data.frame ordre_facteurs_qualite
head(ordre_facteurs_qualite)
Un objet de classe seuil sert à paramétrer les fonds colorer des graphiques. Il précise l'intervalle entre lequel il faut appliquer une classe de qualité et la couleur de la représentation graphique correspondante.
Pour créer un objet de classe seuil on utilise la fonction setSeuils
setSeuils( nom_parametre = "parametre test", nom_seuil = "AM 25 janv 2010", type_seuil = "DCE", code_parametre = "1301", synonymes_parametre = "1301", support = "3", code_unite = "27", base_seuils_color = tools4DCE::base_seuils %>% subset(NOM == "TEMPERATURE" & SPECIFICITE == "CYPRINICOLE") %>% left_join(couleurs_classes, by = c("CLASSE", "TYPE")) %>% select(SEUILMIN, SEUILMAX, CLASSE, NOM_COULEUR) %>% mutate_at("CLASSE", factor), bornesinfinclue = T )
Pour créer une liste de seuils prédéfinis à partir des fichiers de données il suffit de taper la commande makeSeuils().
A ce jour r length(makeSeuils())
seuils différents sont ainsi définis.
On peut se limiter à créer la liste pour un ensemble de codes paramètres en renseignant l'argument CdParametre.
Idem pour les codes support, fraction, pour les types de seuils (DCE ou NON_DCE), pour les spécificités (ex. SALMONICOLE ou CYPRINICOLE).
test<-makeSeuils(CdParametre=c("1340", "1301"), specificites=c("CAS_GENERAL", "CYPRINICOLE"), type_seuil = "DCE") print(test)
data0<-data.frame(DatePrel=c("2019-01-01 12:30:00", "2020-05-03 00:00:00","2020-10-25 12:30:00", "2021-07-18 12:30:00")%>%as.POSIXct(tz="Europe/Paris"), RsAna=c(12,35.5,58.3, 42), LqAna=c(3)) graphDCE_points(data0, seuils=makeSeuils(CdParametre = "1340", type_seuil="DCE"), affiche_LQ = T, ymini = 0)
En cas de points hors de l'échelle, la fonction trace remplace ces points par une étiquette colorée qui reprend la valeur du point manquant affiché de la couleur correspondant à sa classe de qualité.
graphDCE_points(data0, seuils=makeSeuils(CdParametre = "1340", type_seuil="DCE"), ymaxi=55, titre = "Nitrates", bilan_annuel = T, nom_legende = "Classe \nqualité")
En l'état, la fonction graphDCE_points ne permet pas d'afficher de légende pour l'affichage des LQ. Ce manque peut être contourné en combinant la fonction legend_LQ() avec la fonction plot_grid du package cowplot.
graph<-graphDCE_points(data0, seuils=makeSeuils(CdParametre = "1340", type_seuil="DCE"), affiche_LQ = T, ymini = 0) plot_grid(graph, legend_LQ(), rel_heights = c(9,1), ncol=1)
On peut également réaliser des graphiques en barre, par exemple pour faire des bilans annuels
data<-data.frame(annee=seq(2010,2013), RsAna=c(12,15.5,67,18.3)) graphDCE_bar(data, seuils=makeSeuils(CdParametre = "1340", type_seuil="DCE"),ymaxi=60)
La fonction affecte une classe permet d'affecter une classe à un résultat
affecte_une_classe(c(10,10.1,50, 50.1), seuil=makeSeuils(CdParametre="1340", type_seuil = "DCE"))
Le package permet de réaliser des graphiques bilans sur les taux de quantification.
donnees<-data.frame(Parametre=rep(letters[1:5], 100), RsAna=sample(0.1:100, 500, replace=TRUE), LqAna=c(0.5,1,2,6)) donnees<-donnees%>%mutate(RsAna=ifelse(RsAna<LqAna, LqAna, RsAna)) donnees<-donnees%>%mutate(CdRqAna=ifelse(RsAna>LqAna, "1", ifelse(sample(1:100,5)>10,"10","1"))) seuils<-makeSeuils(type_seuil="DCE", CdParametre = "1340") table_distribution(donnees, seuil=seuils)
Il permet également de faire le bilan par paramètre
donnees<-data.frame(parametres=rep(c("1301", "1340", "1335"), 100), RsAna=sample(0.1:100, 300, replace=TRUE), LqAna=c(0.5,1,6)) donnees<-donnees%>%mutate(RsAna=ifelse(RsAna<LqAna, LqAna, RsAna)) donnees<-donnees%>%mutate(CdRqAna=ifelse(RsAna>LqAna, "1", ifelse(sample(1:100,5)>10,"10","1"))) seuils<-makeSeuils(CdParametre=donnees$parametres%>%unique, specificites=c("CYPRINICOLE", rep("CAS_GENERAL",2)), type_seuil = "DCE") bilan<-groupe_tableau_distribution(donnees, col_CdParametre="parametres", col_CdSupport=NULL, col_CdFraction=NULL, col_CdUnite=NULL, seuils = seuils) print(bilan) seuils$TEMPERATURE@seuils
et de faire une sortie graphique de ce bilan
graphDCE_distribution(bilan, titre="Bilan par paramètre")
La fonction ajoute_nom_param permet d'ajouter à une data frame qui contient des codes paramètres SANDRE les noms correspondants
donnees<-data.frame(code=c("1301", "1302", "1303")) ajoute_nom_param(donnees, col_parametre="code")
La fonction ajoute_nom_unite permet d'ajouter à une data frame qui contient des codes unités SANDRE les symboles ou nom d'unité correspondants.
donnees<-data.frame(CdUniteMesure=c("129", "13", "133")) ajoute_nom_unite(donnees, col_unite="CdUniteMesure")
Le package tools4DCE offre plusieurs fonctions pour charger des données de qualité des eaux.
Le site http://www.naiades.eaufrance.fr/acces-donnees#/physicochimie permet d'exporter sous forme de fichiers .zip des résultats physicochimiques.
Le chargement de ces données se fait via la commande resultats<-importe_Naiades_PC("export.zip")
Il est possible de restreindre les résultats à une emprise géographique limitée en passant en option un objet sf de l'emprise d'intérêt.
Exemple : shp<-charge_shp_SAGE("Vilaine") resultats<-importe_Naiades_PC("export.zip", shp)
Les données sont stockées sous forme de liste de data.frame.
resultats[["analyses"]] contient les analyses, resultats[["cond_env"]] contient les conditions environnementales relevées lors des analyses resultats[["operations"]] contient le descriptif des opérations resultats[["CdRqAna"]] contient la signification des divers codes remarques resultats[["CdUniteMesure"]] contient la table de correspondance code sandre / nom de l'unité resultats[["CdInsituAna"]] contient la table de correspondance code sandre / nom des codes analyses in situ resultats[["CdAccreAna"]] contient la table de correspondance code sandre / nom des codes accréditation de l'analyse resultats[["CdStatutAna"]] contient la table de correspondance code sandre / nom du statut de l'analyse resultats[["CdDifficulteAna"]] contient la table de correspondance code sandre / nom des codes de difficulté d'analyses resultats[["CdProducteur"]] contient la table de correspondance code sandre / nom des producteurs de données
Le package permet l'import de fichiers xml au format QESU_PC_v2 tel que défini par le SANDRE
Exemple : Resultats<-import_QESU_PHY_v2("fichier.xml")
Les résultats sont stockés dans une liste de data.frame avec des noms de colonne identiques à ceux des imports Naïades
Le package permet l'import de fichiers xml au format QESU_PC_v3 tel que défini par le SANDRE
Exemple : Resultats<-import_QESU_PHY_v3("fichier.xml")
Les résultats sont stockés dans une liste de data.frame avec des noms de colonne identiques à ceux des imports Naïades
Le package permet d'importer les résultats d'Hub-Eau sous R facilement
On peut importer par code station
str(import_hubeau_staq_hbio(liste_stations=c("03174000", "04216000")))
Ou bien par emprise géographique (en se limitant éventellement aux stations qui ont des données sur une période déterminée et pour un type d'indice limités).
Vilaine<-charge_shp_SAGE(nom_sage="Vilaine") str(import_hubeau_staq_hbio(emprise=Vilaine, an_debut=2018, an_fin=2018, indice=c("poi")))
On peut importer les indices disponibles par code station. Ces indices sont remis en forme pour être directement valorisables avec les fonctions graphiques du package.
str(import_hubeau_indices_hbio(liste_stations=c("03174000", "04216000"), indice=c("mphy")))
Le programme contient des outils pour travailler avec les pesticides.
La fonction calcule_somme_pesticides permet de calculer, pour chaque prélèvement, la somme des pesticides (dont la liste des codes SANDRE peut être passée en option). Elle rend les résultats sous forme d'un tableau dont les colonnes sont compatibles avec l'utilisation des fonctions graphiques ou autre.
data<-data.frame(DatePrel=Sys.Date() + rep(sort(sample(1:500, 10)),3), RsAna=c(round(runif(60,0,0.8), 2)), LqAna=c(0.1), CdStationMesureEauxSurface=c("A","B","C"), CdParametre=c("1200","1201"), CdUniteMesure="133") data$CdRqAna<-ifelse(data$RsAna>=data$LqAna, "1","10") calcule_somme_pesticides(data)
graphDCE_points(calcule_somme_pesticides(data), seuils=makeSeuils(CdParametre="6276", type_seuil="AEP"), separ_stations = "CdStationMesureEauxSurface", ymini=0)
## convertir les différentes formes de l'azote data<-data.frame(CdParametre=c("1335", "1339", "1340", "1319"), RsAna=c(0.5,0.1,30,2), CdRqAna=c("1","10","1","1")) calcule_formes_azote(data, CdRqAna="CdRqAna")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.