Génération terrasse

Gitlab

Lien vers le repo : Gitlab

Objectifs de l’algorithme

Outils de ciblage dans la base principale du SNDS

Cet algorithme a pour objectif de repositionner des points géographiques situés à l’intérieur de polygones (représentant typiquement des bâtiments) en les projetant à l’extérieur de ces polygones. Le déplacement est effectué par symétrie axiale par rapport à la bordure la plus proche du polygone contenant le point. En d’autres termes, chaque point à l’intérieur d’un bâtiment est déplacé à une position extérieure qui lui est symétrique vis-à-vis de la frontière la plus proche de ce bâtiment.
 

Fonctionnement de l’algorithme

  1. Lecture des données : Le script charge deux couches SIG :
    • Une couche de points (par exemple, des localisations sensibles comme des habitations, des récepteurs acoustiques ou des capteurs),
    • Une couche de polygones représentant les bâtiments.
  2. Détection des points à déplacer : Pour chaque point, le script vérifie s’il se trouve à l’intérieur d’un des polygones.
  3. Déplacement par symétrie : Si le point est à l’intérieur d’un polygone, il est déplacé à une position extérieure, calculée par symétrie axiale à partir de la bordure du bâtiment la plus proche.
  4. Export : Les points déplacés sont enregistrés dans un nouveau fichier Shapefile.
     

Contexte d’utilisation

Cet algorithme est conçu pour des cas où la présence de points à l’intérieur de bâtiments est problématique pour les traitements ou les visualisations. 
 

Données et populations cibles

  • Données d’entrée :
    • Une couche de points au format Shapefile.
    • Une couche de polygones représentant les emprises bâties.

(EPSG recommandé : un système projeté en mètres).
 

Contraintes et limites

  • L’algorithme suppose que les polygones sont fermés et valides. Les géométries invalides doivent être filtrées.
  • Le déplacement est purement géométrique : aucune vérification topologique n’est faite (par exemple, il n’est pas vérifié si le nouveau point se trouve dans une rue, un parc ou un autre bâtiment).
  • En cas de polygones imbriqués ou de bâtiments très denses, le point symétrique peut se retrouver dans un autre bâtiment ou un endroit non souhaité. Ce cas nécessite un post-traitement ou une adaptation du script.
  • L’algorithme ne tient pas compte des obstacles ni des contraintes du terrain réel.
     

Région géographique d'application

Ce script a été développé dans le cadre d’un projet portant sur des données géographiques françaises, mais il est applicable à toute région à condition que :

  • Les couches géographiques soient correctement géoréférencées,
  • Les unités soient cohérentes (système métrique)

On continue ensuite le traitement sous SIG afin de générer les terrasses pour modéliser leurs émissions sonores.

Auteur(s)

Organisme de recherche
Decourt Victor

Domaine médical

Autre

Méthodologie

Sommeil

Langage de programmation

Python

Données utilisées

Données d'application

Autre

Validation

Non validé

Date de dernière mise à jour

28/05/2025

Maintenance

Pas de maintenance

Comment installer l’algorithme ?

Pas d’installation requise

Comment utiliser l’algorithme ?

L’algorithme s’utilise via un script Python reposant sur les bibliothèques GeoPandas et Shapely. Il permet de déplacer automatiquement les points situés à l’intérieur de polygones (ex. bâtiments) vers l’extérieur, en suivant une logique de symétrie géométrique.

1. Prérequis

  • Avoir installé un environnement Python avec les bibliothèques suivantes :

pip install geopandas shapely

  • Disposer des fichiers d’entrée :
    • Une couche de points au format Shapefile (.shp)
    • Une couche de polygones au format Shapefile — représentant les emprises de bâtiments.
       

2. Paramétrer les chemins de fichiers

Dans le bloc if __name__ == "__main__":, renseigner les chemins vers vos fichiers :

points_shapefile = r"chemin\vers\vos\Points.shp"

polygons_shapefile = r"chemin\vers\vos\Bâtiments.shp"

output_shapefile = r"chemin\vers\le\résultat\modified_points.shp"

Remarque : les chemins doivent être valides, avec des doubles antislashs \\ ou des r"..." pour les chaînes brutes.
 

3. Lancer le script

Exécuter le script.
 

4. Résultat

  • Un nouveau fichier Shapefile de points sera généré à l’emplacement défini (output_shapefile).
  • Les points initialement situés dans des polygones auront été déplacés à l’extérieur, suivant une projection symétrique.
     

5. Vérifications complémentaires recommandées

  • Ouvrir le résultat dans un SIG (QGIS, ArcGIS) pour visualiser les nouveaux points.
  • Vérifier si des points déplacés sont toujours dans des zones non désirées (autres bâtiments, zones fermées).

Licence et conditions d’utilisation

Apache 2.0

Autre

Le script ne sert qu’à replacer des points de la base de données utilisée pour avoir les emplacements des terrasses. Beaucoup d’entre eux sont dans des bâtiments.

Une fois le script exécuté et les points replacés, la génération des terrasses se fait en SIG.

Voici l’ensemble des étapes effectuées afin de générer les terrasses.

Utiliser la base SIRENE afin d’identifier les établissements festifs susceptibles d’avoir une terrasse.

Nettoyage de la base : 

- Regrouper dans un seul champ « CODE NAF » les codes Naf utilisés pour identifier les établissements festifs qui se trouvaient dans de nombreuses colonnes différentes

- Conserver les établissements de restauration et de débits de boisson dont les codes NAF sont respectivement 56.10A er 56.30Z

- Convertir les coordonnées indiquées dans les colonnes X Y dans le bon système de projection (certaines étaient en Lambert, d’autres en WGS84)

- Supprimer les doublons de géométrie et attributaires dont le code Siret est identique. 

Utiliser le script afin de replacer les points restants.

En SIG : 

- Création de zones tampon circulaires de 5m de rayon

- Découpage des tampons par la couche bâtiment à laquelle on a ajouté un tampon de 20cm. Découper les tampons par la couche bâtiments directement cause des erreurs dans le logiciel de modélisation acoustique CadnaA qui gère mal les frontières terrasses/bâtiment

- Regrouper les tampons du même type (restaurant ou débit de boisson)

- Calculer les intersections entre les deux types de terrasses et les retirer à la couche restaurants pour ne pas avoir de terrasses superposées.

- Simplifier les géométries

La couche terrasses est générée et prête à être utilisée.

À noter que l’on fait donc ici deux approximations majeures : 

- On associe une terrasse à tous les établissements considérés, indépendamment du fait qu’ils en aient effectivement une dans la réalité ou non ;

- Toutes les terrasses sont modélisées par une même forme géométrique.