Commit 434152cb authored by Lionel DURAND's avatar Lionel DURAND
Browse files

Prise en compte fichiers 2021

+ utilisation de variable pour les fichiers de geometries de départements et région
+ suppression tests carto inutiles
parent 62ad2961
......@@ -16,7 +16,8 @@ from crater.production_besoins.calculateur_production_besoins import calculer_ax
from crater.reglages import (
DOSSIER_CONFIG,
CHEMIN_CRATER_DATA_SOURCES,
CHEMIN_SOURCE_COMMUNES_ET_ARRONDISSEMENTS, CHEMIN_DOSSIER_SOURCE_GEOMETRIES_COMMUNES, CHEMIN_SOURCE_MOUVEMENTS_COMMUNES,
CHEMIN_SOURCE_COMMUNES_ET_ARRONDISSEMENTS, CHEMIN_DOSSIER_SOURCE_GEOMETRIES_COMMUNES,
CHEMIN_SOURCE_MOUVEMENTS_COMMUNES,
CHEMIN_SOURCE_EPCIS, CHEMIN_SOURCE_DEPARTEMENTS, CHEMIN_SOURCE_REGIONS, CHEMIN_SOURCE_CODES_POSTAUX,
CHEMIN_SOURCE_POPULATION_TOTALE, CHEMIN_SOURCE_POPULATION_TOTALE_HISTORIQUE,
CHEMIN_SOURCE_POPULATION_AGRICOLE,
......@@ -29,7 +30,8 @@ from crater.reglages import (
DOSSIER_POLITIQUE_FONCIERE,
DOSSIER_PRATIQUES_AGRICOLES, CHEMIN_SOURCE_SAU_BIO,
DOSSIER_PRODUCTION_BESOINS,
DOSSIER_CARTES
DOSSIER_CARTES, CHEMIN_DOSSIER_SOURCE_GEOMETRIES_EPCIS, CHEMIN_SOURCE_GEOMETRIES_REGIONS,
CHEMIN_SOURCE_GEOMETRIES_DEPARTEMENTS
)
from crater.surface_agricole_utile import collecteur_rpg, calculateur_surface_agricole_utile
from crater.territoires.calculateur_donnees_territoires import calculer_donnees_territoires, \
......@@ -100,7 +102,7 @@ def lancer_telechargement_rpg():
def lancer_calcul_traitement_crater(nombre_traitements_paralleles: int, option: str):
lancer_calcul_referentiel_territoires()
if option == 'complet':
lancer_calcul_surface_agricole_utile()
lancer_calcul_surface_agricole_utile(nombre_traitements_paralleles)
lancer_calcul_donnees_territoires()
etapes_parallelisables = [lancer_calcul_population_agricole, lancer_calcul_politique_fonciere,
......@@ -241,9 +243,9 @@ def lancer_calcul_cartes():
reinitialiser_dossier(CHEMIN_OUTPUT_DATA / DOSSIER_CARTES)
calculer_cartes(
CHEMIN_CRATER_DATA_SOURCES / 'france_geojson' / 'regions.geojson',
CHEMIN_CRATER_DATA_SOURCES / 'france_geojson' / 'departements.geojson',
CHEMIN_CRATER_DATA_SOURCES / 'banatic' / 'geometries_epcis' / '2020' / 'Epci2020_region.shp',
CHEMIN_SOURCE_GEOMETRIES_REGIONS,
CHEMIN_SOURCE_GEOMETRIES_DEPARTEMENTS,
CHEMIN_DOSSIER_SOURCE_GEOMETRIES_EPCIS,
CHEMIN_OUTPUT_DATA / DOSSIER_PRODUCTION_BESOINS / 'production_besoins.csv',
CHEMIN_OUTPUT_DATA / DOSSIER_PRATIQUES_AGRICOLES / 'pratiques_agricoles.csv',
CHEMIN_OUTPUT_DATA / DOSSIER_POPULATION_AGRICOLE / 'population_agricole.csv',
......
......@@ -4,31 +4,35 @@ CHEMIN_CRATER_DATA_SOURCES = Path("../crater-data-sources")
CHEMIN_SOURCE_COMMUNES_ET_ARRONDISSEMENTS = Path(
CHEMIN_CRATER_DATA_SOURCES /
"insee/geographie/communes/2020/table-appartenance-geo-communes-20.xlsx"
"insee/geographie/communes/2021/table-appartenance-geo-communes-21.xlsx"
)
CHEMIN_DOSSIER_SOURCE_GEOMETRIES_COMMUNES = Path(
CHEMIN_CRATER_DATA_SOURCES /
"open_street_map/geometries_communes/2020/communes-20200101"
"open_street_map/geometries_communes/2021/communes-20210101"
)
CHEMIN_DOSSIER_SOURCE_GEOMETRIES_EPCIS = (CHEMIN_CRATER_DATA_SOURCES / 'banatic'
/ 'geometries_epcis' / '2021' / 'Métropole' / 'EPCI 2021_region.shp')
CHEMIN_SOURCE_EPCIS = Path(
CHEMIN_CRATER_DATA_SOURCES /
"insee/geographie/epcis/2020/Intercommunalite - Metropole au 01-01-2020.xlsx"
"insee/geographie/epcis/2021/Intercommunalite-Metropole_au_01-01-2021.xlsx"
)
CHEMIN_SOURCE_GEOMETRIES_DEPARTEMENTS = CHEMIN_CRATER_DATA_SOURCES / 'france_geojson' / '2018' / 'departements.geojson'
CHEMIN_SOURCE_DEPARTEMENTS = Path(
CHEMIN_CRATER_DATA_SOURCES /
"insee/geographie/departements_regions/2020/departement2020.csv"
"insee/geographie/departements_regions/2021/departement2021.csv"
)
CHEMIN_SOURCE_GEOMETRIES_REGIONS = CHEMIN_CRATER_DATA_SOURCES / 'france_geojson' / '2018' / 'regions.geojson'
CHEMIN_SOURCE_REGIONS = Path(
CHEMIN_CRATER_DATA_SOURCES /
"insee/geographie/departements_regions/2020/region2020.csv"
"insee/geographie/departements_regions/2021/region2021.csv"
)
CHEMIN_SOURCE_CODES_POSTAUX = Path(
CHEMIN_CRATER_DATA_SOURCES /
"la_poste/2020/laposte_hexasmal.csv"
"la_poste/2021/laposte_hexasmal.csv"
)
CHEMIN_SOURCE_MOUVEMENTS_COMMUNES = Path(
CHEMIN_CRATER_DATA_SOURCES /
"insee/geographie/communes/2020/table_passage_geo2003_geo2020.xlsx"
"insee/geographie/communes/2021/table_passage_geo2003_geo2021.xlsx"
)
CHEMIN_SOURCE_POPULATION_TOTALE = Path(
CHEMIN_CRATER_DATA_SOURCES /
......
......@@ -13,7 +13,8 @@ def charger(chemin_fichier: Path) -> DataFrame:
df = pd.read_excel(
chemin_fichier,
sheet_name='ARM',
usecols='A:C',
# Modification format en 2021 : la colonne COM est en position R et plus en C => on prend les 2 pour retro compatibilité
usecols='A:C,R',
skiprows=5,
dtype={
'CODGEO': 'str',
......
......@@ -10,27 +10,28 @@ from crater.territoires.outils import traduire_code_insee_vers_id_departement_cr
def charger(chemin_fichier: Path) -> DataFrame:
log.info(" => Chargement départements depuis %s", chemin_fichier)
df = pd.read_csv(
chemin_fichier,
sep=',',
dtype={
'dep': 'str',
'reg': 'str',
'cheflieu': 'str',
'tncc': 'Int64',
'ncc': 'str',
'nccenr': 'str',
'libelle': 'str'
'libelle': 'str',
# Noms de colonnes en majuscule dans le fichier source à partir de 2021 => on prend les 2 formats pour retro compatibilité
'DEP': 'str',
'REG': 'str',
'LIBELLE': 'str'
},
na_values=['']
).rename(
columns={
'dep': 'id_departement',
'reg': 'id_region',
'libelle': 'nom_departement',
'reg': 'id_region'
'DEP': 'id_departement',
'REG': 'id_region',
'LIBELLE': 'nom_departement',
},
errors='raise'
).reindex(
columns=[
'id_departement',
......@@ -38,7 +39,8 @@ def charger(chemin_fichier: Path) -> DataFrame:
'id_region'
]
)
_traduire_code_insee_vers_id_crater(df)
return df
......
......@@ -18,7 +18,9 @@ def charger_geometries_communes(
if chemin_dossier.name == 'communes-20200101':
geometries_communes = _corriger_code_insee_Bernwiller(geometries_communes)
elif chemin_dossier.name == 'communes-20210101':
geometries_communes = _corriger_code_insee_Les_Trois_Lacs(geometries_communes)
return geometries_communes
......@@ -32,4 +34,10 @@ def _corriger_code_insee_Bernwiller(geometries_communes: gpd.GeoDataFrame) -> gp
geometries_communes.loc[(geometries_communes.nom == "Bernwiller"), "id_commune"] = "C-68006"
return geometries_communes
def _corriger_code_insee_Les_Trois_Lacs(geometries_communes: gpd.GeoDataFrame) -> gpd.GeoDataFrame:
log.info("CORRECTION d'une erreur sur l'id de la commune des Trois Lacs dans le fichier source")
geometries_communes.loc[(geometries_communes.id_commune == "C-27676"), "id_commune"] = "C-27058"
return geometries_communes
......@@ -15,19 +15,19 @@ def charger(chemin_fichier: Path) -> DataFrame:
sep=',',
dtype={
'reg': 'str',
'cheflieu': 'str',
'tncc': 'Int64',
'ncc': 'str',
'nccenr': 'str',
'libelle': 'str'
'libelle': 'str',
# Noms de colonnes en majuscule dans le fichier source à partir de 2021 => on prend les 2 formats pour retro compatibilité
'REG': 'str',
'LIBELLE': 'str',
},
na_values=['']
).rename(
columns={
'reg': 'id_region',
'libelle': 'nom_region'
'libelle': 'nom_region',
'REG': 'id_region',
'LIBELLE': 'nom_region'
},
errors='raise'
).reindex(
columns=[
'id_region',
......
import unittest
from pathlib import Path
import geopandas
import pandas
from crater.cartographie.calculateur_cartographie import calculer_cartes
from crater.outils import reinitialiser_dossier
from crater.reglages import DOSSIER_PRODUCTION_BESOINS, DOSSIER_PRATIQUES_AGRICOLES, DOSSIER_POPULATION_AGRICOLE, \
DOSSIER_POLITIQUE_FONCIERE
CHEMIN_DONNEES_SOURCES = Path('../../crater-data-sources')
CHEMIN_DONNEES_RESULTATS = Path('../../crater-data-resultats')
class TestCartographie(unittest.TestCase):
def test_generation_geojson(self):
# TODO => ajouter TU
reinitialiser_dossier(CHEMIN_DONNEES_RESULTATS / 'crater_geojson')
calculer_cartes(
CHEMIN_DONNEES_SOURCES / 'france_geojson' / 'regions.geojson',
CHEMIN_DONNEES_SOURCES / 'france_geojson' / 'departements.geojson',
CHEMIN_DONNEES_SOURCES / 'banatic' / 'geometries_epcis' / '2020' / 'Epci2020_region.shp',
CHEMIN_DONNEES_RESULTATS / DOSSIER_PRODUCTION_BESOINS / 'production_besoins.csv',
CHEMIN_DONNEES_RESULTATS / DOSSIER_PRATIQUES_AGRICOLES / 'pratiques_agricoles.csv',
CHEMIN_DONNEES_RESULTATS / DOSSIER_POPULATION_AGRICOLE / 'synthese.csv',
CHEMIN_DONNEES_RESULTATS / DOSSIER_POLITIQUE_FONCIERE / 'synthese.csv',
CHEMIN_DONNEES_RESULTATS / 'crater_geojson'
)
Supports Markdown
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