Skip to content

Commit 05862ce

Browse files
authored
Mise à jour fichier référence et calculs pesticides/metabolites (#186)
* remove ATRZMET * update AMPA (non_pertinent) * MAJ fichier reference (colonnes limite_qualite, valeur_sanitaire_1 et valeur_sanitaire_1_unite impactées) * Add 2 new columns in ref file (limite_indicative and limite_indicative_unite) and update models * update metabolite calculations (add sup_limite_indicative situation) * update metabolite tests * update metabolite_specifique calculations and legend * Fix getAllEnabledCategories function to include enabled children * fix substances actives tests * fix pesticides tests
1 parent c61843f commit 05862ce

17 files changed

+971
-912
lines changed

dbt_/models/intermediate/_int__models.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,10 @@ models:
237237
description: "Limite de qualité selon le fichier de référence de Générations Futures."
238238
type: FLOAT
239239

240+
- name: limite_indicative
241+
description: "Limite indicative selon le fichier de référence de Générations Futures."
242+
type: FLOAT
243+
240244
- name: valeur_sanitaire_1
241245
description: "Valeur sanitaire de référence selon le fichier de référence de Générations Futures."
242246
type: FLOAT

dbt_/models/intermediate/int__resultats_udi_communes.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ resultats_with_ref AS (
4242
r.categorie_2,
4343
r.categorie_3,
4444
r.limite_qualite,
45+
r.limite_indicative,
4546
r.valeur_sanitaire_1,
4647
r.valeur_sanitaire_2
4748
FROM

dbt_/models/intermediate/int__valeurs_de_reference.sql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ SELECT
55
MAX(categorie_3) AS categorie_3,
66
MAX(limite_qualite) AS limite_qualite,
77
MAX(limite_qualite_unite) AS limite_qualite_unite,
8+
MAX(limite_indicative) AS limite_indicative,
9+
MAX(limite_indicative_unite) AS limite_indicative_unite,
810
MAX(valeur_sanitaire_1) AS valeur_sanitaire_1,
911
MAX(valeur_sanitaire_1_unite) AS valeur_sanitaire_1_unite,
1012
MAX(valeur_sanitaire_2) AS valeur_sanitaire_2,

dbt_/models/intermediate/pesticide/int__resultats_pesticide_udi_dernier.sql

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,17 @@ SELECT
4646
CASE
4747
WHEN BOOL_AND(valtraduite IS NULL OR valtraduite = 0) THEN 'non_quantifie'
4848
WHEN
49-
BOOL_OR(valtraduite IS NOT NULL AND valtraduite >= valeur_sanitaire_1)
49+
BOOL_OR(valtraduite >= valeur_sanitaire_1)
5050
THEN 'sup_valeur_sanitaire'
5151
WHEN
52-
BOOL_OR(valtraduite IS NOT NULL AND valtraduite >= limite_qualite)
52+
BOOL_OR(valtraduite >= limite_qualite)
5353
THEN 'sup_limite_qualite'
5454
WHEN
55-
BOOL_OR(valtraduite IS NOT NULL AND valtraduite < limite_qualite)
56-
THEN 'inf_limite_qualite'
55+
BOOL_OR(
56+
(limite_qualite IS NOT NULL AND valtraduite < limite_qualite)
57+
OR (valeur_sanitaire_1 IS NOT NULL AND valtraduite < valeur_sanitaire_1)
58+
)
59+
THEN 'inf_limite_qualite' -- TODO: rename to 'inf_limites' ?
5760
ELSE 'erreur'
5861
END AS resultat,
5962
TO_JSON(

dbt_/models/intermediate/pesticide/metabolite/_int__metabolite_models.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,8 @@ models:
8888
- accepted_values:
8989
values:
9090
- "non_quantifie"
91-
- "inf_limite_qualite"
91+
- "inf_limites"
92+
- "sup_limite_indicative"
9293
- "sup_limite_qualite"
9394
- "sup_valeur_sanitaire"
9495
- name: parametres_detectes

dbt_/models/intermediate/pesticide/metabolite/int__resultats_metabolite_udi_dernier.sql

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ last_pvl AS (
66
cdparametresiseeaux,
77
valtraduite,
88
limite_qualite,
9+
limite_indicative,
910
valeur_sanitaire_1,
1011
datetimeprel,
1112
DENSE_RANK()
@@ -32,6 +33,7 @@ aggregated AS (
3233
cdparametresiseeaux,
3334
MAX(valtraduite) AS valtraduite,
3435
MAX(limite_qualite) AS limite_qualite,
36+
MAX(limite_indicative) AS limite_indicative,
3537
MAX(valeur_sanitaire_1) AS valeur_sanitaire_1,
3638
MAX(datetimeprel) AS datetimeprel
3739
FROM last_pvl
@@ -54,8 +56,16 @@ SELECT
5456
BOOL_OR(valtraduite IS NOT NULL AND valtraduite >= limite_qualite)
5557
THEN 'sup_limite_qualite'
5658
WHEN
57-
BOOL_OR(valtraduite IS NOT NULL AND valtraduite < limite_qualite)
58-
THEN 'inf_limite_qualite'
59+
BOOL_OR(valtraduite IS NOT NULL AND valtraduite >= limite_indicative)
60+
THEN 'sup_limite_indicative'
61+
WHEN
62+
BOOL_OR(
63+
valtraduite IS NOT NULL
64+
AND (limite_qualite IS NULL OR valtraduite < limite_qualite)
65+
AND (limite_indicative IS NULL OR valtraduite <= limite_indicative)
66+
AND (limite_qualite IS NOT NULL OR limite_indicative IS NOT NULL)
67+
)
68+
THEN 'inf_limites'
5969
ELSE 'erreur'
6070
END AS resultat,
6171
TO_JSON(

dbt_/models/intermediate/pesticide/metabolite_specifique/_int__metabolite_specifique_models.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ models:
4545
- accepted_values:
4646
values:
4747
- "non_quantifie"
48-
- "inf_limite_qualite"
49-
- "sup_limite_qualite"
50-
- "inf_limite_qualite_sup_0_1"
5148
- "sup_valeur_sanitaire"
52-
- "sup_limite_qualite_sup_3"
49+
- "sup_limite_qualite"
50+
- "sup_limite_indicative"
51+
- "inf_limites_sup_0_1"
52+
- "inf_limites"
5353
- name: parametres_detectes
5454
description: "JSON contenant les paramètres détectés (valtraduite > 0) avec leurs valeurs correspondantes."
5555
type: JSON
@@ -152,11 +152,11 @@ models:
152152
- accepted_values:
153153
values:
154154
- "non_quantifie"
155-
- "inf_limite_qualite"
156-
- "sup_limite_qualite"
157-
- "inf_limite_qualite_sup_0_1"
158155
- "sup_valeur_sanitaire"
159-
- "sup_limite_qualite_sup_3"
156+
- "sup_limite_qualite"
157+
- "sup_limite_indicative"
158+
- "inf_limites_sup_0_1"
159+
- "inf_limites"
160160
- name: parametres_detectes
161161
description: "JSON contenant les paramètres détectés (valtraduite > 0) avec leurs valeurs correspondantes."
162162
type: JSON

dbt_/models/intermediate/pesticide/metabolite_specifique/int__resultats_metabolite_specifique_commune_dernier.sql

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,20 +55,20 @@ SELECT
5555
CASE
5656
WHEN valtraduite = 0 OR valtraduite IS null THEN 'non_quantifie'
5757
WHEN valtraduite >= valeur_sanitaire_1 THEN 'sup_valeur_sanitaire'
58-
-- On applique le seuil de 3µg/l uniquement pour le ESA-métolachlore et le R471811
59-
WHEN
60-
type_metabolite IN ('metabolite_esa_metolachlore', 'metabolite_chlorothalonil_r471811')
61-
AND valtraduite >= 3
62-
THEN 'sup_limite_qualite_sup_3'
6358
WHEN valtraduite >= limite_qualite THEN 'sup_limite_qualite'
59+
WHEN valtraduite >= limite_indicative THEN 'sup_limite_indicative'
6460
-- On applique le seuil de 0.1µg/l uniquement pour le ESA-métolachlore et le R471811
6561
WHEN
6662
valtraduite >= 0.1
6763
AND type_metabolite IN (
6864
'metabolite_esa_metolachlore', 'metabolite_chlorothalonil_r471811'
6965
)
70-
THEN 'inf_limite_qualite_sup_0_1'
71-
WHEN valtraduite < limite_qualite THEN 'inf_limite_qualite'
66+
THEN 'inf_limites_sup_0_1'
67+
WHEN
68+
(limite_indicative IS null AND valtraduite < limite_qualite)
69+
OR
70+
(limite_qualite IS null AND valtraduite < limite_indicative)
71+
THEN 'inf_limites'
7272
ELSE 'erreur'
7373
END AS resultat,
7474
JSON_OBJECT(CASE WHEN valtraduite > 0 THEN cdparametresiseeaux END, valtraduite)

dbt_/models/intermediate/pesticide/metabolite_specifique/int__resultats_metabolite_specifique_udi_dernier.sql

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,20 +55,20 @@ SELECT
5555
CASE
5656
WHEN valtraduite = 0 OR valtraduite IS null THEN 'non_quantifie'
5757
WHEN valtraduite >= valeur_sanitaire_1 THEN 'sup_valeur_sanitaire'
58-
-- On applique le seuil de 3µg/l uniquement pour le ESA-métolachlore et le R471811
59-
WHEN
60-
type_metabolite IN ('metabolite_esa_metolachlore', 'metabolite_chlorothalonil_r471811')
61-
AND valtraduite >= 3
62-
THEN 'sup_limite_qualite_sup_3'
6358
WHEN valtraduite >= limite_qualite THEN 'sup_limite_qualite'
59+
WHEN valtraduite >= limite_indicative THEN 'sup_limite_indicative'
6460
-- On applique le seuil de 0.1µg/l uniquement pour le ESA-métolachlore et le R471811
6561
WHEN
6662
valtraduite >= 0.1
6763
AND type_metabolite IN (
6864
'metabolite_esa_metolachlore', 'metabolite_chlorothalonil_r471811'
6965
)
70-
THEN 'inf_limite_qualite_sup_0_1'
71-
WHEN valtraduite < limite_qualite THEN 'inf_limite_qualite'
66+
THEN 'inf_limites_sup_0_1'
67+
WHEN
68+
(limite_indicative IS null AND valtraduite < limite_qualite)
69+
OR
70+
(limite_qualite IS null AND valtraduite < limite_indicative)
71+
THEN 'inf_limites'
7272
ELSE 'erreur'
7373
END AS resultat,
7474
JSON_OBJECT(CASE WHEN valtraduite > 0 THEN cdparametresiseeaux END, valtraduite)

dbt_/models/intermediate/tous/int__resultats_tous_udi_dernier.sql

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,16 @@ SELECT
1414
WHEN BOOL_OR(resultat IN (
1515
'somme_20pfas_sup_0_1',
1616
'somme_20pfas_inf_0_1_et_4pfas_sup_0_02',
17-
'sup_limite_qualite',
18-
'sup_limite_qualite_sup_3'
17+
'sup_limite_qualite'
1918
)) THEN 'sup_limite_qualite'
2019

2120
WHEN BOOL_AND(resultat IN (
2221
'non_quantifie',
2322
'inf_valeur_sanitaire',
2423
'inf_limite_qualite',
25-
'inf_limite_qualite_sup_0_1',
24+
'inf_limites_sup_0_1',
25+
'sup_limite_indicative',
26+
'inf_limites',
2627
'somme_20pfas_inf_0_1_et_4pfas_inf_0_02',
2728
'sup_limite_qualite_2036',
2829
'inf_0_5',

0 commit comments

Comments
 (0)