Skip to content
Snippets Groups Projects
Commit 38b5fc12 authored by Benoît Courty's avatar Benoît Courty
Browse files

export equipements

parent dad29cd1
Branches
No related tags found
1 merge request!54Mise à jour de DataCirco
Pipeline #20133 passed
from datacirco.modules_data.equipements import GetEquipements
# from datacirco.map import tile_provider_forte
# import staticmaps
def export_equipements(db, data, in_communes):
"""Génère le fichier json concernant les entreprises.
Args:
db (_type_): Objet de connexion
data: Données
in_communes: Liste de communes à traiter
"""
# Récupérer les données concernant les entreprises
equipements = GetEquipements(db, data)
equipements.get_equipements(in_communes)
return equipements.data.equipements.__dict__
from dataclasses import dataclass
import pandas as pd
from datacirco import utilitaires
@dataclass()
class DataEquipements:
"""Class that contains the data for the equipements module."""
insee_bpe = None
class GetEquipements:
"""To retreive data from the database."""
def __init__(self, db, data):
"""
Args:
db: Connection to the database
data: A DataCirco object
"""
self.db = db
utilitaires.db = db
data.equipements = DataEquipements()
self.data = data
self.dept = data.dept
self.circo = data.circo
def get_equipements(self, in_communes):
"""Get the equipements from the database."""
utilitaires.db_exec(
utilitaires.db.mogrify(
"""
SELECT
nomrs, numvoie, typvoie, libvoie, libcom, v.lib_mod AS lib_typequ,
cantine, internat, ep as education_prioritaire, acces_aire_pratique,
acces_libre, acces_sanitaire, acces_vestiaire, capacite_d_accueil, pres_douche, pres_sanitaire,
longitude, latitude
FROM
public.insee_bpe AS b
LEFT JOIN
public.insee_bpe_vars AS v
ON v.cod_var = 'TYPEQU' -- Indique la colonne à expliquer
AND v.cod_mod = b.typequ -- Lie la valeur de la colonne à sa définition
WHERE
b.depcom in (%s);
"""
% (in_communes,)
)
)
equipements = utilitaires.db.fetchall()
assert len(equipements) > 0
df = pd.DataFrame(equipements)
df.columns = [col[0] for col in utilitaires.db.description]
self.data.equipements.insee_bpe = df
from datacirco.modules_data.data import DataCirco, GetDataCirco
from datacirco.export_to_json.equipements import export_equipements
from datacirco.export_to_json.population import export_population
from datacirco.export_to_json.environnement import export_environnement
from datacirco.export_to_json.elections import export_elections
......@@ -149,6 +150,13 @@ if debug:
utilitaires.trace(f"Temps de traitement common_data.json: {time() - start:.2f}s")
start = time()
# Equipements
equipements = export_equipements(db, data, in_communes)
extract_to_json("equipements.json", equipements, utilitaires.CustomJsonEncoder)
if debug:
utilitaires.trace(f"Temps de traitement equipements.json: {time() - start:.2f}s")
start = time()
# Population
population = export_population(db, data, dept)
extract_to_json("population.json", population, utilitaires.CustomJsonEncoder)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment