Import/GwadaBot

From OpenStreetMap Wiki
Jump to navigation Jump to search

Import/GwadaBot — BD TOPO® IGN Guadeloupe

Attribut Valeur
Statut En préparation — en attente de validation communautaire
Territoire Guadeloupe (département 971, France — 16.2°N, 61.5°W)
Source IGN BD TOPO® v3.5 — millésime décembre 2025
Licence source Licence Ouverte Etalab 2.0 (compatible ODbL ✅)
Compte bot GwadaBot
Opérateur Maxence
Code source https://github.com/MaxLananas/gwadabot
Contact imports@openstreetmap.org / talk-fr@openstreetmap.org
Discussion forum forum.openstreetmap.fr

Pourquoi cet import ?

La Guadeloupe (1 628 km², ~400 000 habitants) est l'un des territoires français les moins bien couverts sur OpenStreetMap. Une analyse Overpass (mars 2026) révèle :

Donnée OSM actuel BD TOPO IGN Couverture estimée
Bâtiments < 50 000 379 503 ~13%
Routes 57 742 ways 72 695 tronçons ~79%
Cours d'eau partiel 16 796 tronçons < 30%
Végétation quasi-absent 66 970 zones < 5%
Terrains de sport ~50 747 ~7%

Aperçu visuel

Exemple de fichier .osc généré par GwadaBot, ouvert dans JOSM :

Voir l'aperçu JOSM en taille réelle

Source de données

IGN BD TOPO® v3.5 — Guadeloupe (D971)

  • URL : https://data.geopf.fr/telechargement/
  • Format : GeoPackage (.gpkg), 54 couches
  • Projection native : RGAF09 UTM Zone 20N (EPSG:5490) — reprojeté en WGS84 (EPSG:4326)
  • Millésime principal : 2025-12-15
  • Millésimes disponibles : 2021-03, 2023-12, 2024-03, 2025-03, 2025-06, 2025-09, 2025-12

La Licence Ouverte Etalab 2.0 est confirmée compatible ODbL.

Données importées

13 couches — ~538 000 objets

Note : les limites de communes (ADMINISTRATIF) sont exclues du scope d'import — elles sont déjà bien mappées en Guadeloupe et constituent un sujet sensible (relations complexes). La couche est conservée uniquement pour le découpage des changesets par commune.

Thème Couche BD TOPO Objets Géométrie Tags OSM principaux
Bâtiments batiment 379 503 MultiPolygon building, height, building:levels, building:flats
Routes troncon_de_route 72 695 LineString highway, oneway, lanes, width, surface
Végétation zone_de_vegetation 66 970 MultiPolygon natural=wood, landuse, wetland=mangrove, crop=sugarcane
Hydrographie troncon_hydrographique 16 796 LineString waterway, name, intermittent
Terrains de sport terrain_de_sport 747 MultiPolygon leisure=pitch, sport
Pylônes pylone 662 Point power=tower, height
Réservoirs reservoir 418 MultiPolygon man_made=reservoir
Équipements transport equipement_de_transport 384 MultiPolygon amenity, aeroway
Plans d'eau plan_d_eau 71 MultiPolygon natural=water, water
Constructions surf. construction_surfacique 56 MultiPolygon divers
Cimetières cimetiere 50 MultiPolygon landuse=cemetery
Lignes électriques ligne_electrique 28 LineString power=line, voltage
Aérodromes aerodrome 9 MultiPolygon aeroway=aerodrome, icao, iata

Mapping détaillé

Bâtiments

Champ IGN Tag OSM Notes
USAGE1 = Résidentiel building=residential
USAGE1 = Commercial et services building=commercial + fixme=Verifier si retail ou commercial
USAGE1 = Industriel building=industrial
USAGE1 = Agricole building=farm
USAGE1 = Sportif building=sports
USAGE1 = Religieux building=yes + amenity=place_of_worship + fixme=Verifier religion et denomination
USAGE1 = Annexe building=yes
USAGE1 = Indifférencié building=yes
USAGE2 (si différent) building:use Usage secondaire
HAUTEUR height Arrondi 0.1m
NB_ETAGES building:levels RDC inclus (convention IGN = convention OSM)
NB_LOGEMENTS building:flats
LEGER = Oui building=shed
ETAT contient "ruine" ruins=yes
ETAT contient "construction" building=construction

Routes

NATURE IGN Tag OSM Notes
Autoroute highway=motorway
Quasi-autoroute highway=trunk
Bretelle highway=trunk_link Pas d'autoroute en Guadeloupe
Route à 2 chaussées highway=primary trunk si IMPORTANCE=1 ou 2
Route à 1 chaussée highway=secondary
Route empierrée highway=unclassified + surface=unpaved
Chemin highway=track
Sentier highway=path
Piste cyclable highway=cycleway
Escalier highway=steps
Rond-point junction=roundabout

Attributs supplémentaires :

  • SENSoneway (yes / no / -1)
  • LARGEUR_DE_CHAUSSEEwidth
  • NB_VOIESlanes
  • POS_SOL < 0 → tunnel=yes + layer
  • POS_SOL > 0 → bridge=yes + layer
  • REVETEMENTsurface (asphalt, concrete, gravel, ground...)

Note : VITESSE_MOYENNE_VL n'est pas importé comme maxspeed. C'est la vitesse moyenne observée, pas la limite réglementaire.

Hydrographie

Données linéaires (axe du cours d'eau) :

NATURE IGN Tag OSM
Cours d'eau waterway=river
Canal waterway=canal
Fossé waterway=ditch
Ravine waterway=stream + note=ravine
Ruisseau waterway=stream

Végétation

Le convertisseur résout le champ NATURE avec fallback sur TFV (type de formation végétale, BD TOPO v3.5). Conforme aux conventions landuse=orchard et Key:crop :

NATURE / TFV IGN Tags OSM Notes
Forêt fermée de feuillus natural=wood + leaf_type=broadleaved
Forêt fermée de conifères natural=wood + leaf_type=needleleaved
Mangrove natural=wetland + wetland=mangrove
Bananeraie landuse=orchard + trees=banana_plants Conforme orchard
Canne à sucre landuse=farmland + crop=sugarcane Conforme Key:crop
Verger landuse=orchard
Vigne landuse=vineyard
Broussailles natural=scrub
Lande ligneuse natural=heath

Conflation

Logique de décision

Distance (Haversine) Action Détails
< 10 m Skip ou mise à jour des tags On garde la position OSM, on ne déplace pas
10–50 m Mise à jour géométrie + tags On met à jour vers la position IGN (précision métrique ortho-rectifiée, supérieure aux anciens tracés Bing/Mapbox)
> 50 m Création Objet absent d'OSM

Priorité des tags

Priorité IGN (on écrase) Priorité OSM (on préserve)
highway, waterway, building, surface name, name:fr, name:gcf, alt_name
height, building:levels wikipedia, wikidata
bridge, tunnel, layer website, phone
width, lanes, oneway, ref opening_hours, description, wheelchair

Implémentation technique

  • Recherche spatiale via R-tree (STRtree, Shapely 2.0) — O(log n)
  • Overpass parallélisé : 16 sous-zones (grille 4×4), 4 threads, retry ×3 avec backoff exponentiel
  • Distance calculée par formule de Haversine (rayon terrestre 6 371 km)

Technique

Pipeline

GeoPackage (.gpkg, EPSG:5490)
  → gpd.read_file()              Lecture via pyogrio (backend GDAL)
  → .to_crs(epsg=4326)           Reprojection → WGS84
  → shapely.force_2d()           Strip Z-coords vectorisé
  → shapely.make_valid()         Validation géométrique vectorisée
  → compute_stats_fast()         Stats par échantillonnage numpy (n=1000)
  → ConflationEngine             Matching spatial R-tree [optionnel]
  → geom_to_features()           Décomposition Multi* → features unitaires
  → generate_osc()               Sérialisation XML OsmChange
  → logs/<theme>_<millesime>/    Fichiers .osc inspectables dans JOSM

Limites respectées

Paramètre Valeur Justification
Objets par changeset 500 5% de la limite OSM, facilite le revert partiel
Délai entre changesets 2 secondes Courtoisie serveur
Objets par jour 50 000 Auto-limitation

Tags de changeset

comment    = "GwadaBot -- Import Guadeloupe depuis BD TOPO IGN"
source     = "IGN BD TOPO 2025-12-15 -- Licence Ouverte Etalab 2.0"
bot        = "yes"
import     = "yes"
created_by = "GwadaBot/2.1"
url        = "https://wiki.openstreetmap.org/wiki/Import/GwadaBot"

Évolution des données IGN

Millésime Bâtiments Delta bâti Routes Delta routes
2021-03-15 382 692 69 670
2023-12-15 380 637 -2 055 71 552 +1 882
2024-03-15 380 605 -32 71 643 +91
2025-03-15 380 064 -541 72 442 +799
2025-06-15 379 737 -327 72 736 +294
2025-09-15 379 674 -63 72 743 +7
2025-12-15 379 503 -171 72 695 -48
Total -3 189 +3 025

Retours communautaires intégrés

Suite aux discussions sur le forum OSM France et talk-fr@ (mars 2026) :

Modification Avant Après Source
VITESSE_MOYENNE_VL Importé comme maxspeed Supprimé — vitesse observée ≠ limite réglementaire bibi
Religieux building=church building=yes + amenity=place_of_worship + fixme bibi + benoitdd
Commercial building=commercial + fixme=Verifier si retail ou commercial bibi
Bretelle highway=motorway_link highway=trunk_link bibi
Route à 2 chaussées highway=trunk highway=primary (trunk si IMPORTANCE=1-2) bibi
Bananeraie crop=banana trees=banana_plants (conforme wiki orchard) bibi
Communes Incluses dans --all Exclues — déjà bien mappées, sujet sensible benoitdd
Changesets Séquentiels Localisation par commune (en cours) benoitdd

Calendrier

Phase Action Statut
Communication Page wiki + emails imports@ et talk-fr@ + forum.openstreetmap.fr Fait
Review Période de commentaires communautaires En cours
Intégration Prise en compte des retours (bibi, benoitdd) Fait
Tests Dry-run, partage des .osc, screenshots JOSM En cours
Production Import thème par thème En attente d'accord

Comment donner son avis

Références