Skip to content
Snippets Groups Projects
Commit 664ddaf8 authored by Franck.Gaspard's avatar Franck.Gaspard
Browse files

analyse des prélèvements, analyses et des stations des données chargées pour l'actualisation 2024

parent a4e23b8e
Branches
No related tags found
1 merge request!3fusion de dev_actualisation_2024 vers master
library(nitrates.pdl)
# nitrates v0_14 et v0_15 ---------
nitrates_p90_v0_14 <- datalibaba::importer_data(
db = "datamart",
schema = "nitrates",
table = "nitrates_p90_v0_14"
) # 11987 obs
unique(nitrates_p90_v0_14$annee) %>% sort()
# [1] 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022
# au 16/10/2024
nitrates_P90_v0_15 <- nitrates_P90 # (en provenance du répertoire data du package nitrates.pdl)
unique(nitrates_P90_v0_15$annee)
# [1] 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023
nitrates_P90_v0_15 <- nitrates_P90_v0_15 %>%
dplyr::filter(annee != 2023) # 11806 obs
# les code_station qu'on trouve dans la v0_15 mais qu'on ne trouve pas dans la v0_14
x <- dplyr::anti_join(
nitrates_P90_v0_15 %>% dplyr::select(code_station) %>% dplyr::group_by(code_station) %>% dplyr::slice(1) %>% dplyr::ungroup(),
nitrates_p90_v0_14 %>% dplyr::select(code_station) %>% dplyr::group_by(code_station) %>% dplyr::slice(1) %>% dplyr::ungroup()
) # 31 obs
liste_1 <- unique(x$code_station) %>% sort()
# [1] 04592007 04592008 04613019 04661016 04670030 04670031 04670034 04671014 04671015 04683001 04683002 04710007 04710008 04710009
# [15] 04710010 04710011 04710012 04710013 04711014 04711016 04711017 04711018 04712021 085003232 BSS000TSFF BSS001DJXU BSS001HGBY BSS001MDPP
# [29] BSS001MECA BSS002PSHN BSS004EBNC
# les code_station qu'on trouvait dans la v0_14 mais qu'on ne trouve plus dans la v0_15
y <- dplyr::anti_join(
nitrates_p90_v0_14 %>% dplyr::select(code_station) %>% dplyr::group_by(code_station) %>% dplyr::slice(1) %>% dplyr::ungroup(),
nitrates_P90_v0_15 %>% dplyr::select(code_station) %>% dplyr::group_by(code_station) %>% dplyr::slice(1) %>% dplyr::ungroup()
) # 23 obs
liste_2 <- unique(y$code_station) %>% sort()
# [1] 00000X0000 035000242 04098400 04102990 04103200 04132800 04132900 04133000 04133010 04134700 04134750 04135400 04580000 04587001
# [15] 04653000 04661002 04661004 04661008 04781000 049000519 049000795 085000060 BSS001BLSU
# # les code_station qu'on trouve dans la v0_15 en 2023 mais qu'on ne trouve pas dans la v0_14
# nitrates_P90_v0_15_2023 <- nitrates_P90 %>%
# dplyr::filter(annee == 2023) # 793 obs
#
# z <- dplyr::anti_join(
# nitrates_P90_v0_15_2023 %>% dplyr::select(code_station) %>% dplyr::group_by(code_station) %>% dplyr::slice(1) %>% dplyr::ungroup(),
# nitrates_p90_v0_14 %>% dplyr::select(code_station) %>% dplyr::group_by(code_station) %>% dplyr::slice(1) %>% dplyr::ungroup()
# ) # 31 obs
# liste_3 <- unique(x$code_station) %>% sort()
# # [1] 04592007 04592008 04613019 04661016 04670030 04670031 04670034 04671014 04671015 04683001 04683002 04710007 04710008 04710009
# # [15] 04710010 04710011 04710012 04710013 04711014 04711016 04711017 04711018 04712021 085003232 BSS000TSFF BSS001DJXU BSS001HGBY BSS001MDPP
# # [29] BSS001MECA BSS002PSHN BSS004EBNC
# prélèvements et analyses v0_17 -----------
nitrate_analyse <- datalibaba::importer_data(
db = "si_eau",
schema = "nitrates",
table = "nitrate_analyse_v0_17"
) # 82725 obs
nitrate_prelevement <- datalibaba::importer_data(
db = "si_eau",
schema = "nitrates",
table = "nitrate_prelevement_v0_17"
) # 82343 obs
nitrate_assemblage <- dplyr::left_join(
nitrate_prelevement %>%
dplyr::select(code_prelevement, code_intervenant_prelev = code_intervenant, source_prelev = source, code_station, date_prelevement, heure_prelevement),
nitrate_analyse %>%
dplyr::select(code_analyse, code_intervenant_analyse = code_intervenant, code_prelevement, date_analyse, resultat_analyse),
by = c("code_prelevement")
) # 82693 obs
nb_analyse_par_prelevement <- nitrate_assemblage %>%
dplyr::group_by(code_prelevement) %>%
dplyr::count(name = "nb_analyse") %>%
dplyr::ungroup() # 82343 obs
nitrate_assemblage_suspicion_doublon <- dplyr::left_join(
nitrate_assemblage,
nb_analyse_par_prelevement) %>%
dplyr::filter(nb_analyse > 1)
# unique(nitrate_assemblage_suspicion_doublon$nb_analyse)
# [1] 2 3 4 6
# 677 obs dont 618 obs pour nb_analyse = 2, 45 obs pour nb_analyse = 3, 8 obs pour nb_analyse = 4, 1 obs pour nb_analyse = 6 pour un même prélèvement
# il ne s'agit pas de doublons, car les résultats des analyses pour un même prélèvement sont différentes
# stations SGBD et prélèvements v0_17 --------
station_esu <- datalibaba::importer_data(
db = "si_eau",
schema = "stations",
table = "station_esu"
) # 3675 obs
station_eso <- datalibaba::importer_data(
db = "si_eau",
schema = "stations",
table = "station_eso"
) # 2034 obs
station_sgbd <- dplyr::bind_rows(
station_esu,
station_eso
) %>%
dplyr::select(code_station, code_sise_eaux, dplyr::everything()) %>%
dplyr::rename(source_sgbd = source)# 5709 obs
station_prelev <- nitrate_assemblage %>%
dplyr::select(code_station, source_prelev) %>%
unique() # 1674 obs
station_commune_prelev_sgbd <- dplyr::semi_join(
station_prelev,
station_sgbd
) %>%
dplyr::left_join(
station_sgbd %>% dplyr::select(code_station, code_sise_eaux, source_sgbd)
) # 1563 obs
croisement_source_prelev_sgbd <- station_commune_prelev_sgbd %>%
dplyr::select(source_prelev, source_sgbd) %>%
unique()
station_non_commune_prelev_sgbd <- dplyr::anti_join(
station_prelev,
station_sgbd
) # 111 obs
station_non_commune_prelev_sgbd_donnees <- dplyr::left_join(station_non_commune_prelev_sgbd, nitrate_assemblage) # 2880 obs
station_prelev_code_sise_eaux_sgbd <- dplyr::semi_join(
station_prelev,
station_sgbd %>% dplyr::select(code_sise_eaux) %>% dplyr::filter(!is.na(code_sise_eaux)),
by = c("code_station" = "code_sise_eaux")
) # 0 obs
# nomenclature 973 -----
# https://mdm.sandre.eaufrance.fr/id/nsa/973/html -> dans inst/exdata/NSA_973_20241205_SANDRE.csv
# ARS/Naïades
# 044/BS
# 049/BX
# 053/CB
# 072/CU
# 085/DH
# exemple de station non trouvée dans station_sgbd :
# code_station : BX000024 source_prelev : Naïades
# correspond à la station suivante dans station_sgbd
# code_station : 049000024 source_prelev : ARS
# toutes les données de l'ARS de 2023 sont a priori récupérées en double de ce fait dans la table nitrates
# mais la constitution du référentiel des stations des Pays de la Loire (cf. data-raw/prepa_referentiel.R) permet de ne sélectionner
# qu'un seul jeu
# par contre, 83 (ARS) + 4 (Naïades) stations présentes dans la table nitrates, mais inconnues du référentiel des stations
# captages ---------
n_captage_p_r52 <- datalibaba::importer_data(
db = "si_eau",
schema = "captages",
table = "n_captage_p_r52"
) # 1063 obs
# names(n_captage_p_r52)
# [1] "departement_captage" "code_unite_gestion" "nom_unite_gestion" "code_captage" "nom_captage"
# [6] "type_installation" "usage_captage" "nature_eau_captage" "etat_installation" "motif_abandon"
# [11] "date_etat_installation" "code_responsable_suivi" "code_commune_captage" "nom_commune_captage" "code_bss"
# [16] "designation_bss" "coordonnee_x" "coordonnee_y" "coordonnee_z" "debit_moyen_m3j"
# [21] "the_geom"
captage_aep <- n_captage_p_r52 %>% dplyr::filter(usage_captage == "AEP") # 779 obs
x <- dplyr::semi_join(
captage_aep %>% dplyr::select(code_captage, usage_captage) %>% sf::st_drop_geometry(),
station_sgbd,
by = c("code_captage" = "code_station")
) # 67 obs
x2 <- dplyr::semi_join(
captage_aep %>% dplyr::select(code_captage, usage_captage) %>% sf::st_drop_geometry(),
station_non_commune_prelev_sgbd,
by = c("code_captage" = "code_station")
) %>%
dplyr::left_join(
station_non_commune_prelev_sgbd,
by = c("code_captage" = "code_station")
) # 10 obs
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment