Commit 32669f02 authored by Lionel DURAND's avatar Lionel DURAND
Browse files

Renommage colonnes pour introduire le taux d'adequation brut et le taux d'adequation pondere

Ajout taux adequation pondere et calcul de la note à partir de ca taux
parent ca3d6b61
......@@ -3,6 +3,7 @@
.vscode/
*.iml
/venv
/tmp
.~lock*
misc
*DS_Store
......
......@@ -84,14 +84,16 @@ def _extraitre_production_par_groupe_culture(production_par_culture):
def _calculer_df_production_besoins(production_besoins_par_groupe_culture):
production_besoins = _initialiser_df_production_besoins(production_besoins_par_groupe_culture)
production_besoins = _ajouter_colonne_taux_couverture_besoins(production_besoins)
production_besoins['note_production_besoins'] = production_besoins['taux_adequation_moyen_pondere'] / 10
production_besoins = _ajouter_colonne_taux_adequation_brut(production_besoins)
production_besoins = _ajouter_colonne_message_production_besoins(production_besoins)
return production_besoins.loc[
:,
['id_territoire', 'categorie_territoire', 'nom_territoire',
'besoins_ha_assiette_actuelle', 'production_ha', 'taux_couverture_besoins', 'note_production_besoins',
'besoins_ha_assiette_actuelle', 'production_ha', 'taux_adequation_brut', 'taux_adequation_moyen_pondere', 'note_production_besoins',
'message_production_besoins']]
......@@ -100,6 +102,9 @@ def _initialiser_df_production_besoins(production_besoins_par_groupe_culture):
['id_territoire', 'categorie_territoire', 'nom_territoire'],
as_index=False,
).sum()
production_besoins = (production_besoins
.drop(columns=['taux_adequation_brut'])
.rename(columns={'contribution_au_taux_adequation_moyen_pondere':'taux_adequation_moyen_pondere'}))
return production_besoins
......@@ -107,32 +112,34 @@ def _calculer_df_production_besoins_par_groupe_culture(besoins_par_groupe_cultur
production_besoins_par_groupes_cultures = _initialiser_df_production_besoins_par_groupe_culture(
besoins_par_groupe_culture, production_par_groupes_cultures)
production_besoins_par_groupes_cultures = _ajouter_colonne_taux_couverture_besoins(
production_besoins_par_groupes_cultures = _ajouter_colonne_taux_adequation_brut(
production_besoins_par_groupes_cultures)
production_besoins_par_groupes_cultures = _ajouter_colonne_part_note_production_besoins(
production_besoins_par_groupes_cultures = _ajouter_colonne_contribution_au_taux_adequation_moyen_pondere(
production_besoins_par_groupes_cultures)
return production_besoins_par_groupes_cultures
def _ajouter_colonne_part_note_production_besoins(production_besoins_par_groupes_cultures):
def _ajouter_colonne_contribution_au_taux_adequation_moyen_pondere(production_besoins_par_groupes_cultures):
production_besoins_par_groupes_cultures = _ajouter_colonne_besoins_totaux_par_territoire(
production_besoins_par_groupes_cultures)
production_besoins_par_groupes_cultures = _calculer_part_note_production_besoins(
production_besoins_par_groupes_cultures = _calculer_contribution_au_taux_adequation_moyen_pondere(
production_besoins_par_groupes_cultures)
production_besoins_par_groupes_cultures = production_besoins_par_groupes_cultures.drop(columns=['besoins_totaux'])
return production_besoins_par_groupes_cultures
def _calculer_part_note_production_besoins(production_besoins_par_groupes_cultures):
production_besoins_par_groupes_cultures['note_production_besoins'] = round(
production_besoins_par_groupes_cultures['taux_couverture_besoins'].clip(0, 100)
/ 10
* (production_besoins_par_groupes_cultures['besoins_ha_assiette_actuelle'] /
production_besoins_par_groupes_cultures['besoins_totaux']),
def _calculer_contribution_au_taux_adequation_moyen_pondere(production_besoins_par_groupes_cultures):
# Pour chaque groupe de culture on calcule la "part du taux d'adequation pondere"
# En sommant ces parts sur tous les groupes de culture on pourra ensuite obtenir le taux d'adéquation pondéré, et également la note
part_besoins_dans_besoins_totaux = (production_besoins_par_groupes_cultures['besoins_ha_assiette_actuelle'] /
production_besoins_par_groupes_cultures['besoins_totaux'])
production_besoins_par_groupes_cultures['contribution_au_taux_adequation_moyen_pondere'] = round(
production_besoins_par_groupes_cultures['taux_adequation_brut'].clip(0, 100)
* part_besoins_dans_besoins_totaux,
2
)
return production_besoins_par_groupes_cultures
......@@ -163,14 +170,14 @@ def _initialiser_df_production_besoins_par_groupe_culture(besoins_par_groupe_cul
return production_besoins_par_groupes_cultures
def _ajouter_colonne_taux_couverture_besoins(production_besoins):
production_besoins['taux_couverture_besoins'] = round(
def _ajouter_colonne_taux_adequation_brut(production_besoins):
production_besoins['taux_adequation_brut'] = round(
production_besoins['production_ha'] / production_besoins['besoins_ha_assiette_actuelle'] * 100,
2
)
production_besoins['taux_couverture_besoins'] = production_besoins[
'taux_couverture_besoins'].replace([numpy.inf, -numpy.inf, numpy.nan], -1)
production_besoins['taux_adequation_brut'] = production_besoins[
'taux_adequation_brut'].replace([numpy.inf, -numpy.inf, numpy.nan], -1)
return production_besoins;
......
id_territoire;categorie_territoire;nom_territoire;besoins_ha_assiette_actuelle;production_ha;taux_couverture_besoins;note_production_besoins;message_production_besoins
P-FR;PAYS;France;1528676.72;212.10;0.01;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
R-11;REGION;Île-de-France;649.86;0.00;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
R-75;REGION;Nouvelle-Aquitaine;386.77;212.10;54.84;2.35;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
R-76;REGION;Occitanie;431.09;0.00;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
D-32;DEPARTEMENT;Gers;169.85;0.00;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
D-40;DEPARTEMENT;Landes;256.67;212.10;82.64;3.54;Production <strong>insuffisante</strong> pour couvrir les besoins
D-75;DEPARTEMENT;Paris;793.78;0.00;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
PAT-1;REGROUPEMENT_COMMUNES;Le PAT monocommunal du Gée-Rivière;84.09;0.00;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
PAT-2;REGROUPEMENT_COMMUNES;Le PAT interdepartemental D-32 (3 communes) D-40 (2 communes);250.38;212.10;84.71;3.63;Production <strong>insuffisante</strong> pour couvrir les besoins
SCOT-1;REGROUPEMENT_COMMUNES;Le SCOT monocommunal de Paris;44310.22;0.00;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
SCOT-2;REGROUPEMENT_COMMUNES;Le SCOT monocommunal de Gée-Rivière;84.09;0.00;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
SCOT-3;REGROUPEMENT_COMMUNES;Le SCOT interdepartemental D-32 (3 communes) D-40 (2 communes);250.38;212.10;84.71;3.63;Production <strong>insuffisante</strong> pour couvrir les besoins
E-200030435;EPCI;CC d'Aire-sur-l'Adour;82.88;212.10;255.92;7.85;Production <strong>presque suffisante</strong> pour couvrir les besoins, quelques secteurs déficitaires
E-200054781;EPCI;Métropole du Grand Paris;341.18;0.00;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
C-32145;COMMUNE;Gée-Rivière;84.09;0.00;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
C-32333;COMMUNE;Projan(scission2020);0.00;0.00;-1.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
C-32424;COMMUNE;Ségos(fusion2017);0.00;0.00;-1.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
C-40001;COMMUNE;Aire-sur-l'Adour;111.89;131.30;117.35;5.42;Production <strong>insuffisante</strong> pour couvrir les besoins
C-40146;COMMUNE;Latrille;55.61;80.80;145.31;5.45;Production <strong>insuffisante</strong> pour couvrir les besoins
C-75056;COMMUNE;Paris;44310.22;0.00;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
id_territoire;categorie_territoire;nom_territoire;besoins_ha_assiette_actuelle;production_ha;taux_adequation_brut;taux_adequation_moyen_pondere;note_production_besoins;message_production_besoins
P-FR;PAYS;France;1528676.72;212.10;0.01;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
R-11;REGION;Île-de-France;649.86;0.00;0.00;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
R-75;REGION;Nouvelle-Aquitaine;386.77;212.10;54.84;23.50;2.35;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
R-76;REGION;Occitanie;431.09;0.00;0.00;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
D-32;DEPARTEMENT;Gers;169.85;0.00;0.00;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
D-40;DEPARTEMENT;Landes;256.67;212.10;82.64;35.42;3.54;Production <strong>insuffisante</strong> pour couvrir les besoins
D-75;DEPARTEMENT;Paris;793.78;0.00;0.00;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
PAT-1;REGROUPEMENT_COMMUNES;Le PAT monocommunal du Gée-Rivière;84.09;0.00;0.00;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
PAT-2;REGROUPEMENT_COMMUNES;Le PAT interdepartemental D-32 (3 communes) D-40 (2 communes);250.38;212.10;84.71;36.30;3.63;Production <strong>insuffisante</strong> pour couvrir les besoins
SCOT-1;REGROUPEMENT_COMMUNES;Le SCOT monocommunal de Paris;44310.22;0.00;0.00;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
SCOT-2;REGROUPEMENT_COMMUNES;Le SCOT monocommunal de Gée-Rivière;84.09;0.00;0.00;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
SCOT-3;REGROUPEMENT_COMMUNES;Le SCOT interdepartemental D-32 (3 communes) D-40 (2 communes);250.38;212.10;84.71;36.30;3.63;Production <strong>insuffisante</strong> pour couvrir les besoins
E-200030435;EPCI;CC d'Aire-sur-l'Adour;82.88;212.10;255.92;78.53;7.85;Production <strong>presque suffisante</strong> pour couvrir les besoins, quelques secteurs déficitaires
E-200054781;EPCI;Métropole du Grand Paris;341.18;0.00;0.00;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
C-32145;COMMUNE;Gée-Rivière;84.09;0.00;0.00;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
C-32333;COMMUNE;Projan(scission2020);0.00;0.00;-1.00;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
C-32424;COMMUNE;Ségos(fusion2017);0.00;0.00;-1.00;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
C-40001;COMMUNE;Aire-sur-l'Adour;111.89;131.30;117.35;54.16;5.42;Production <strong>insuffisante</strong> pour couvrir les besoins
C-40146;COMMUNE;Latrille;55.61;80.80;145.31;54.50;5.45;Production <strong>insuffisante</strong> pour couvrir les besoins
C-75056;COMMUNE;Paris;44310.22;0.00;0.00;0.00;0.00;Production <strong>nettement insuffisante</strong> pour couvrir les besoins
id_territoire;categorie_territoire;nom_territoire;code_groupe_culture;nom_groupe_culture;besoins_ha_assiette_actuelle;production_ha;taux_couverture_besoins;note_production_besoins
id_territoire;categorie_territoire;nom_territoire;code_groupe_culture;nom_groupe_culture;besoins_ha_assiette_actuelle;production_ha;taux_adequation_brut;contribution_au_taux_adequation_moyen_pondere
P-FR;PAYS;France;CER;Céréales;366575.60;90.90;0.02;0.00
P-FR;PAYS;France;DVC;Autres cultures;0.00;0.00;-1.00;0.00
P-FR;PAYS;France;FOU;Fourrages;1162101.11;0.00;0.00;0.00
......@@ -7,7 +7,7 @@ R-11;REGION;Île-de-France;CER;Céréales;485.14;0.00;0.00;0.00
R-11;REGION;Île-de-France;DVC;Autres cultures;0.00;0.00;-1.00;0.00
R-11;REGION;Île-de-France;FOU;Fourrages;164.72;0.00;0.00;0.00
R-11;REGION;Île-de-France;OLP;Oléoprotéagineux;0.00;0.00;-1.00;0.00
R-75;REGION;Nouvelle-Aquitaine;CER;Céréales;281.89;90.90;32.25;2.35
R-75;REGION;Nouvelle-Aquitaine;CER;Céréales;281.89;90.90;32.25;23.50
R-75;REGION;Nouvelle-Aquitaine;DVC;Autres cultures;0.00;0.00;-1.00;0.00
R-75;REGION;Nouvelle-Aquitaine;FOU;Fourrages;104.88;0.00;0.00;0.00
R-75;REGION;Nouvelle-Aquitaine;OLP;Oléoprotéagineux;0.00;121.20;-1.00;0.00
......@@ -19,7 +19,7 @@ D-32;DEPARTEMENT;Gers;CER;Céréales;145.54;0.00;0.00;0.00
D-32;DEPARTEMENT;Gers;DVC;Autres cultures;0.00;0.00;-1.00;0.00
D-32;DEPARTEMENT;Gers;FOU;Fourrages;24.31;0.00;0.00;0.00
D-32;DEPARTEMENT;Gers;OLP;Oléoprotéagineux;0.00;0.00;-1.00;0.00
D-40;DEPARTEMENT;Landes;CER;Céréales;177.89;90.90;51.10;3.54
D-40;DEPARTEMENT;Landes;CER;Céréales;177.89;90.90;51.10;35.42
D-40;DEPARTEMENT;Landes;DVC;Autres cultures;0.00;0.00;-1.00;0.00
D-40;DEPARTEMENT;Landes;FOU;Fourrages;78.78;0.00;0.00;0.00
D-40;DEPARTEMENT;Landes;OLP;Oléoprotéagineux;0.00;121.20;-1.00;0.00
......@@ -31,7 +31,7 @@ PAT-1;REGROUPEMENT_COMMUNES;Le PAT monocommunal du Gée-Rivière;CER;Céréales;
PAT-1;REGROUPEMENT_COMMUNES;Le PAT monocommunal du Gée-Rivière;DVC;Autres cultures;0.00;0.00;-1.00;0.00
PAT-1;REGROUPEMENT_COMMUNES;Le PAT monocommunal du Gée-Rivière;FOU;Fourrages;5.16;0.00;0.00;0.00
PAT-1;REGROUPEMENT_COMMUNES;Le PAT monocommunal du Gée-Rivière;OLP;Oléoprotéagineux;0.00;0.00;-1.00;0.00
PAT-2;REGROUPEMENT_COMMUNES;Le PAT interdepartemental D-32 (3 communes) D-40 (2 communes);CER;Céréales;242.06;90.90;37.55;3.63
PAT-2;REGROUPEMENT_COMMUNES;Le PAT interdepartemental D-32 (3 communes) D-40 (2 communes);CER;Céréales;242.06;90.90;37.55;36.30
PAT-2;REGROUPEMENT_COMMUNES;Le PAT interdepartemental D-32 (3 communes) D-40 (2 communes);DVC;Autres cultures;0.00;0.00;-1.00;0.00
PAT-2;REGROUPEMENT_COMMUNES;Le PAT interdepartemental D-32 (3 communes) D-40 (2 communes);FOU;Fourrages;8.32;0.00;0.00;0.00
PAT-2;REGROUPEMENT_COMMUNES;Le PAT interdepartemental D-32 (3 communes) D-40 (2 communes);OLP;Oléoprotéagineux;0.00;121.20;-1.00;0.00
......@@ -43,11 +43,11 @@ SCOT-2;REGROUPEMENT_COMMUNES;Le SCOT monocommunal de Gée-Rivière;CER;Céréale
SCOT-2;REGROUPEMENT_COMMUNES;Le SCOT monocommunal de Gée-Rivière;DVC;Autres cultures;0.00;0.00;-1.00;0.00
SCOT-2;REGROUPEMENT_COMMUNES;Le SCOT monocommunal de Gée-Rivière;FOU;Fourrages;5.16;0.00;0.00;0.00
SCOT-2;REGROUPEMENT_COMMUNES;Le SCOT monocommunal de Gée-Rivière;OLP;Oléoprotéagineux;0.00;0.00;-1.00;0.00
SCOT-3;REGROUPEMENT_COMMUNES;Le SCOT interdepartemental D-32 (3 communes) D-40 (2 communes);CER;Céréales;242.06;90.90;37.55;3.63
SCOT-3;REGROUPEMENT_COMMUNES;Le SCOT interdepartemental D-32 (3 communes) D-40 (2 communes);CER;Céréales;242.06;90.90;37.55;36.30
SCOT-3;REGROUPEMENT_COMMUNES;Le SCOT interdepartemental D-32 (3 communes) D-40 (2 communes);DVC;Autres cultures;0.00;0.00;-1.00;0.00
SCOT-3;REGROUPEMENT_COMMUNES;Le SCOT interdepartemental D-32 (3 communes) D-40 (2 communes);FOU;Fourrages;8.32;0.00;0.00;0.00
SCOT-3;REGROUPEMENT_COMMUNES;Le SCOT interdepartemental D-32 (3 communes) D-40 (2 communes);OLP;Oléoprotéagineux;0.00;121.20;-1.00;0.00
E-200030435;EPCI;CC d'Aire-sur-l'Adour;CER;Céréales;65.08;90.90;139.67;7.85
E-200030435;EPCI;CC d'Aire-sur-l'Adour;CER;Céréales;65.08;90.90;139.67;78.53
E-200030435;EPCI;CC d'Aire-sur-l'Adour;DVC;Autres cultures;0.00;0.00;-1.00;0.00
E-200030435;EPCI;CC d'Aire-sur-l'Adour;FOU;Fourrages;17.79;0.00;0.00;0.00
E-200030435;EPCI;CC d'Aire-sur-l'Adour;OLP;Oléoprotéagineux;0.00;121.20;-1.00;0.00
......@@ -65,11 +65,11 @@ C-32333;COMMUNE;Projan(scission2020);OLP;Oléoprotéagineux;0.00;0.00;-1.00;
C-32424;COMMUNE;Ségos(fusion2017);CER;Céréales;0.00;0.00;-1.00;
C-32424;COMMUNE;Ségos(fusion2017);DVC;Autres cultures;0.00;0.00;-1.00;
C-32424;COMMUNE;Ségos(fusion2017);OLP;Oléoprotéagineux;0.00;0.00;-1.00;
C-40001;COMMUNE;Aire-sur-l'Adour;CER;Céréales;111.01;60.60;54.59;5.42
C-40001;COMMUNE;Aire-sur-l'Adour;CER;Céréales;111.01;60.60;54.59;54.16
C-40001;COMMUNE;Aire-sur-l'Adour;DVC;Autres cultures;0.00;0.00;-1.00;0.00
C-40001;COMMUNE;Aire-sur-l'Adour;FOU;Fourrages;0.88;0.00;0.00;0.00
C-40001;COMMUNE;Aire-sur-l'Adour;OLP;Oléoprotéagineux;0.00;70.70;-1.00;0.00
C-40146;COMMUNE;Latrille;CER;Céréales;52.06;30.30;58.21;5.45
C-40146;COMMUNE;Latrille;CER;Céréales;52.06;30.30;58.21;54.50
C-40146;COMMUNE;Latrille;DVC;Autres cultures;0.00;0.00;-1.00;0.00
C-40146;COMMUNE;Latrille;FOU;Fourrages;3.55;0.00;0.00;0.00
C-40146;COMMUNE;Latrille;OLP;Oléoprotéagineux;0.00;50.50;-1.00;0.00
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment