Files
geo/cron/batiments.md
pierre 2f5946a184 feat: Version 3.5.2 - Configuration Stripe et gestion des immeubles
- Configuration complète Stripe pour les 3 environnements (DEV/REC/PROD)
  * DEV: Clés TEST Pierre (mode test)
  * REC: Clés TEST Client (mode test)
  * PROD: Clés LIVE Client (mode live)
- Ajout de la gestion des bases de données immeubles/bâtiments
  * Configuration buildings_database pour DEV/REC/PROD
  * Service BuildingService pour enrichissement des adresses
- Optimisations pages et améliorations ergonomie
- Mises à jour des dépendances Composer
- Nettoyage des fichiers obsolètes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 18:26:27 +01:00

43 KiB

Documentation BDNB - Base de Données Nationale des Bâtiments

Vue d'ensemble

La Base de Données Nationale des Bâtiments (BDNB) est une base de données géographique exhaustive qui agrège de nombreuses sources sur les bâtiments français :

  • Source : CSTB (Centre Scientifique et Technique du Bâtiment) / ADEME
  • Couverture : Département 03 (Allier)
  • Total lignes : ~6,08 millions de lignes
  • Taille totale : ~1,1 Go
  • Format : CSV avec géométries WKT (Well-Known Text)
  • Projection : EPSG:2154 (Lambert 93)

Principes de structuration

La BDNB s'articule autour de 3 niveaux géographiques :

  1. batiment_groupe : Groupe de bâtiments (échelle de l'adresse)
  2. batiment_construction : Bâtiment individuel (empreinte au sol)
  3. parcelle : Parcelle cadastrale

Les données thématiques sont attachées principalement au niveau batiment_groupe.


Tables principales

1. batiment_groupe.csv (Table centrale)

Rôle : Table pivot contenant les groupes de bâtiments identifiés à l'échelle de l'adresse.

Statistiques :

  • Lignes : 271 795
  • Taille : 78 Mo
  • Clé primaire : batiment_groupe_id

Colonnes :

geom_groupe              Géométrie MULTIPOLYGON en WKT
batiment_groupe_id       Identifiant unique (ex: bdnb-bg-11HT-AKW6-6RW8)
code_departement_insee   Code département (03)
s_geom_groupe            Surface du groupe en m²
code_iris                Code IRIS INSEE
code_commune_insee       Code commune INSEE (5 caractères)
libelle_commune_insee    Nom de la commune
code_epci_insee          Code EPCI (intercommunalité)
contient_fictive_geom_groupe  Indicateur de géométrie fictive (0/1)

Exemple :

batiment_groupe_id: bdnb-bg-11HT-AKW6-6RW8
code_commune_insee: 03300
libelle_commune_insee: Vaumas
s_geom_groupe: 257 m²

Usage : Point d'entrée pour toutes les jointures avec les données thématiques.


2. batiment_construction.csv

Rôle : Détails sur chaque construction individuelle composant un groupe de bâtiments.

Statistiques :

  • Lignes : 405 196
  • Taille : 97 Mo
  • Clé primaire : batiment_construction_id
  • Clé étrangère : batiment_groupe_id

Colonnes :

WKT                         Géométrie MULTIPOLYGON
batiment_construction_id    Identifiant unique (ex: bdnb-bc-CK5L-44YF-S14M)
batiment_groupe_id          Lien vers batiment_groupe
code_departement_insee      Code département
code_iris                   Code IRIS
code_commune_insee          Code commune
s_geom_cstr                 Surface de construction en m²
hauteur                     Hauteur du bâtiment en mètres
altitude_sol                Altitude du sol en mètres
fictive_geom_cstr           Indicateur de géométrie fictive

Relation : 1 batiment_groupe → N batiment_construction (1,5 constructions par groupe en moyenne)


3. adresse.csv (Lien avec BAN)

Rôle : Référentiel des adresses issues de la Base Adresse Nationale (BAN).

Statistiques :

  • Lignes : 182 132
  • Taille : 26 Mo
  • Clé primaire : cle_interop_adr

Colonnes :

WKT                     Géométrie POINT (coordonnées de l'adresse)
cle_interop_adr         Clé d'interopérabilité BAN (ex: 03001_0013_00004)
code_departement_insee  Code département
numero                  Numéro dans la voie
rep                     Répétition (bis, ter, etc.)
type_voie               Type de voie (rue, avenue, place, etc.)
nom_voie                Nom de la voie
libelle_adresse         Adresse complète formatée
code_postal             Code postal
code_commune_insee      Code commune INSEE
libelle_commune         Nom de la commune
source                  Source des données (BAN)

Exemple :

cle_interop_adr: 03001_0013_00004
libelle_adresse: 4 Place des Anciens Combattants 03200 Abrest

Usage : Jointure avec votre base d'adresses via cle_interop_adr ou libelle_adresse.


4. parcelle.csv

Rôle : Parcelles cadastrales du département.

Statistiques :

  • Lignes : 733 568
  • Taille : 497 Mo
  • Clé primaire : parcelle_id

Colonnes :

geom_parcelle           Géométrie MULTIPOLYGON de la parcelle
parcelle_id             Identifiant parcelle cadastrale (ex: 03001000ZC0568)
code_departement_insee  Code département
code_commune_insee      Code commune
s_geom_parcelle         Surface de la parcelle en m²

Format parcelle_id : CODE_COMMUNE (5) + SECTION (3) + NUMERO (4)

  • Exemple : 03001000ZC0568 → commune 03001, section 000ZC, numéro 0568

Tables de relations (rel_*)

Ces tables établissent les liens many-to-many entre les entités principales.

rel_batiment_groupe_adresse.csv (Lien BAN)

Rôle : Association entre bâtiments et adresses BAN.

Statistiques :

  • Lignes : 209 054
  • Taille : 34 Mo

Colonnes :

WKT                  Géométrie MULTILINESTRING (ligne entre bâtiment et adresse)
batiment_groupe_id   Référence batiment_groupe
cle_interop_adr      Référence adresse BAN
code_departement_insee  Code département
classe               Classe de relation (non renseigné)
lien_valide          Validité du lien (1=valide)
origine              Origine du lien (ex: "Association Geometrique")

Usage critique : Cette table permet de faire le pont entre vos adresses BAN et les bâtiments BDNB.

Exemple de jointure :

SELECT
    bg.*,
    a.libelle_adresse
FROM batiment_groupe bg
JOIN rel_batiment_groupe_adresse rel ON bg.batiment_groupe_id = rel.batiment_groupe_id
JOIN adresse a ON rel.cle_interop_adr = a.cle_interop_adr
WHERE rel.lien_valide = 1

rel_batiment_groupe_parcelle.csv

Rôle : Association entre bâtiments et parcelles cadastrales.

Statistiques :

  • Lignes : 293 578
  • Taille : 13 Mo

Colonnes :

batiment_groupe_id      Référence batiment_groupe
parcelle_id             Référence parcelle cadastrale
code_departement_insee  Code département
parcelle_principale     Indicateur de parcelle principale (1=oui, 0=non)

Note : Un bâtiment peut être à cheval sur plusieurs parcelles. Le flag parcelle_principale indique la parcelle principale.


rel_batiment_groupe_dpe_logement.csv

Rôle : Association entre bâtiments et DPE individuels.

Statistiques :

  • Lignes : ~186 000
  • Taille : 12 Mo

Colonnes :

batiment_groupe_id   Référence batiment_groupe
identifiant_dpe      Référence vers dpe_logement
code_departement_insee  Code département
fiabilite_rattachement  Qualité du rattachement
score_rattachement   Score de confiance

Usage : Lier les bâtiments aux DPE détaillés de la table dpe_logement.csv.


Autres tables rel_*

Table Lignes Rôle
rel_batiment_construction_adresse.csv ~620k Lien constructions ↔ adresses
rel_batiment_construction_rnb.csv ~480k Lien constructions ↔ RNB (référentiel bâtiments)
rel_batiment_groupe_bdtopo_bat.csv ~464k Lien bâtiments ↔ BDTOPO
rel_batiment_groupe_dvf_open.csv ~72k Lien bâtiments ↔ transactions DVF
rel_batiment_groupe_merimee.csv ~306k Lien bâtiments ↔ monuments historiques
rel_batiment_groupe_proprietaire.csv ~21k Lien bâtiments ↔ propriétaires
rel_batiment_groupe_rnc.csv ~3,3k Lien bâtiments ↔ copropriétés

Tables thématiques

Données énergétiques

batiment_groupe_dpe_representatif_logement.csv

Rôle : DPE représentatif agrégé par bâtiment (le plus complet).

Statistiques :

  • Lignes : 32 559
  • Taille : 27 Mo
  • 102 colonnes (très détaillé)

Colonnes principales :

batiment_groupe_id                Référence bâtiment
identifiant_dpe                   ID du DPE représentatif
arrete_2021                       DPE nouvelle méthode (0/1)
type_batiment_dpe                 maison / appartement
periode_construction_dpe          Période de construction
annee_construction_dpe            Année de construction
nombre_niveau_logement            Nombre d'étages du logement
nombre_niveau_immeuble            Nombre d'étages de l'immeuble
surface_habitable_logement        Surface habitable en m²
conso_5_usages_ep_m2              Consommation énergie primaire (kWh/m²/an)
conso_5_usages_ef_m2              Consommation énergie finale (kWh/m²/an)
emission_ges_5_usages_m2          Émissions GES (kg CO2/m²/an)
classe_bilan_dpe                  Classe DPE (A à G)
classe_emission_ges               Classe GES (A à G)

# Chauffage
type_energie_chauffage            Énergie (électricité, gaz, fioul, bois, etc.)
type_generateur_chauffage         Type de générateur
type_installation_chauffage       individuel / collectif

# Eau chaude sanitaire (ECS)
type_energie_ecs                  Énergie ECS
type_generateur_ecs               Type de générateur ECS

# Isolation
type_isolation_mur_exterieur      ITI / ITE / non isolé
u_mur_exterieur                   Coefficient U des murs (W/m²K)
type_vitrage                      simple / double / triple vitrage
type_materiaux_menuiserie         bois / pvc / métal / aluminium
type_isolation_plancher_bas       Isolation du plancher
type_isolation_plancher_haut      Isolation du toit

# Surfaces
surface_mur_exterieur             Surface des murs en m²
surface_vitree_nord               Surface vitrée nord en m²
surface_vitree_sud                Surface vitrée sud en m²
surface_plancher_bas_totale       Surface plancher en m²

Couverture : ~12% des bâtiments ont un DPE représentatif.


batiment_groupe_dpe_statistique_logement.csv

Rôle : Statistiques agrégées des DPE par bâtiment (plusieurs DPE moyennés).

Statistiques :

  • Lignes : ~29k
  • Taille : 1,9 Mo

Usage : Complète le DPE représentatif avec des moyennes statistiques.


dpe_logement.csv

Rôle : DPE individuels détaillés (1 ligne = 1 DPE).

Statistiques :

  • Lignes : 69 370
  • Taille : 56 Mo
  • Clé primaire : identifiant_dpe

Colonnes : Identiques à batiment_groupe_dpe_representatif_logement mais sans lien direct au bâtiment.

Usage : Récupérer tous les DPE d'un bâtiment via rel_batiment_groupe_dpe_logement.csv.


batiment_groupe_dle_elec_multimillesime.csv

Rôle : Données Locales de l'Énergie (DLE) - Électricité par année.

Statistiques :

  • Lignes : ~10k
  • Taille : 897 Ko

Colonnes :

batiment_groupe_id      Référence bâtiment
millesime               Année (2018, 2019, 2020, 2021, 2022)
nb_pdl_res              Nombre de PDL résidentiels
nb_pdl_pro              Nombre de PDL professionnels
nb_pdl_tot              Total PDL
conso_res               Consommation résidentielle (kWh/an)
conso_pro               Consommation professionnelle (kWh/an)
conso_tot               Consommation totale (kWh/an)
conso_res_par_pdl       Consommation moyenne par PDL résidentiel
conso_pro_par_pdl       Consommation moyenne par PDL professionnel
conso_tot_par_pdl       Consommation moyenne par PDL

Note : Données agrégées par bâtiment et par année (5 lignes par bâtiment si données 2018-2022).


batiment_groupe_dle_gaz_multimillesime.csv

Rôle : Données Locales de l'Énergie (DLE) - Gaz par année.

Statistiques :

  • Lignes : ~3k
  • Taille : 287 Ko

Colonnes : Identiques à DLE électricité.

Couverture : Moins de bâtiments (gaz moins répandu que l'électricité).


batiment_groupe_dle_reseaux_multimillesime.csv

Rôle : DLE - Réseaux de chaleur/froid.

Statistiques :

  • Lignes : ~30
  • Taille : 3 Ko

Note : Très peu de données (réseau de chaleur peu développé dans l'Allier).


Données immobilières

batiment_groupe_dvf_open_representatif.csv

Rôle : Transactions immobilières représentatives par bâtiment (DVF = Demandes de Valeurs Foncières).

Statistiques :

  • Lignes : 52 666
  • Taille : 5,5 Mo

Colonnes :

batiment_groupe_id                  Référence bâtiment
id_opendata                         ID transaction DVF
valeur_fonciere                     Prix de vente en euros
date_mutation                       Date de la transaction
nb_locaux_mutee_mutation            Nombre de locaux vendus
nb_maison_mutee_mutation            Nombre de maisons vendues
nb_appartement_mutee_mutation       Nombre d'appartements vendus
nb_dependance_mutee_mutation        Nombre de dépendances vendues
nb_locaux_tertiaire_mutee_mutation  Nombre de locaux tertiaires vendus
surface_bati_mutee_residencielle_individuelle  Surface maisons vendues (m²)
surface_bati_mutee_residencielle_collective    Surface appartements vendus (m²)
surface_bati_mutee_dependance       Surface dépendances vendues (m²)
surface_bati_mutee_tertiaire        Surface tertiaire vendue (m²)
surface_terrain_mutee               Surface terrain vendue (m²)
nb_piece_principale                 Nombre de pièces principales
prix_m2_local                       Prix au m² du bâti (€/m²)
prix_m2_terrain                     Prix au m² du terrain (€/m²)

Exemple :

valeur_fonciere: 88000 €
date_mutation: 2021/02/11
nb_maison: 1
surface_bati: 86 m²
prix_m2_local: 1023 €/m²

Période : Transactions depuis 2014.


batiment_groupe_dvf_open_statistique.csv

Rôle : Statistiques DVF agrégées par bâtiment.

Statistiques :

  • Lignes : ~46k
  • Taille : 4,8 Mo

Usage : Moyenne des prix sur plusieurs transactions.


Données copropriété

batiment_groupe_rnc.csv

Rôle : Registre National des Copropriétés (RNC).

Statistiques :

  • Lignes : 2 065
  • Taille : 261 Ko

Colonnes :

batiment_groupe_id          Référence bâtiment
numero_immat_principal      Numéro d'immatriculation copropriété
periode_construction_max    Période de construction
l_annee_construction        Liste des années de construction [JSON]
nb_lot_garpark              Nombre de lots garages/parkings
nb_lot_tot                  Nombre total de lots
nb_log                      Nombre de logements
nb_lot_tertiaire            Nombre de lots tertiaires
l_nom_copro                 Liste des noms de copropriété [JSON]
l_siret                     Liste des SIRET syndics [JSON]
copro_dans_pvd              Copropriété en plan de sauvegarde (0/1)

Exemple :

numero_immat: AH0968750
nb_log: 2
nb_lot_tot: 6
nb_lot_garpark: 0
l_nom_copro: ["25-27 rue du Vert Galant"]

Couverture : ~0,76% des bâtiments (seules les copropriétés).


Données propriétaires

proprietaire.csv

Rôle : Propriétaires personnes morales (bailleurs sociaux, entreprises, etc.).

Statistiques :

  • Lignes : 9 252
  • Taille : 634 Ko

Colonnes :

personne_id             Identifiant propriétaire
siren                   SIREN de l'entreprise
code_departement_insee  Code département
forme_juridique         SA, SAS, SARL, etc.
denomination            Nom de l'entreprise
code_postal             Code postal du siège
libelle_commune         Commune du siège
dans_majic_pm           Présent dans MAJIC (1/0)
nb_locaux_open          Nombre de locaux possédés

Exemple :

siren: 552046484
denomination: CDC HABITAT SOCIAL SOCIETE ANONYME D'HABITATIONS A LOYER MOD
forme_juridique: SA
nb_locaux_open: 1491

Note : Uniquement les personnes morales (pas les particuliers).


Données logements sociaux

batiment_groupe_rpls.csv

Rôle : Répertoire des Logements Locatifs des bailleurs Sociaux (RPLS).

Statistiques :

  • Lignes : ~4,5k
  • Taille : 297 Ko

Colonnes :

batiment_groupe_id          Référence bâtiment
rpls_open                   Présence dans RPLS (1)
nb_classe_ener_a/b/c/d/e/f/g  Nombre de logements par classe DPE
classe_ener_principale      Classe énergétique majoritaire
nb_classe_ges_a/b/c/d/e/f/g   Nombre de logements par classe GES
classe_ges_principale       Classe GES majoritaire
accessible_pmr              Accessible PMR (0/1)
dans_qpv                    Dans QPV (0/1)
l_annee_construction        Années de construction [JSON]
nb_log                      Nombre de logements
s_log_hab                   Surface habitable totale (m²)
type_construction           Individuel / Collectif [JSON]

Couverture : Uniquement logements sociaux (~1,7% des bâtiments).


Données géographiques et référentiels

batiment_groupe_adresse.csv

Rôle : Synthèse des adresses principales par bâtiment.

Statistiques :

  • Lignes : 180 907
  • Taille : 29 Mo

Colonnes :

batiment_groupe_id              Référence bâtiment
cle_interop_adr_principale_ban  Clé BAN de l'adresse principale
libelle_adr_principale_ban      Libellé complet de l'adresse principale
nb_adresse_valid_ban            Nombre d'adresses valides BAN
fiabilite_cr_adr_niv_1          Niveau 1 de fiabilité
fiabilite_cr_adr_niv_2          Niveau 2 de fiabilité

Exemple :

batiment_groupe_id: bdnb-bg-11HT-AKW6-6RW8
cle_interop_adr_principale_ban: 03300_b144_00009
libelle_adr_principale_ban: 9 Les Jeandurets Hauts 03220 Vaumas
fiabilite_cr_adr_niv_1: données croisées à l'adresse fiables
fiabilite_cr_adr_niv_2: batiment sans voisin à l'adresse

Usage : Accès rapide à l'adresse principale sans passer par rel_*.


batiment_groupe_bdtopo_bat.csv

Rôle : Données BDTOPO (IGN) sur les bâtiments.

Statistiques :

  • Lignes : ~463k
  • Taille : 30 Mo

Colonnes :

batiment_groupe_id      Référence bâtiment
l_nature                Liste des natures [JSON]: Indifférenciée, Religieux, etc.
l_usage_1               Liste des usages principaux [JSON]: Résidentiel, Commercial, etc.
l_usage_2               Liste des usages secondaires [JSON]
l_etat                  État [JSON]: En service, En construction, etc.
hauteur_mean            Hauteur moyenne en mètres
max_hauteur             Hauteur maximale en mètres
altitude_sol_mean       Altitude moyenne du sol en mètres

Note : Source de référence IGN pour les hauteurs et usages.


adresse_metrique.csv

Rôle : Métrique complémentaire sur les adresses (distances, etc.).

Statistiques :

  • Lignes : ~51k
  • Taille : 3,5 Mo

Données environnementales et risques

batiment_groupe_argiles.csv

Rôle : Aléa retrait-gonflement des argiles (risque sécheresse).

Statistiques :

  • Lignes : ~129k
  • Taille : 7,8 Mo

Colonnes :

batiment_groupe_id  Référence bâtiment
alea                Niveau d'aléa : Faible / Moyen / Fort

Usage : Identifier les bâtiments à risque sécheresse/fissures.


batiment_groupe_radon.csv

Rôle : Aléa radon (gaz radioactif naturel).

Statistiques :

  • Lignes : ~146k
  • Taille : 8,8 Mo

Colonnes :

batiment_groupe_id  Référence bâtiment
alea                Niveau d'aléa : Faible / Moyen / Fort

batiment_groupe_qpv.csv

Rôle : Quartiers Prioritaires de la politique de la Ville (QPV).

Statistiques :

  • Lignes : ~1,2k
  • Taille : 73 Ko

Colonnes :

batiment_groupe_id  Référence bâtiment
nom_quartier        Nom du QPV

Exemple : "Coeur D'Agglo"


Données patrimoniales

batiment_groupe_merimee.csv

Rôle : Distance aux monuments historiques (base Mérimée).

Statistiques :

  • Lignes : ~54k
  • Taille : 3,3 Mo

Colonnes :

batiment_groupe_id                      Référence bâtiment
distance_batiment_historique_plus_proche  Distance en mètres
nom_batiment_historique_plus_proche      Nom du monument

Exemple :

distance: 334 mètres
nom: Eglise Saint-Pierre

Données équipements

batiment_groupe_bpe.csv

Rôle : Base Permanente des Équipements (BPE) - Équipements publics.

Statistiques :

  • Lignes : ~2,6k
  • Taille : 171 Ko

Colonnes :

batiment_groupe_id  Référence bâtiment
typequ              Type d'équipement (code)

Usage : Identifier écoles, mairies, hôpitaux, etc.


batiment_groupe_hthd.csv

Rôle : Très Haut Débit (fibre optique).

Statistiques :

  • Lignes : ~126k
  • Taille : 7,6 Mo

Colonnes :

batiment_groupe_id  Référence bâtiment
nb_pdl              Nombre de points de livraison fibre
l_type_pdl          Types de PDL [JSON]: "PA" (Point d'Accueil), "IM" (Immeuble), etc.
l_nom_pdl           Noms des PDL [JSON]

Usage : Éligibilité fibre optique.


Données construction

sitadel.csv

Rôle : Permis de construire et autorisations d'urbanisme (SITADEL).

Statistiques :

  • Lignes : ~50k
  • Taille : 4,1 Mo

Colonnes principales :

type_numero_dau                 Type et numéro du dossier (DP, PC, etc.)
date_reelle_autorisation        Date d'autorisation
etat_avancement_projet          Autorisé, En cours, Achevé, etc.
nature_projet                   extension, construction neuve, etc.
destination_principale          résidentiel, non résidentiel
nb_log_tot_crees                Nombre de logements créés
nb_log_demolis                  Nombre de logements démolis
s_hab_creee                     Surface habitable créée (m²)
s_hab_demolie                   Surface habitable démolie (m²)
type_princip_logts_crees        individuel, collectif

Usage : Projets en cours et constructions récentes.


parcelle_sitadel.csv + rel_parcelle_sitadel.csv

Rôle : Lien entre parcelles cadastrales et permis de construire.

Statistiques :

  • parcelle_sitadel.csv : ~29k lignes, 2,4 Mo
  • rel_parcelle_sitadel.csv : ~15k lignes, 937 Ko

Autres tables thématiques

Table Lignes Taille Description
batiment_groupe_geospx.csv ~182k 11 Mo Données géo-prospective
batiment_groupe_ffo_bat.csv ~206k 13 Mo Fichiers fonciers ouverts
batiment_groupe_bdtopo_equ.csv ~60 4 Ko Équipements BDTOPO
batiment_groupe_bdtopo_zoac.csv ~8,6k 553 Ko Zones d'activité BDTOPO
batiment_groupe_synthese_propriete_usage.csv ~214k 13 Mo Synthèse propriété/usage
batiment_groupe_indicateur_reseau_chaud_froid.csv ~2k 121 Ko Réseaux de chaleur/froid

Schéma des relations entre tables

                                    ┌─────────────────────┐
                                    │  batiment_groupe    │ ⭐ TABLE CENTRALE
                                    │  (271k lignes)      │
                                    └──────────┬──────────┘
                                              │
                    ┌─────────────────────────┼─────────────────────────┐
                    │                         │                         │
        ┌───────────▼──────────┐  ┌──────────▼─────────┐   ┌──────────▼─────────┐
        │ batiment_construction│  │ batiment_groupe_   │   │   rel_batiment_    │
        │     (405k)           │  │    adresse (181k)  │   │   groupe_adresse   │
        └──────────────────────┘  └────────────────────┘   │      (209k)        │
                                                            └──────────┬─────────┘
                                                                       │
                                                            ┌──────────▼─────────┐
                                                            │     adresse        │ ⭐ BAN
                                                            │     (182k)         │
                                                            └────────────────────┘

                    ┌─────────────────────────┐
                    │  rel_batiment_groupe_   │
                    │     parcelle (294k)     │
                    └───────────┬─────────────┘
                                │
                    ┌───────────▼──────────┐
                    │      parcelle        │
                    │      (734k)          │
                    └──────────────────────┘

        DONNÉES ÉNERGÉTIQUES                    DONNÉES IMMOBILIÈRES
        ┌──────────────────────┐                ┌──────────────────────┐
        │ bg_dpe_representatif │ ⭐              │  bg_dvf_open_repr.   │ ⭐
        │      (32k)           │                 │       (53k)          │
        └──────────────────────┘                └──────────────────────┘
        ┌──────────────────────┐                ┌──────────────────────┐
        │ bg_dle_elec_multi.   │                │  bg_dvf_open_stat.   │
        │      (10k)           │                 │       (46k)          │
        └──────────────────────┘                └──────────────────────┘
        ┌──────────────────────┐                ┌──────────────────────┐
        │ bg_dle_gaz_multi.    │                │    proprietaire      │
        │       (3k)           │                 │       (9k)           │
        └──────────────────────┘                └──────────────────────┘
        ┌──────────────────────┐
        │   dpe_logement       │
        │      (69k)           │
        └──────────────────────┘

        COPROPRIÉTÉ / SOCIAL                    RISQUES / ENVIRONNEMENT
        ┌──────────────────────┐                ┌──────────────────────┐
        │   bg_rnc (2k)        │ ⭐              │  bg_argiles (129k)   │
        └──────────────────────┘                └──────────────────────┘
        ┌──────────────────────┐                ┌──────────────────────┐
        │   bg_rpls (4,5k)     │                │  bg_radon (146k)     │
        └──────────────────────┘                └──────────────────────┘
                                                ┌──────────────────────┐
                                                │  bg_qpv (1,2k)       │
                                                └──────────────────────┘

        GÉORÉFÉRENCEMENT                        PATRIMOINE / ÉQUIPEMENTS
        ┌──────────────────────┐                ┌──────────────────────┐
        │ bg_bdtopo_bat (463k) │                │  bg_merimee (54k)    │
        └──────────────────────┘                └──────────────────────┘
        ┌──────────────────────┐                ┌──────────────────────┐
        │   bg_hthd (126k)     │                │   bg_bpe (2,6k)      │
        └──────────────────────┘                └──────────────────────┘

        CONSTRUCTION / URBANISME
        ┌──────────────────────┐
        │   sitadel (50k)      │
        └──────────────────────┘

Légende :

  • : Tables prioritaires
  • bg_* : Préfixe "batiment_groupe"
  • Toutes les tables thématiques se lient via batiment_groupe_id

Exemples de requêtes SQL

1. Récupérer les bâtiments d'une commune avec adresses

SELECT
    bg.batiment_groupe_id,
    bg.code_commune_insee,
    bg.libelle_commune_insee,
    bg.s_geom_groupe,
    bga.libelle_adr_principale_ban,
    bga.cle_interop_adr_principale_ban
FROM batiment_groupe bg
LEFT JOIN batiment_groupe_adresse bga
    ON bg.batiment_groupe_id = bga.batiment_groupe_id
WHERE bg.code_commune_insee = '03185'  -- Montluçon
ORDER BY bga.libelle_adr_principale_ban;

2. Joindre avec votre base d'adresses BAN

-- Si vous avez une table "mes_adresses" avec la colonne "ban_id"
SELECT
    ma.id AS mon_adresse_id,
    ma.adresse,
    bg.batiment_groupe_id,
    bg.s_geom_groupe,
    bg.code_commune_insee
FROM mes_adresses ma
JOIN rel_batiment_groupe_adresse rel
    ON ma.ban_id = rel.cle_interop_adr
JOIN batiment_groupe bg
    ON rel.batiment_groupe_id = bg.batiment_groupe_id
WHERE rel.lien_valide = 1;

3. Récupérer les données énergétiques complètes

SELECT
    bg.batiment_groupe_id,
    bg.code_commune_insee,
    bg.libelle_commune_insee,
    bga.libelle_adr_principale_ban,

    -- DPE représentatif
    dpe.classe_bilan_dpe,
    dpe.classe_emission_ges,
    dpe.conso_5_usages_ep_m2,
    dpe.type_energie_chauffage,
    dpe.type_generateur_chauffage,
    dpe.surface_habitable_logement,
    dpe.nombre_niveau_immeuble,

    -- DLE électricité (dernière année)
    dle_elec.millesime AS millesime_elec,
    dle_elec.nb_pdl_tot AS nb_compteurs_elec,
    dle_elec.conso_tot AS conso_elec_kwh,

    -- DLE gaz (dernière année)
    dle_gaz.nb_pdl_tot AS nb_compteurs_gaz,
    dle_gaz.conso_tot AS conso_gaz_kwh

FROM batiment_groupe bg
LEFT JOIN batiment_groupe_adresse bga
    ON bg.batiment_groupe_id = bga.batiment_groupe_id
LEFT JOIN batiment_groupe_dpe_representatif_logement dpe
    ON bg.batiment_groupe_id = dpe.batiment_groupe_id
LEFT JOIN batiment_groupe_dle_elec_multimillesime dle_elec
    ON bg.batiment_groupe_id = dle_elec.batiment_groupe_id
    AND dle_elec.millesime = '2022'
LEFT JOIN batiment_groupe_dle_gaz_multimillesime dle_gaz
    ON bg.batiment_groupe_id = dle_gaz.batiment_groupe_id
    AND dle_gaz.millesime = '2022'

WHERE bg.code_commune_insee = '03185'
ORDER BY bga.libelle_adr_principale_ban;

4. Bâtiments avec copropriété (RNC)

SELECT
    bg.batiment_groupe_id,
    bga.libelle_adr_principale_ban,
    rnc.numero_immat_principal,
    rnc.nb_log AS nb_logements,
    rnc.nb_lot_tot AS nb_lots_total,
    rnc.nb_lot_garpark AS nb_parkings,
    rnc.l_nom_copro AS noms_copro,
    rnc.copro_dans_pvd AS plan_sauvegarde
FROM batiment_groupe bg
JOIN batiment_groupe_rnc rnc
    ON bg.batiment_groupe_id = rnc.batiment_groupe_id
LEFT JOIN batiment_groupe_adresse bga
    ON bg.batiment_groupe_id = bga.batiment_groupe_id
ORDER BY rnc.nb_log DESC;

5. Transactions immobilières récentes

SELECT
    bg.batiment_groupe_id,
    bga.libelle_adr_principale_ban,
    dvf.valeur_fonciere,
    dvf.date_mutation,
    dvf.nb_maison_mutee_mutation + dvf.nb_appartement_mutee_mutation AS nb_biens_vendus,
    dvf.surface_bati_mutee_residencielle_individuelle +
    dvf.surface_bati_mutee_residencielle_collective AS surface_totale_m2,
    dvf.prix_m2_local,
    dvf.prix_m2_terrain
FROM batiment_groupe bg
JOIN batiment_groupe_dvf_open_representatif dvf
    ON bg.batiment_groupe_id = dvf.batiment_groupe_id
LEFT JOIN batiment_groupe_adresse bga
    ON bg.batiment_groupe_id = bga.batiment_groupe_id
WHERE dvf.date_mutation >= '2020-01-01'
ORDER BY dvf.date_mutation DESC;

6. Bâtiments à risque environnemental élevé

SELECT
    bg.batiment_groupe_id,
    bg.code_commune_insee,
    bg.libelle_commune_insee,
    bga.libelle_adr_principale_ban,
    argile.alea AS alea_argile,
    radon.alea AS alea_radon
FROM batiment_groupe bg
LEFT JOIN batiment_groupe_adresse bga
    ON bg.batiment_groupe_id = bga.batiment_groupe_id
LEFT JOIN batiment_groupe_argiles argile
    ON bg.batiment_groupe_id = argile.batiment_groupe_id
LEFT JOIN batiment_groupe_radon radon
    ON bg.batiment_groupe_id = radon.batiment_groupe_id
WHERE argile.alea = 'Fort'
   OR radon.alea = 'Fort'
ORDER BY bg.code_commune_insee;

7. Logements sociaux avec DPE

SELECT
    bg.batiment_groupe_id,
    bga.libelle_adr_principale_ban,
    rpls.nb_log AS nb_logements_sociaux,
    rpls.s_log_hab AS surface_habitable_totale,
    rpls.classe_ener_principale,
    rpls.classe_ges_principale,
    rpls.accessible_pmr,
    rpls.dans_qpv,
    rpls.l_annee_construction
FROM batiment_groupe bg
JOIN batiment_groupe_rpls rpls
    ON bg.batiment_groupe_id = rpls.batiment_groupe_id
LEFT JOIN batiment_groupe_adresse bga
    ON bg.batiment_groupe_id = bga.batiment_groupe_id
WHERE rpls.rpls_open = 1
ORDER BY rpls.nb_log DESC;

8. Bâtiments près d'un monument historique

SELECT
    bg.batiment_groupe_id,
    bga.libelle_adr_principale_ban,
    merimee.distance_batiment_historique_plus_proche AS distance_m,
    merimee.nom_batiment_historique_plus_proche AS monument
FROM batiment_groupe bg
JOIN batiment_groupe_merimee merimee
    ON bg.batiment_groupe_id = merimee.batiment_groupe_id
LEFT JOIN batiment_groupe_adresse bga
    ON bg.batiment_groupe_id = bga.batiment_groupe_id
WHERE merimee.distance_batiment_historique_plus_proche < 100
ORDER BY merimee.distance_batiment_historique_plus_proche;

9. Vue complète d'un bâtiment

-- Vue exhaustive d'un bâtiment avec toutes les données disponibles
SELECT
    -- Identifiants
    bg.batiment_groupe_id,
    bg.code_commune_insee,
    bg.libelle_commune_insee,
    bg.code_iris,
    bg.s_geom_groupe AS surface_m2,

    -- Adresse
    bga.libelle_adr_principale_ban,
    bga.cle_interop_adr_principale_ban,

    -- DPE
    dpe.classe_bilan_dpe,
    dpe.classe_emission_ges,
    dpe.conso_5_usages_ep_m2,
    dpe.type_energie_chauffage,
    dpe.surface_habitable_logement,

    -- DVF (dernière transaction)
    dvf.valeur_fonciere,
    dvf.date_mutation,
    dvf.prix_m2_local,

    -- RNC (si copropriété)
    rnc.numero_immat_principal,
    rnc.nb_log AS nb_lots_copro,

    -- Risques
    argile.alea AS risque_argile,
    radon.alea AS risque_radon,
    qpv.nom_quartier AS quartier_prioritaire,

    -- Patrimoine
    merimee.distance_batiment_historique_plus_proche AS distance_mh_m,
    merimee.nom_batiment_historique_plus_proche AS monument_proche,

    -- Fibre
    hthd.nb_pdl AS nb_pdl_fibre,

    -- BDTOPO
    bdtopo.hauteur_mean AS hauteur_moyenne_m,
    bdtopo.l_usage_1 AS usages_principaux

FROM batiment_groupe bg
LEFT JOIN batiment_groupe_adresse bga
    ON bg.batiment_groupe_id = bga.batiment_groupe_id
LEFT JOIN batiment_groupe_dpe_representatif_logement dpe
    ON bg.batiment_groupe_id = dpe.batiment_groupe_id
LEFT JOIN batiment_groupe_dvf_open_representatif dvf
    ON bg.batiment_groupe_id = dvf.batiment_groupe_id
LEFT JOIN batiment_groupe_rnc rnc
    ON bg.batiment_groupe_id = rnc.batiment_groupe_id
LEFT JOIN batiment_groupe_argiles argile
    ON bg.batiment_groupe_id = argile.batiment_groupe_id
LEFT JOIN batiment_groupe_radon radon
    ON bg.batiment_groupe_id = radon.batiment_groupe_id
LEFT JOIN batiment_groupe_qpv qpv
    ON bg.batiment_groupe_id = qpv.batiment_groupe_id
LEFT JOIN batiment_groupe_merimee merimee
    ON bg.batiment_groupe_id = merimee.batiment_groupe_id
LEFT JOIN batiment_groupe_hthd hthd
    ON bg.batiment_groupe_id = hthd.batiment_groupe_id
LEFT JOIN batiment_groupe_bdtopo_bat bdtopo
    ON bg.batiment_groupe_id = bdtopo.batiment_groupe_id

WHERE bg.batiment_groupe_id = 'bdnb-bg-11HT-AKW6-6RW8';

Statistiques de couverture

Donnée Table Couverture
Adresse BAN batiment_groupe_adresse 66,5% (181k/272k)
DPE représentatif bg_dpe_representatif 12,0% (32k/272k)
DLE électricité bg_dle_elec 3,7% (10k/272k)
DLE gaz bg_dle_gaz 1,1% (3k/272k)
DVF transactions bg_dvf_open_repr 19,4% (53k/272k)
Copropriété RNC bg_rnc 0,76% (2k/272k)
Logement social RPLS bg_rpls 1,7% (4,5k/272k)
Risque argiles bg_argiles 47,5% (129k/272k)
Risque radon bg_radon 53,7% (146k/272k)
QPV bg_qpv 0,44% (1,2k/272k)
Monuments historiques bg_merimee 19,9% (54k/272k)
Fibre HTHD bg_hthd 46,4% (126k/272k)
BDTOPO bg_bdtopo_bat 170,4% (463k/272k)*

* Plus de 100% car plusieurs entrées BDTOPO par bâtiment


Notes importantes

Format des identifiants

  • batiment_groupe_id : bdnb-bg-XXXX-XXXX-XXXX (ex: bdnb-bg-11HT-AKW6-6RW8)
  • batiment_construction_id : bdnb-bc-XXXX-XXXX-XXXX
  • parcelle_id : Format cadastral CCCCCSSSNNNNN (C=commune, S=section, N=numéro)
  • cle_interop_adr : Format BAN CCCCC_XXXX_NNNNN (C=commune, X=identifiant, N=numéro)

Géométries

  • Format : WKT (Well-Known Text)
  • Projection : EPSG:2154 (Lambert 93)
  • Types :
    • POINT : Adresses
    • MULTIPOLYGON : Bâtiments, parcelles
    • MULTILINESTRING : Relations spatiales

Colonnes JSON (listes)

Certaines colonnes contiennent des listes au format JSON :

l_annee_construction: [ "1850", "1900" ]
l_nom_copro: [ "25-27 rue du Vert Galant" ]
l_usage_1: [ "Résidentiel", "Annexe" ]

Pour les exploiter en SQL (PostgreSQL) :

SELECT
    batiment_groupe_id,
    jsonb_array_elements_text(l_annee_construction::jsonb) AS annee
FROM batiment_groupe_rnc;

Cas d'usage typiques

1. Enrichir une base d'adresses avec données bâtiment

Objectif : Ajouter DPE, surface, nombre de logements à vos adresses.

Tables nécessaires :

  • adresse.csv (BAN)
  • rel_batiment_groupe_adresse.csv
  • batiment_groupe.csv
  • batiment_groupe_dpe_representatif_logement.csv
  • batiment_groupe_rnc.csv (si copropriété)

Jointure :

mes_adresses.ban_id
  → rel_batiment_groupe_adresse.cle_interop_adr
  → batiment_groupe.batiment_groupe_id
  → données thématiques

2. Cartographie des passoires thermiques

Objectif : Identifier les bâtiments avec DPE F ou G.

Tables nécessaires :

  • batiment_groupe.csv
  • batiment_groupe_dpe_representatif_logement.csv
  • batiment_groupe_adresse.csv

Filtre :

WHERE dpe.classe_bilan_dpe IN ('F', 'G')

3. Analyse du marché immobilier

Objectif : Prix au m² par commune, période, type de bien.

Tables nécessaires :

  • batiment_groupe.csv
  • batiment_groupe_dvf_open_representatif.csv
  • batiment_groupe_dvf_open_statistique.csv

Agrégation :

SELECT
    bg.code_commune_insee,
    bg.libelle_commune_insee,
    EXTRACT(YEAR FROM dvf.date_mutation) AS annee,
    AVG(dvf.prix_m2_local) AS prix_moyen_m2,
    COUNT(*) AS nb_transactions
FROM batiment_groupe bg
JOIN batiment_groupe_dvf_open_representatif dvf
    ON bg.batiment_groupe_id = dvf.batiment_groupe_id
GROUP BY bg.code_commune_insee, bg.libelle_commune_insee, annee
ORDER BY annee DESC, prix_moyen_m2 DESC;

4. Audit copropriétés (loi ALUR)

Objectif : Lister les copropriétés avec nombre de lots, logements, statut.

Tables nécessaires :

  • batiment_groupe.csv
  • batiment_groupe_rnc.csv
  • batiment_groupe_adresse.csv
  • batiment_groupe_dpe_representatif_logement.csv (optionnel)

Champs clés :

  • numero_immat_principal : Immatriculation copropriété
  • nb_log : Nombre de logements
  • nb_lot_tot : Nombre total de lots
  • copro_dans_pvd : Plan de sauvegarde

5. Détection bâtiments énergivores

Objectif : Identifier les bâtiments avec forte consommation énergétique.

Tables nécessaires :

  • batiment_groupe.csv
  • batiment_groupe_dle_elec_multimillesime.csv
  • batiment_groupe_dle_gaz_multimillesime.csv
  • batiment_groupe_rnc.csv (pour nb_log)

Calcul :

SELECT
    bg.batiment_groupe_id,
    bga.libelle_adr_principale_ban,
    rnc.nb_log,
    (COALESCE(elec.conso_tot, 0) + COALESCE(gaz.conso_tot, 0)) AS conso_totale_kwh,
    (COALESCE(elec.conso_tot, 0) + COALESCE(gaz.conso_tot, 0)) / NULLIF(rnc.nb_log, 0) AS conso_par_logement
FROM batiment_groupe bg
LEFT JOIN batiment_groupe_adresse bga ON bg.batiment_groupe_id = bga.batiment_groupe_id
LEFT JOIN batiment_groupe_rnc rnc ON bg.batiment_groupe_id = rnc.batiment_groupe_id
LEFT JOIN batiment_groupe_dle_elec_multimillesime elec
    ON bg.batiment_groupe_id = elec.batiment_groupe_id AND elec.millesime = '2022'
LEFT JOIN batiment_groupe_dle_gaz_multimillesime gaz
    ON bg.batiment_groupe_id = gaz.batiment_groupe_id AND gaz.millesime = '2022'
WHERE rnc.nb_log > 0
ORDER BY conso_par_logement DESC;

Ressources et documentation officielle


Fichiers CSVT

Les fichiers .csvt définissent les types de colonnes pour les outils SIG (QGIS, ArcGIS) :

  • String : Texte
  • Real : Nombre décimal
  • Integer : Nombre entier
  • Date : Date

Exemple batiment_groupe.csvt :

String,String,String,Real,String,String,String,String,Integer

Fichiers PRJ

Les fichiers .prj définissent le système de projection (EPSG:2154 - Lambert 93).


Conclusion

La BDNB est une base de données extrêmement riche permettant de croiser :

  • Géolocalisation (adresses BAN, géométries)
  • Énergie (DPE, DLE, consommations)
  • Immobilier (transactions DVF, prix au m²)
  • Propriété (copropriétés RNC, propriétaires, logements sociaux)
  • Risques (argiles, radon, monuments historiques)
  • Équipements (fibre, équipements publics)

Tables prioritaires pour débuter :

  1. batiment_groupe.csv (table centrale)
  2. adresse.csv (référentiel BAN)
  3. rel_batiment_groupe_adresse.csv (lien bâtiments ↔ adresses)
  4. batiment_groupe_dpe_representatif_logement.csv (données énergétiques)
  5. batiment_groupe_rnc.csv (copropriétés et nombre de logements)

Clé de jointure universelle : batiment_groupe_id

Conseil : Commencez par importer ces 5 tables dans votre base de données, puis ajoutez progressivement les tables thématiques selon vos besoins.