Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
lga
crater-data
Commits
ca3d6b61
Commit
ca3d6b61
authored
Nov 05, 2021
by
Benjam
Browse files
fichier unique de sortie axes population agricole et politique fonciere
parent
dd0b507d
Changes
29
Hide whitespace changes
Inline
Side-by-side
crater/crater_data.py
View file @
ca3d6b61
...
...
@@ -137,44 +137,42 @@ def lancer_calcul_territoires():
def
lancer_calcul_population_agricole
():
referentiel_
territoires
=
charger_referentiel_et_donnees_territoires
(
territoires
=
charger_referentiel_et_donnees_territoires
(
CHEMIN_OUTPUT_DATA
/
DOSSIER_TERRITOIRES
)
reinitialiser_dossier
(
CHEMIN_OUTPUT_DATA
/
DOSSIER_POPULATION_AGRICOLE
)
calculer_population_agricole
(
referentiel_
territoires
,
territoires
,
CHEMIN_SOURCE_POPULATION_AGRICOLE
,
CHEMIN_OUTPUT_DATA
,
DOSSIER_POPULATION_AGRICOLE
CHEMIN_OUTPUT_DATA
/
DOSSIER_POPULATION_AGRICOLE
)
def
lancer_calcul_politique_fonciere
():
referentiel_
territoires
=
charger_referentiel_et_donnees_territoires
(
territoires
=
charger_referentiel_et_donnees_territoires
(
CHEMIN_OUTPUT_DATA
/
DOSSIER_TERRITOIRES
)
reinitialiser_dossier
(
CHEMIN_OUTPUT_DATA
/
DOSSIER_POLITIQUE_FONCIERE
)
calculer_politique_fonciere
(
referentiel_
territoires
,
territoires
,
CHEMIN_SOURCE_ARTIFICIALISATION
,
CHEMIN_OUTPUT_DATA
,
DOSSIER_POLITIQUE_FONCIERE
CHEMIN_OUTPUT_DATA
/
DOSSIER_POLITIQUE_FONCIERE
)
def
lancer_calcul_pratiques_agricoles
():
referentiel_
territoires
=
charger_referentiel_et_donnees_territoires
(
territoires
=
charger_referentiel_et_donnees_territoires
(
CHEMIN_OUTPUT_DATA
/
DOSSIER_TERRITOIRES
)
reinitialiser_dossier
(
CHEMIN_OUTPUT_DATA
/
DOSSIER_PRATIQUES_AGRICOLES
)
calculer_pratiques_agricoles
(
referentiel_
territoires
,
territoires
,
CHEMIN_SOURCE_HVN
,
CHEMIN_SOURCE_SAU_BIO
,
CHEMIN_OUTPUT_DATA
/
DOSSIER_PRATIQUES_AGRICOLES
...
...
@@ -182,14 +180,14 @@ def lancer_calcul_pratiques_agricoles():
def
lancer_calcul_production_besoins
():
referentiel_
territoires
=
charger_referentiel_et_donnees_territoires
(
territoires
=
charger_referentiel_et_donnees_territoires
(
CHEMIN_OUTPUT_DATA
/
DOSSIER_TERRITOIRES
)
reinitialiser_dossier
(
CHEMIN_OUTPUT_DATA
/
DOSSIER_PRODUCTION_BESOINS
)
calculer_axe_production_besoins
(
referentiel_
territoires
,
territoires
,
CHEMIN_OUTPUT_DATA
/
DOSSIER_PARCEL
/
'reponse_api_parcel_besoins_pour_assiette_actuelle.csv'
,
DOSSIER_CONFIG
/
'cultures_et_groupes_cultures.csv'
,
DOSSIER_CONFIG
/
DOSSIER_PARCEL
/
'produits_hors_elevage_vers_codes_cultures.csv'
,
...
...
@@ -210,11 +208,11 @@ def lancer_calcul_cartes():
CHEMIN_CRATER_DATA_SOURCES
/
'banatic'
/
'epci_sig'
/
'2020'
/
'Epci2020_region.shp'
,
CHEMIN_OUTPUT_DATA
/
DOSSIER_PRODUCTION_BESOINS
/
'production_besoins.csv'
,
CHEMIN_OUTPUT_DATA
/
DOSSIER_PRATIQUES_AGRICOLES
/
'pratiques_agricoles.csv'
,
CHEMIN_OUTPUT_DATA
/
DOSSIER_POPULATION_AGRICOLE
/
'
synthes
e.csv'
,
CHEMIN_OUTPUT_DATA
/
DOSSIER_POLITIQUE_FONCIERE
/
'
synthes
e.csv'
,
CHEMIN_OUTPUT_DATA
/
DOSSIER_POPULATION_AGRICOLE
/
'
population_agricol
e.csv'
,
CHEMIN_OUTPUT_DATA
/
DOSSIER_POLITIQUE_FONCIERE
/
'
politique_foncier
e.csv'
,
CHEMIN_OUTPUT_DATA
/
DOSSIER_CARTES
)
stocker_duree_etape
(
'CALCUL_DONEES_CARTES'
,
time
.
time
()
-
debut
)
stocker_duree_etape
(
'CALCUL_DON
N
EES_CARTES'
,
time
.
time
()
-
debut
)
if
__name__
==
'__main__'
:
...
...
crater/outils.py
View file @
ca3d6b61
...
...
@@ -131,6 +131,7 @@ def message_synthese(
return
message
#TODO fonction à tester
def
interpolation
(
x
,
xa
,
ya
,
xb
,
yb
):
return
round
(
ya
+
(
x
-
xa
)
*
(
yb
-
ya
)
/
(
xb
-
xa
),
...
...
crater/politique_fonciere/calculateur_politique_fonciere.py
View file @
ca3d6b61
...
...
@@ -3,10 +3,10 @@ from pandas import DataFrame
import
numpy
as
np
import
crater.politique_fonciere.chargeur_artificialisation
as
chargeur_artificialisation
import
crater.politique_fonciere.politique_artificialisation
as
politique_artificialisation
import
crater.politique_fonciere.rythme_artificialisation_sau
as
rythme_artificialisation_sau
import
crater.politique_fonciere.sau_par_habitant
as
sau_par_habitant
import
crater.politique_fonciere.synthese_politique_fonciere
as
synthese_politique_fonciere
from
crater.politique_fonciere.politique_artificialisation
import
ajouter_
politique_artificialisation
from
crater.politique_fonciere.rythme_artificialisation_sau
import
ajouter_
rythme_artificialisation_sau
from
crater.politique_fonciere.sau_par_habitant
import
ajouter_
sau_par_habitant
from
crater.politique_fonciere.synthese_politique_fonciere
import
ajouter_
synthese_politique_fonciere
from
crater.crater_logger
import
log
from
crater.outils
import
reinitialiser_dossier
,
DictDataFrames
from
crater.territoires
import
outils
as
outils_territoires
...
...
@@ -16,50 +16,28 @@ from crater.territoires.outils import traduire_code_insee_vers_id_commune_crater
def
calculer_politique_fonciere
(
territoires
:
DataFrame
,
chemin_fichier_artificialisation
:
Path
,
chemin_dossier_output
:
Path
,
dossier_politique_fonciere
:
Path
chemin_dossier_output
:
Path
)
->
None
:
sources
=
charger_sources
(
chemin_fichier_artificialisation
)
axe
=
calculer
(
territoires
,
sources
)
exporter
(
axe
,
chemin_dossier_output
/
dossier_politique_fonciere
)
def
calculer
(
territoires
:
DataFrame
,
sources_politique_fonciere
:
DictDataFrames
)
->
DictDataFrames
:
log
.
info
(
"##### CALCUL POLITIQUE FONCIERE #####"
)
donnees_politique_fonciere
=
calculer_donnees_politique_fonciere
(
sources_politique_fonciere
=
_charger_sources
(
chemin_fichier_artificialisation
)
donnees_politique_fonciere
=
_calculer_donnees_politique_fonciere
(
territoires
,
sources_politique_fonciere
)
donnees_indicateur_politique_artificialisation
=
politique_artificialisation
.
calculer
(
donnees_politique_fonciere
)
donnees_indicateur_sau_par_habitant
=
sau_par_habitant
.
calculer
(
donnees_politique_fonciere
)
donnees_indicateur_rythme_artificialisation_sau
=
rythme_artificialisation_sau
.
calculer
(
donnees_politique_fonciere
)
donnees_synthese
=
synthese_politique_fonciere
.
calculer
(
donnees_indicateur_sau_par_habitant
,
donnees_indicateur_rythme_artificialisation_sau
)
donnees_politique_fonciere
=
ajouter_politique_artificialisation
(
donnees_politique_fonciere
)
donnees_politique_fonciere
=
ajouter_sau_par_habitant
(
donnees_politique_fonciere
)
donnees_politique_fonciere
=
ajouter_rythme_artificialisation_sau
(
donnees_politique_fonciere
)
donnees_politique_fonciere
=
ajouter_synthese_politique_fonciere
(
donnees_politique_fonciere
)
return
{
'donnees'
:
donnees_politique_fonciere
,
'indicateur_sau_par_habitant'
:
donnees_indicateur_sau_par_habitant
,
'indicateur_rythme_artificialisation_sau'
:
donnees_indicateur_rythme_artificialisation_sau
,
'indicateur_politique_artificialisation'
:
donnees_indicateur_politique_artificialisation
,
'synthese'
:
donnees_synthese
}
_exporter
(
donnees_politique_fonciere
,
chemin_dossier_output
)
def
calculer_donnees_politique_fonciere
(
def
_
calculer_donnees_politique_fonciere
(
territoires
:
DataFrame
,
sources_politique_fonciere
:
DictDataFrames
)
->
DataFrame
:
...
...
@@ -112,38 +90,26 @@ def calculer_donnees_politique_fonciere(
return
donnees_politique_fonciere
def
exporter
(
def
_
exporter
(
donnees_politique_fonciere
:
DataFrame
,
chemin_dossier_output
:
Path
)
->
None
:
log
.
info
(
"##### EXPORT POLITIQUE FONCIERE #####"
)
reinitialiser_dossier
(
chemin_dossier_output
)
outils_territoires
.
exporter_donnees_territoires
(
donnees_politique_fonciere
[
'donnees'
].
drop
(
columns
=
[
'annee_dernier_mouvement_commune'
]
+
IDS_CATEGORIES_TERRITOIRES_SUPRACOMMUNAUX
),
(
chemin_dossier_output
/
"donnees.csv"
)
)
outils_territoires
.
exporter_donnees_territoires
(
donnees_politique_fonciere
[
'indicateur_sau_par_habitant'
],
(
chemin_dossier_output
/
"indicateur_sau_par_habitant.csv"
)
)
outils_territoires
.
exporter_donnees_territoires
(
donnees_politique_fonciere
[
'indicateur_rythme_artificialisation_sau'
],
(
chemin_dossier_output
/
"indicateur_rythme_artificialisation_sau.csv"
)
)
outils_territoires
.
exporter_donnees_territoires
(
donnees_politique_fonciere
[
'indicateur_politique_artificialisation'
],
(
chemin_dossier_output
/
"indicateur_politique_artificialisation.csv"
)
)
outils_territoires
.
exporter_donnees_territoires
(
donnees_politique_fonciere
[
'synthese'
],
(
chemin_dossier_output
/
"synthese.csv"
)
donnees_politique_fonciere
.
drop
(
columns
=
[
'annee_dernier_mouvement_commune'
]
+
IDS_CATEGORIES_TERRITOIRES_SUPRACOMMUNAUX
).
to_csv
(
chemin_dossier_output
/
"politique_fonciere.csv"
,
sep
=
";"
,
encoding
=
"utf-8"
,
index
=
True
,
float_format
=
'%.2f'
)
def
charger_sources
(
chemin_fichier_artificialisation
):
def
_
charger_sources
(
chemin_fichier_artificialisation
:
Path
)
->
DictDataFrames
:
log
.
info
(
"##### CHARGEMEMENT DES DONNEES SOURCES POLITIQUE FONCIERE #####"
)
artificialisation
=
chargeur_artificialisation
.
charger
(
chemin_fichier_artificialisation
)
...
...
crater/politique_fonciere/politique_artificialisation.py
View file @
ca3d6b61
...
...
@@ -3,21 +3,13 @@ from pandas import DataFrame
from
crater.crater_logger
import
log
def
calculer
(
donnees_politique_fonciere
:
DataFrame
)
->
DataFrame
:
def
ajouter_politique_artificialisation
(
donnees_politique_fonciere
:
DataFrame
)
->
DataFrame
:
log
.
info
(
" => Indicateur politique d'artificialisation"
)
donnees_indicateur
=
donnees_politique_fonciere
.
loc
[:,
[
'nom_territoire'
,
'categorie_territoire'
,
'evolution_menages_emplois_2011_2016'
,
'artificialisation_2011_2016_ha'
,
'artificialisation_2011_2016_sur_superficie_pourcent'
]]
donnees_indicateur
.
loc
[:,
'politique_artificialisation_valeur'
]
=
(
donnees_indicateur
.
apply
(
donnees_politique_fonciere
.
loc
[:,
'politique_artificialisation_valeur'
]
=
(
donnees_politique_fonciere
.
apply
(
lambda
x
:
politique_artificialisation_valeur
(
_
politique_artificialisation_valeur
(
x
[
'evolution_menages_emplois_2011_2016'
],
x
[
'artificialisation_2011_2016_ha'
],
x
[
'artificialisation_2011_2016_sur_superficie_pourcent'
]
...
...
@@ -26,10 +18,10 @@ def calculer(donnees_politique_fonciere: DataFrame) -> DataFrame:
)
)
return
donnees_
indicateur
return
donnees_
politique_fonciere
def
politique_artificialisation_valeur
(
evolution_menages_emplois_2011_2016
,
artificialisation_2011_2016_ha
,
artificialisation_2011_2016_sur_superficie_pourcent
):
def
_
politique_artificialisation_valeur
(
evolution_menages_emplois_2011_2016
,
artificialisation_2011_2016_ha
,
artificialisation_2011_2016_sur_superficie_pourcent
):
if
artificialisation_2011_2016_ha
<=
0
:
return
"L'objectif Zéro Artificialisation Nette a été atteint entre 2011 et 2016 !"
elif
artificialisation_2011_2016_ha
>
0
and
(
...
...
crater/politique_fonciere/rythme_artificialisation_sau.py
View file @
ca3d6b61
...
...
@@ -8,20 +8,13 @@ from crater.crater_logger import log
# Dans ce cas (div par 0), on obtient une valeur NaN pour l'indicateur d'artificialisation, et on affiche Données non disponible
# voir si on ne peut pas afficher un messager plus spécifique, ou calculer autrement l'indicateur
def
calculer
(
donnees_politique_fonciere
:
DataFrame
)
->
DataFrame
:
def
ajouter_rythme_artificialisation_sau
(
donnees_politique_fonciere
:
DataFrame
)
->
DataFrame
:
log
.
info
(
" => Indicateur rythme d'artificialisation de la sau"
)
donnees_indicateur
=
donnees_politique_fonciere
.
loc
[:,
[
'nom_territoire'
,
'categorie_territoire'
,
'artificialisation_2011_2016_ha'
,
'sau_productive_ha'
]]
donnees_indicateur
.
loc
[:,
'rythme_artificialisation_sau_valeur_pourcent'
]
=
(
donnees_indicateur
.
apply
(
donnees_politique_fonciere
.
loc
[:,
'rythme_artificialisation_sau_valeur_pourcent'
]
=
(
donnees_politique_fonciere
.
apply
(
lambda
x
:
rythme_artificialisation_sau_valeur_pourcent
(
_
rythme_artificialisation_sau_valeur_pourcent
(
x
[
'artificialisation_2011_2016_ha'
],
x
[
'sau_productive_ha'
]
),
...
...
@@ -29,16 +22,16 @@ def calculer(donnees_politique_fonciere: DataFrame) -> DataFrame:
)
)
if
donnees_
indicateur
.
query
(
f
"id_territoire=='
{
outils_territoires
.
ID_FRANCE
}
'"
)[
if
donnees_
politique_fonciere
.
query
(
f
"id_territoire=='
{
outils_territoires
.
ID_FRANCE
}
'"
)[
'rythme_artificialisation_sau_valeur_pourcent'
][
0
]
<=
0
:
raise
ValueError
(
'Attention, la valeur moyenne française pose problème vu la définition de calcul de la note !'
)
donnees_
indicateur
.
loc
[:,
'rythme_artificialisation_sau_note'
]
=
(
donnees_
indicateur
.
apply
(
donnees_
politique_fonciere
.
loc
[:,
'rythme_artificialisation_sau_note'
]
=
(
donnees_
politique_fonciere
.
apply
(
lambda
x
:
outils
.
calculerNoteParInterpolation2Seuils
(
x
[
'rythme_artificialisation_sau_valeur_pourcent'
],
0
,
donnees_
indicateur
.
query
(
f
"id_territoire=='
{
outils_territoires
.
ID_FRANCE
}
'"
)[
0
,
donnees_
politique_fonciere
.
query
(
f
"id_territoire=='
{
outils_territoires
.
ID_FRANCE
}
'"
)[
'rythme_artificialisation_sau_valeur_pourcent'
][
0
],
10
,
0
),
...
...
@@ -46,10 +39,10 @@ def calculer(donnees_politique_fonciere: DataFrame) -> DataFrame:
)
)
return
donnees_
indicateur
return
donnees_
politique_fonciere
def
rythme_artificialisation_sau_valeur_pourcent
(
artificialisation_5ans_ha
,
sau_productive_ha
):
def
_
rythme_artificialisation_sau_valeur_pourcent
(
artificialisation_5ans_ha
,
sau_productive_ha
):
try
:
return
round
(
artificialisation_5ans_ha
/
5
/
sau_productive_ha
*
100
,
...
...
crater/politique_fonciere/sau_par_habitant.py
View file @
ca3d6b61
...
...
@@ -6,20 +6,13 @@ import crater.outils as outils
from
crater.crater_logger
import
log
from
crater.politique_fonciere.parametres
import
seuil_regime_tres_vegetal
,
seuil_regime_actuel
def
calculer
(
donnees_politique_fonciere
:
DataFrame
)
->
DataFrame
:
def
ajouter_sau_par_habitant
(
donnees_politique_fonciere
:
DataFrame
)
->
DataFrame
:
log
.
info
(
" => Indicateur sau par habitant"
)
donnees_indicateur
=
donnees_politique_fonciere
.
loc
[:,
[
'nom_territoire'
,
'categorie_territoire'
,
'sau_productive_ha'
,
'population_totale_2017'
]]
donnees_indicateur
.
loc
[:,
'sau_par_habitant_valeur_m2_par_hab'
]
=
(
donnees_indicateur
.
apply
(
donnees_politique_fonciere
.
loc
[:,
'sau_par_habitant_valeur_m2_par_hab'
]
=
(
donnees_politique_fonciere
.
apply
(
lambda
x
:
sau_par_habitant_valeur_m2_par_hab
(
_
sau_par_habitant_valeur_m2_par_hab
(
x
[
'sau_productive_ha'
],
x
[
'population_totale_2017'
]
),
...
...
@@ -27,8 +20,8 @@ def calculer(donnees_politique_fonciere: DataFrame) -> DataFrame:
)
)
donnees_
indicateur
.
loc
[:,
'sau_par_habitant_note'
]
=
(
donnees_
indicateur
.
apply
(
donnees_
politique_fonciere
.
loc
[:,
'sau_par_habitant_note'
]
=
(
donnees_
politique_fonciere
.
apply
(
lambda
x
:
outils
.
calculerNoteParInterpolation3Seuils
(
x
[
'sau_par_habitant_valeur_m2_par_hab'
],
...
...
@@ -39,10 +32,10 @@ def calculer(donnees_politique_fonciere: DataFrame) -> DataFrame:
)
)
return
donnees_
indicateur
return
donnees_
politique_fonciere
def
sau_par_habitant_valeur_m2_par_hab
(
sau_productive_ha
,
population_totale
):
def
_
sau_par_habitant_valeur_m2_par_hab
(
sau_productive_ha
,
population_totale
):
try
:
return
round
(
sau_productive_ha
*
1e4
/
population_totale
...
...
crater/politique_fonciere/synthese_politique_fonciere.py
View file @
ca3d6b61
...
...
@@ -5,37 +5,14 @@ import crater.outils as outils
from
crater.crater_logger
import
log
from
crater.politique_fonciere.parametres
import
seuil_regime_tres_vegetal
,
seuil_regime_moins_carne
,
seuil_regime_actuel
def
calculer
(
indicateur_sau_par_habitant
:
DataFrame
,
indicateur_rythme_artificialisation_sau
:
DataFrame
)
->
DataFrame
:
def
ajouter_synthese_politique_fonciere
(
donnees_politique_fonciere
:
DataFrame
)
->
DataFrame
:
log
.
info
(
" => Synthèse"
)
indicateur_sau_par_habitant
=
indicateur_sau_par_habitant
.
loc
[:,
[
'nom_territoire'
,
'categorie_territoire'
,
'sau_par_habitant_valeur_m2_par_hab'
,
'sau_par_habitant_note'
]]
indicateur_rythme_artificialisation_sau
=
indicateur_rythme_artificialisation_sau
.
loc
[:,
[
'artificialisation_2011_2016_ha'
,
'rythme_artificialisation_sau_note'
]]
donnees_synthese
=
indicateur_sau_par_habitant
.
join
(
indicateur_rythme_artificialisation_sau
)
donnees_synthese
=
calculer_notes_messages
(
donnees_synthese
)
return
donnees_synthese
def
calculer_notes_messages
(
donnees_synthese
:
DataFrame
)
->
DataFrame
:
donnees_synthese
.
loc
[:,
'synthese_note'
]
=
(
donnees_synthese
.
apply
(
donnees_politique_fonciere
.
loc
[:,
'synthese_note'
]
=
(
donnees_politique_fonciere
.
apply
(
lambda
x
:
note
(
_
note
(
x
[
'sau_par_habitant_note'
],
x
[
'rythme_artificialisation_sau_note'
]
),
...
...
@@ -43,10 +20,10 @@ def calculer_notes_messages(donnees_synthese: DataFrame) -> DataFrame:
)
)
donnees_
synthes
e
.
loc
[:,
'synthese_message'
]
=
(
donnees_
synthes
e
.
apply
(
donnees_
politique_foncier
e
.
loc
[:,
'synthese_message'
]
=
(
donnees_
politique_foncier
e
.
apply
(
lambda
x
:
message
(
_
message
(
x
[
'sau_par_habitant_valeur_m2_par_hab'
],
x
[
'artificialisation_2011_2016_ha'
],
x
[
'synthese_note'
]
...
...
@@ -55,9 +32,10 @@ def calculer_notes_messages(donnees_synthese: DataFrame) -> DataFrame:
)
)
return
donnees_synthese
return
donnees_politique_fonciere
def
note
(
def
_
note
(
sau_par_habitant_note
,
rythme_artificialisation_sau_note
):
...
...
@@ -68,7 +46,7 @@ def note(
return
x
def
message
(
def
_
message
(
sau_par_habitant_valeur_m2_par_hab
,
artificialisation_2011_2016_ha
,
synthese_note
...
...
crater/population_agricole/calculateur_population_agricole.py
View file @
ca3d6b61
...
...
@@ -3,11 +3,11 @@ import pandas as pd
from
pandas
import
DataFrame
import
numpy
as
np
import
crater.population_agricole.chargeur_actifs_agricoles_permanents
as
chargeur_
population_agricole
import
crater.population_agricole.evolution_part_population_agricole
as
evolution_part_population_agricole
import
crater.population_agricole.part_population_agricole_1988
as
part_population_agricole_1988
import
crater.population_agricole.part_population_agricole_2010
as
part_population_agricole_2010
import
crater.population_agricole.synthese_population_agricole
as
synthese_population_agricole
import
crater.population_agricole.chargeur_actifs_agricoles_permanents
as
chargeur_
actifs_agricoles_permanents
from
crater.population_agricole.evolution_part_population_agricole
import
ajouter_
evolution_part_population_agricole
from
crater.population_agricole.part_population_agricole_1988
import
ajouter_
part_population_agricole_1988
from
crater.population_agricole.part_population_agricole_2010
import
ajouter_
part_population_agricole_2010
from
crater.population_agricole.synthese_population_agricole
import
ajouter_
synthese_population_agricole
import
crater.territoires.outils
as
outils_territoires
from
crater.crater_logger
import
log
from
crater.outils
import
reinitialiser_dossier
,
DictDataFrames
...
...
@@ -17,89 +17,57 @@ from crater.territoires.outils import traduire_code_insee_vers_id_commune_crater
def
calculer_population_agricole
(
territoires
:
DataFrame
,
chemin_fichier_actifs_agricoles_permanents
:
Path
,
chemin_dossier_output
:
Path
,
dossier_population_agricole
:
Path
chemin_dossier_output
:
Path
)
->
None
:
sources
=
charger_sources
(
chemin_fichier_actifs_agricoles_permanents
)
axe
=
calculer
(
territoires
,
sources
)
exporter
(
axe
,
chemin_dossier_output
/
dossier_population_agricole
)
def
calculer
(
territoires
:
DataFrame
,
sources_population_agricole
:
DictDataFrames
)
->
DictDataFrames
:
log
.
info
(
"##### CALCUL POPULATION AGRICOLE #####"
)
donnees_population_agricole
=
calculer_donnees_population_agricole
(
sources_population_agricole
=
_charger_sources
(
chemin_fichier_actifs_agricoles_permanents
)
donnees_population_agricole
=
_calculer_donnees_population_agricole
(
territoires
,
sources_population_agricole
)
donnees_indicateur_part_population_agricole_2010
=
part_population_agricole_2010
.
calculer
(
donnees_population_agricole
)
donnees_indicateur_part_population_agricole_1988
=
part_population_agricole_1988
.
calculer
(
donnees_population_agricole
)
donnees_indicateur_evolution_part_population_agricole
=
evolution_part_population_agricole
.
calculer
(
donnees_population_agricole
)
donnees_synthese
=
synthese_population_agricole
.
calculer
(
donnees_indicateur_part_population_agricole_2010
,
donnees_indicateur_evolution_part_population_agricole
)
donnees_population_agricole
=
ajouter_part_population_agricole_2010
(
donnees_population_agricole
)
donnees_population_agricole
=
ajouter_part_population_agricole_1988
(
donnees_population_agricole
)
donnees_population_agricole
=
ajouter_evolution_part_population_agricole
(
donnees_population_agricole
)
donnees_population_agricole
=
ajouter_synthese_population_agricole
(
donnees_population_agricole
)
return
{
'donnees'
:
donnees_population_agricole
,
'indicateur_part_population_agricole_2010'
:
donnees_indicateur_part_population_agricole_2010
,
'indicateur_part_population_agricole_1988'
:
donnees_indicateur_part_population_agricole_1988
,
'indicateur_evolution_part_population_agricole'
:
donnees_indicateur_evolution_part_population_agricole
,
'synthese'
:
donnees_synthese
}
_exporter
(
donnees_population_agricole
,
chemin_dossier_output
)
def
exporter
(
population_agricole
:
DataFrame
,
def
_
exporter
(
donnees_
population_agricole
:
DataFrame
,
chemin_dossier_output
:
Path
):
)
->
None
:
log
.
info
(
"##### EXPORT POPULATION AGRICOLE #####"
)
reinitialiser_dossier
(
chemin_dossier_output
)
outils_territoires
.
exporter_donnees_territoires
(
population_agricole
[
'donnees'
].
drop
(
columns
=
[
'annee_dernier_mouvement_commune'
]
+
IDS_CATEGORIES_TERRITOIRES_SUPRACOMMUNAUX
),
(
chemin_dossier_output
/
"donnees.csv"
)
)
outils_territoires
.
exporter_donnees_territoires
(
population_agricole
[
'indicateur_part_population_agricole_2010'
],
(
chemin_dossier_output
/
"indicateur_part_population_agricole_2010.csv"
)
)
outils_territoires
.
exporter_donnees_territoires
(
population_agricole
[
'indicateur_part_population_agricole_1988'
],
(
chemin_dossier_output
/
"indicateur_part_population_agricole_1988.csv"
)
)
outils_territoires
.
exporter_donnees_territoires
(
population_agricole
[
'indicateur_evolution_part_population_agricole'
],
(
chemin_dossier_output
/
"indicateur_evolution_part_population_agricole.csv"
)
)
outils_territoires
.
exporter_donnees_territoires
(
population_agricole
[
'synthese'
],
(
chemin_dossier_output
/
"synthese.csv"
)
donnees_population_agricole
.
drop
(
columns
=
[
'annee_dernier_mouvement_commune'
]
+
IDS_CATEGORIES_TERRITOIRES_SUPRACOMMUNAUX
).
to_csv
(
chemin_dossier_output
/
"population_agricole.csv"
,
sep
=
";"
,
encoding
=
"utf-8"
,
index
=
True
,
float_format
=
'%.2f'
)
def
charger_sources
(
chemin_fichier_actifs_agricoles_permanents
):
def
_
charger_sources
(
chemin_fichier_actifs_agricoles_permanents
:
Path
)
->
DictDataFrames
:
log
.
info
(
"##### CHARGEMEMENT DES DONNEES SOURCES POPULATION AGRICOLE #####"
)
actifs_agricoles_permanents
=
pd
.
merge
(
chargeur_
population_agricole
.
charger
(
chargeur_
actifs_agricoles_permanents
.
charger
(
chemin_fichier_actifs_agricoles_permanents
,
"FDS_G_2005_2010.txt"
)[[
'id_commune'
,
'valeur'
]].
rename
(
columns
=
{
'valeur'
:
'actifs_agricoles_permanents_2010'
},
errors
=
'raise'
),
chargeur_
population_agricole
.
charger
(
chargeur_
actifs_agricoles_permanents
.
charger
(
chemin_fichier_actifs_agricoles_permanents
,
"FDS_G_2005_1988.txt"
)[[
'id_commune'
,
'valeur'
]].
rename
(
...
...
@@ -117,7 +85,7 @@ def charger_sources(
}
def
calculer_donnees_population_agricole
(
def
_
calculer_donnees_population_agricole
(
territoires
:
DataFrame
,
sources_population_agricole
:
DataFrame
)
->
DataFrame
:
...
...
crater/population_agricole/evolution_part_population_agricole.py
View file @
ca3d6b61
...
...
@@ -4,22 +4,13 @@ import crater.territoires.outils as outils_territoires
from
crater.crater_logger
import
log
def
calculer
(
donnees_population_agricole
:
DataFrame
)
->
DataFrame
:
log
.
info
(
" => Indicateur évolution part population agricole
***
"
)
def
ajouter_evolution_part_population_agricole
(
donnees_population_agricole
:
DataFrame
)
->
DataFrame
:
log
.
info
(
" => Indicateur évolution part population agricole"
)
donnees_indicateur
=
donnees_population_agricole
.
loc
[:,
[
'nom_territoire'
,
'categorie_territoire'
,