Traitement des bâtiments résidentiels de la BD-Topo au niveau départemental

R
géomatique
logement

Méthode integrant le téléchargement par département métropolitain du dernier millésime de la BD-Topo® ainsi que l’extraction et le traitement des données relatives aux bâtiments résidentiels avec la librairie R floodam.data.

Auteur·rice
Date de publication

28 novembre 2025

Objectif

Téléchargement par département métropolitain de la dernière millésime de la BD-Topo® et extraction et traitement des données des bâtiments résidentiels avec la librairie R floodam.data.

Logiciels et bibliothèques requis

Installation des logiciels et bibliothèques requis

Le code est destiné à être exécuté avec R. Il est donc nécessaire que R soit installé sur votre système.

Ce tutoriel utilise les bibliothèques R suivantes :

  • floodam.data qui permet de réaliser des opérations adaptées aux données de l’observatoire.
  • so.ii qui permet notamment de réaliser des cartes centrées sur le territoire de l’observatoire.

Il est également supposé que vous disposez d’un dossier « data » dans « l’accueil » de votre ordinateur.

Déroulement de la méthode

Avertissement

Cette méthode n’est pas complètement reproductible en l’état pour des personnes extérieures à l’équipe so-ii, en raison des contraintes d’accès aux données de tiers.

Chargement des librairies, du millésime et définition des chemins

Premièrement il faut charger les bibliothèques supplémentaires nécessaires, récupérer la date de la dernière version de la base de données depuis le site de l’IGN (dernière version de la BD-Topo® par défaut) et définir les chemins d’accès à vos fichiers et dossiers.

# load libraries
library(floodam.data)
library(so.ii)

# define vintage (millesime)
vintage = get_archive("https://geoservices.ign.fr/bdtopo")
vintage = vintage[grepl("GPKG_LAMB93_D", vintage)]
vintage = vintage[1]
vintage = analyse_archive(vintage)[["vintage"]]

# set up paths
# origin = tempdir()
path_common = file.path("~", "data", "data-local", "floodam-data") # nolint
origin = file.path(path_common, "original", "bd-topo", vintage)
destination = file.path(path_common, "adapted", "bd-topo")
path_eaip = file.path(path_common,"adapted","eaip")
path_department = file.path(path_common, "adapted", "admin-express")

Téléchargement des données de la BD-Topo des départements métropolitains

Une fois la configuration terminée, nous devons télécharger BD-Topo®. La fonction que nous utilisons télécharge, par défaut, la dernière version de la base de données pour chaque département depuis le site de l’IGN.

# download data from department

download_info = floodam.data::download_bd_topo(
    origin, 
    department = c(1:95, "2A", "2B"),
    type = "GPKG"
)

Traitement et sauvegarde des données de la BD-Topo par département métropolitain

A partir des bases de données téléchargées, nous extrayons, pour chaque base, la couche « bâtiment ». Nous la formatons et y ajoutons des informations pertinentes : , typologie des bâtiments, etc. (voir détail des fonctions sur le site de la bibliothèque R floodam.data)

# process data from department
floodam.data::extract_building(
    origin, 
    destination = file.path(destination, vintage, "building"),
    map = TRUE,
    path_eaip = path_eaip
)

dataset = floodam.data::extract_dwelling(
    origin = file.path(destination, vintage, "building"),
    destination = file.path(destination, vintage, "dwelling"),
    department = path_department,
    map = TRUE,
)

# analyse dwelling for department
analyse_dwelling(
    file.path(destination, vintage, "building"),
    retrieve = FALSE
)

# summarise dwelling for each department
summarise_dwelling(file.path(destination, vintage, "dwelling"))
summarise_dwelling(file.path(destination, vintage, "dwelling"), flood = "eaip")

Analyse et génération de rapports sur les traitements de la BD Topo par département métropolitain

Une fois chaque base de données téléchargée puis traitée, des rapport détaillées sur la typologie des logements par département peuvent être obtenus : création d’un rapport pdf par département.

# generate report for each department
generate_report(
    origin = file.path(destination, vintage, "dwelling", "analysed"),
    quiet = TRUE,
    purge = TRUE,
    complet = TRUE
)
Retour au sommet