Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
7bbc835
init
simondac Apr 11, 2025
c115571
init
simondac Apr 11, 2025
1b4ea89
delete
simondac Apr 14, 2025
ad7843d
livraison métaux lourds - plomb pour 1ère PR
simondac Apr 14, 2025
3b827e1
suppression ";" qui pose problème
simondac Apr 14, 2025
02814fc
correction resultats_udi_pb_dernier_prel.datetimeprel
simondac Apr 14, 2025
8959dc4
bug accepted_values corrigé
simondac Apr 14, 2025
59f4692
modif marginales
simondac Apr 14, 2025
a93e28a
mise à niveau suite chgt venv
simondac Apr 16, 2025
b06b8a4
correction
simondac Apr 16, 2025
2e60b61
Merge remote-tracking branch 'origin/main' into analyst/simon_met_lou…
simondac Apr 16, 2025
7b6ed93
ajout description et type
simondac Apr 16, 2025
c19ea13
vérif nom categorie suite à merge main dans branche
simondac Apr 16, 2025
07434f6
ajout "ref" dans .SQL
simondac Apr 17, 2025
b05a156
fix ref
simondac Apr 17, 2025
3e6058c
correction >=10 au lieu de >10
simondac Apr 17, 2025
6b9b694
fichier renommé
simondac Apr 18, 2025
5bb0d0b
ajout arsenic dernier prel
simondac Apr 18, 2025
d73f1e6
notebook complété suite à ajout Arsenic et simplification requête der…
simondac Apr 18, 2025
e0909bc
ajout arsenic
simondac Apr 18, 2025
66b043b
correction longueur lignes
simondac Apr 18, 2025
f70d90e
fix reference
simondac Apr 18, 2025
14609c0
fix ref ?
simondac Apr 18, 2025
bdfedaa
suppr unicité cdreseau
simondac Apr 18, 2025
646c366
modif suite review Vinca
simondac Apr 18, 2025
9fdb360
modif model
simondac Apr 18, 2025
ceb3626
modif indentation
simondac Apr 18, 2025
7c0ee63
modif indentation
simondac Apr 18, 2025
6eec0da
ajout commune dernier prel
simondac Apr 18, 2025
20772de
sup_limite_qualite renommé sup_limite_sanitaire
simondac Apr 20, 2025
08d13b2
fix sup_limite_sanitaire
simondac Apr 20, 2025
e24d493
Ajout requêtes prélèvements annuels UDI et Commune
simondac Apr 21, 2025
8d234f4
fix ligne vierge fin script
simondac Apr 21, 2025
1102c4c
ajout annuel dans model yaml
simondac Apr 21, 2025
380f2e3
suppr venv
simondac Apr 21, 2025
1fcd803
venv non indexés
simondac Apr 21, 2025
c26a6a6
venv non indexé
simondac Apr 21, 2025
483c484
modif test unicité
simondac Apr 21, 2025
65a83f1
Merge branch 'main' into analyst/simon_met_lourds_arsenic_pb
simondac Apr 21, 2025
b0e2a90
ajout categorie au test d'unicité sub_indus annuel
simondac Apr 21, 2025
900a936
ajout description et type manquatns
simondac Apr 21, 2025
eeba613
récupération des valeurs des champs limite_qualite et valeur_sanitair…
simondac Apr 23, 2025
68b3a61
Merge branch 'main' into analyst/simon_met_lourds_arsenic_pb
jereze Jul 21, 2025
6ca59e0
update int__resultats_metaux_lourds_*_dernier models
jereze Jul 21, 2025
56c137e
update int__resultats_metaux_lourds_*_annuel models
jereze Jul 21, 2025
b55806b
add metaux_lourds to results
jereze Jul 21, 2025
bd69c85
config website
jereze Jul 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4,190 changes: 4,190 additions & 0 deletions analytics/notebooks/resultats_metaux_lourds.ipynb

Large diffs are not rendered by default.

29 changes: 29 additions & 0 deletions dbt_/models/intermediate/int__union_resultats_commune.sql
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,35 @@ SELECT
FROM
{{ ref('int__resultats_cvm_commune_dernier') }}
UNION ALL
-- metaux_lourds
SELECT
inseecommune,
periode,
categorie,
null AS resultat,
ratio,
null AS date_dernier_prel,
null AS nb_parametres,
nb_prelevements,
null AS nb_sup_valeur_sanitaire,
null AS parametres_detectes
FROM
{{ ref('int__resultats_metaux_lourds_commune_annuel') }}
UNION ALL
SELECT
inseecommune,
periode,
categorie,
resultat,
null AS ratio,
date_dernier_prel,
nb_parametres,
null AS nb_prelevements,
null AS nb_sup_valeur_sanitaire,
parametres_detectes
FROM
{{ ref('int__resultats_metaux_lourds_commune_dernier') }}
UNION ALL
-- pesticide/metabolite
SELECT
inseecommune,
Expand Down
29 changes: 29 additions & 0 deletions dbt_/models/intermediate/int__union_resultats_udi.sql
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,35 @@ SELECT
FROM
{{ ref('int__resultats_cvm_udi_dernier') }}
UNION ALL
-- metaux_lourds
SELECT
cdreseau,
periode,
categorie,
null AS resultat,
ratio,
null AS date_dernier_prel,
null AS nb_parametres,
nb_prelevements,
null AS nb_sup_valeur_sanitaire,
null AS parametres_detectes
FROM
{{ ref('int__resultats_metaux_lourds_udi_annuel') }}
UNION ALL
SELECT
cdreseau,
periode,
categorie,
resultat,
null AS ratio,
date_dernier_prel,
nb_parametres,
null AS nb_prelevements,
null AS nb_sup_valeur_sanitaire,
parametres_detectes
FROM
{{ ref('int__resultats_metaux_lourds_udi_dernier') }}
UNION ALL
-- nitrate
SELECT
cdreseau,
Expand Down
196 changes: 196 additions & 0 deletions dbt_/models/intermediate/metaux_lourds/_int__metaux_lourds_models.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
models:
- name: int__resultats_metaux_lourds_udi_dernier
description: Résultats des métaux lourds (Plomb et Arsenic) par UDI pour la temporalité 'dernier prélèvement'
tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- cdreseau
- categorie
columns:
- name: cdreseau
description: "Code de l'installation (unité de distribution)"
type: VARCHAR
tests:
- not_null
- name: date_dernier_prel
description: "Date et heure du dernier prélèvement pris en compte dans l'analyse."
type: TIMESTAMP
tests:
- not_null
- dbt_utils.expression_is_true:
expression: ">= CURRENT_DATE - INTERVAL 1 YEAR"
- name: periode
description: "Période de résultat"
type: VARCHAR
tests:
- accepted_values:
values: ["dernier_prel"]
- name: nb_parametres
type: INTEGER
- name: categorie
type: VARCHAR
tests:
- accepted_values:
values:
- metaux_lourds_pb
- metaux_lourds_as
- name: resultat
description: "Interprétation du résultat en fonction des seuils sanitaires et des valeurs mesurées."
type: VARCHAR
tests:
- not_null
- accepted_values:
values:
- non_quantifie
- sup_limite_qualite
- sup_limite_qualite_2036
- sup_valeur_sanitaire
- inf_limite_qualite
- name: parametres_detectes
description: "JSON contenant les paramètres détectés (valtraduite > 0) avec leurs valeurs correspondantes."
type: JSON

- name: int__resultats_metaux_lourds_commune_dernier
description: Résultats des métaux lourds (Plomb et Arsenic) par commube pour la temporalité 'dernier prélèvement'
tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- inseecommune
- categorie
columns:
- name: inseecommune
description: "Code INSEE de la commune"
type: VARCHAR
tests:
- not_null
- name: date_dernier_prel
description: "Date et heure du dernier prélèvement pris en compte dans l'analyse."
type: TIMESTAMP
tests:
- not_null
- dbt_utils.expression_is_true:
expression: ">= CURRENT_DATE - INTERVAL 1 YEAR"
- name: periode
description: "Période de résultat"
type: VARCHAR
tests:
- accepted_values:
values: ["dernier_prel"]
- name: nb_parametres
type: INTEGER
- name: categorie
type: VARCHAR
tests:
- accepted_values:
values:
- metaux_lourds_pb
- metaux_lourds_as
- name: resultat
description: "Interprétation du résultat en fonction des seuils sanitaires et des valeurs mesurées."
type: VARCHAR
tests:
- not_null
- accepted_values:
values:
- non_quantifie
- sup_limite_qualite
- sup_limite_qualite_2036
- sup_valeur_sanitaire
- inf_limite_qualite
- name: parametres_detectes
description: "JSON contenant les paramètres détectés (valtraduite > 0) avec leurs valeurs correspondantes."
type: JSON

- name: int__resultats_metaux_lourds_commune_annuel
description: Résultats des métaux lourds (Plomb et Arsenic) par commune pour la temporalité 'bilan_annuel'
tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- inseecommune
- annee
- categorie
columns:
- name: inseecommune
description: "Code INSEE de la commune"
type: VARCHAR
tests:
- not_null
- name: annee
description: "Année de prélèvement"
type: smallint
tests:
- not_null
- name: categorie
description: "Catégorie du paramètre (pesticides, pfas, vcm, nitrates, etc.) selon la classification établie."
type: VARCHAR
tests:
- not_null
- accepted_values:
values:
- metaux_lourds_pb
- metaux_lourds_as
- name: periode
description: "Période du résultat"
type: VARCHAR
tests:
- dbt_utils.expression_is_true:
expression: "LIKE 'bilan_annuel%'"
- name: nb_depassements
type: INTEGER
- name: nb_prelevements
type: INTEGER
- name: ratio
description: Pourcentage de prélèvements qui dépassent la valeur sanitaire ou la limite de qualité
type: FLOAT
tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
max_value: 1

- name: int__resultats_metaux_lourds_udi_annuel
description: Résultats des métaux lourds (Plomb et Arsenic) par UDI pour la temporalité 'bilan_annuel'
tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- cdreseau
- annee
- categorie
columns:
- name: cdreseau
description: Code de l'installation (unité de distribution)
type: VARCHAR
tests:
- not_null
- name: annee
description: "Année de prélèvement"
type: smallint
tests:
- not_null
- name: categorie
description: "Catégorie du paramètre (pesticides, pfas, vcm, nitrates, etc.) selon la classification établie."
type: VARCHAR
tests:
- not_null
- accepted_values:
values:
- metaux_lourds_pb
- metaux_lourds_as
- name: periode
description: "Période du résultat"
type: VARCHAR
tests:
- dbt_utils.expression_is_true:
expression: "LIKE 'bilan_annuel%'"
- name: nb_depassements
type: INTEGER
- name: nb_prelevements
type: INTEGER
- name: ratio
description: Pourcentage de prélèvements qui dépassent la valeur sanitaire ou la limite de qualité
type: FLOAT
tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
max_value: 1
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
WITH
metaux_lourds_prels AS (
-- Certains prélèvements ont plusieurs analyses pour la même substance
-- Le SELECT DISTINCT ne dédoublonne pas ces cas là
-- Donc il n'y a pas d'unicité sur referenceprel dans cetre requête
SELECT DISTINCT
de_partition AS annee,
inseecommune,
cdparametresiseeaux,
valeur_sanitaire_1,
limite_qualite,
referenceprel,
datetimeprel,
valtraduite
FROM
{{ ref('int__resultats_udi_communes') }}
WHERE
cdparametresiseeaux IN ('PB', 'AS')
)

SELECT
inseecommune,
annee,
CASE
WHEN cdparametresiseeaux = 'PB' THEN 'metaux_lourds_pb'
WHEN cdparametresiseeaux = 'AS' THEN 'metaux_lourds_as'
END AS categorie,
'bilan_annuel_' || annee AS periode,
count(
DISTINCT
CASE
WHEN
cdparametresiseeaux = 'PB'
AND valtraduite IS NOT NULL AND valtraduite >= limite_qualite
THEN referenceprel
WHEN
cdparametresiseeaux = 'AS'
AND valtraduite IS NOT NULL
AND valtraduite >= valeur_sanitaire_1
THEN referenceprel
END
) AS nb_depassements,
count(DISTINCT referenceprel) AS nb_prelevements,
(
count(
DISTINCT
CASE
WHEN
cdparametresiseeaux = 'PB'
AND valtraduite IS NOT NULL
AND valtraduite >= limite_qualite
THEN referenceprel
WHEN
cdparametresiseeaux = 'AS'
AND valtraduite IS NOT NULL
AND valtraduite >= valeur_sanitaire_1
THEN referenceprel
END
)::float
/
count(DISTINCT referenceprel)::float
) AS ratio

FROM metaux_lourds_prels

GROUP BY inseecommune, annee, categorie
Loading