Carte d'avancement OpenStreetMap en Bretagne

From OpenStreetMap Wiki
Jump to: navigation, search

WORK IN PROGRESS

La démarche

ratio pour les routes au 6 mai 2011

Le visualiseur cartographique de GéoBretagne utilise les données OpenStreetMap pour fournir le fond de carte présenté par défaut. Réactualisée toutes les semaines, la base OpenStreetMap locale alimente les tuileurs dans différentes projections. Le service WMS-C résultant est disponible sur http://osm.geobretagne.fr/.

Une fois passé le constat que la carte OpenStreetMap est "agréable" à toutes les échelles, la question récurrente reste : "quelle fiabilité ?". Il est difficile d'y répondre car les situations rencontrées sont très différentes selon le territoire. La présence d'un contributeur zélé, une collectivité décidant de libérer ses données, la disponibilité du cadastre numérisé, l'intérêt porté à la zone littorale, sont autant de facteurs influençant la précision et l'exhaustivité des données. Le besoin d'une méthodologie d'évaluation s'est donc imposé.

La première idée a été de mesurer le linéaire de routes par commune, pour ensuite le comparer au référentiel grande échelle français, la BD Topo de l'IGN. Le calcul s'est avéré très consommateur et le résultat manquant de détails.

Prenant exemple sur osmqa, la deuxième version s'est appuyée sur une grille d'un pas d'environ 1 km. Le linéaire d'OpenStreetMap (une mesure pour les routes carossables, une autre pour highway=*) et celui de la BD Topo IGN ont été mesurés sur chaque dalle. L'exemple s'est montré nettement plus probant, confirmant certains facteurs supposés. On visualise nettement l'effet de la libération des données par des communautés de communes. On identifie aussi les zones dans lesquelles un travail important reste à faire... A cet effet, les attributs de chaque dalle comprennent un lien JOSM permettant d'y charger l'emprise avec un tampon de 500m.

La méthode "grille" offre l'avantage de permettre le calcul de nombreux indicateurs sur des emprises cohérentes. On peut imaginer des superpositions comme osmqa+indicateurs.

La technique

La base OpenStreetMap est chargée avec osm2pgsql puis indexée. A chaque chargement, toutes les emprises de dalles sont ajoutées à la table referentiel_stats accompagnées de la date de mise à jour, de façon à conserver un historique des métriques. Celles-ci sont calculées de la sorte :

   -- calcul linéaire toute voirie pour osm
   UPDATE ONLY referentiel_stats
   SET osm_highway_l = (
       SELECT DISTINCT
           sum(length(st_intersection(referentiel_stats.the_geom,planet_osm_line.way)))
       FROM
           planet_osm_line
       WHERE
           referentiel_stats.the_geom && planet_osm_line.way
           AND
           planet_osm_line.highway != 
       )
   WHERE
       last_update = true;
   -- calcul linéaire routes seulement pour osm
   UPDATE ONLY referentiel_stats
   SET osm_road_l = (
       SELECT DISTINCT
           sum(length(st_intersection(referentiel_stats.the_geom,planet_osm_line.way)))
       FROM
           planet_osm_line
       WHERE
           referentiel_stats.the_geom && planet_osm_line.way
           AND (
               planet_osm_line.highway = 'motorway'
               OR
               planet_osm_line.highway = 'trunk'
               OR
               planet_osm_line.highway = 'primary'
               OR
               planet_osm_line.highway = 'secondary'
               OR
               planet_osm_line.highway = 'tertiary'
               OR
               planet_osm_line.highway = 'unclassified'
               OR
               planet_osm_line.highway = 'residential'
               OR
               planet_osm_line.highway = 'service'
               OR
               planet_osm_line.highway = 'road'
               OR
               planet_osm_line.highway = 'primary_link'
               OR
               planet_osm_line.highway = 'secondary_link'
               OR
               planet_osm_line.highway = 'tertiary_link'
           )
       )
   WHERE
       last_update = true;

Un procédé similaire a été appliqué à la BD Topo pour en extraire les mètres linéaires de routes et de "toute voirie". Signalons que la différence de modèle entre OpenStreetMap et l'IGN induit nécessairement un biais.

Une vue calcule les indicateurs :

   -- creation de la vue qui pourra remplacer les colonnes calculees de la table stats
   CREATE VIEW referentiel_stats_view AS
       SELECT
           referentiel_stats.gid,
           referentiel_stats.the_geom,
           referentiel_stats.date,
           referentiel_stats.osm_road_l / NULLIF(referentiel_stats.ign_road_l, 0::double precision) AS ratio_road,
           referentiel_stats.osm_highway_l / NULLIF(referentiel_stats.ign_highway_l, 0::double precision) AS ratio_highway,
           referentiel_stats.ratio_build,
           ((((((('http://127.0.0.1:8111/load_and_zoom?'::text || 'left='::text) 
           || xmin(transform(buffer(referentiel_stats.the_geom, 500::double precision), 4326)::box3d)) 
           || '&right='::text) || xmax(transform(buffer(referentiel_stats.the_geom, 500::double precision), 4326)::box3d)) 
           || '&bottom='::text) || ymin(transform(buffer(referentiel_stats.the_geom, 500::double precision), 4326)::box3d)) 
           || '&top='::text) || ymax(transform(buffer(referentiel_stats.the_geom, 500::double precision), 4326)::box3d) AS josm
       FROM
           referentiel_stats
       WHERE
           referentiel_stats.last_update = true;

On peut voir qu'il est aisé d'ajouter d'autres indicateurs, mais il faut pour cela disposer des données référentielles permettant la comparaison ! Une prochaine évolution sera la comparaison de la surface bâtie présente dans OpenStreetMap avec celle fournie par la DGFIP.

Les résultats

Quelques exemples de phénomènes intéressants.

Concarneau Cornouaille, Finistère

Le rendu sur le secteur de la Communauté de Commune Concarneau Cornouaille montre clairement un niveau d'avancement élevé suite à la libération des données.

pays de Brest, Finistère

Même remarque pour le pays de Brest qui, avec le projet cartes ouvertes, se détache nettement sur fond "<50%".

Plumelec, Morbihan

Mappeur à Plumelec ? Mais moins à Elven.

Caveat

Ceci est une analyse quantitative et non qualitative. La justesse des informations géométriques, topologiques et attributaires n'est pas étudiée. Les licences associées aux référentiels nationaux ne permettent pas une analyse qualitative utilisable dans le contexte d'OpenStreetMap.

La taille de la grille est adaptée à une lecture à petite échelle. Néanmoins, une dalle à faible pourcentage (en violet) est souvent indice d'une carence, et un carreau d'environ 1.5 km est zone d'édition pertinente dans JOSM pour les petites routes.

L'observation dans le temps des indicateurs est au moins aussi intéressante que la photographie à un instant t.

Réduire la durée d'actualisation de la base OpenStreetMap (12h en chargeant deux fois les données pour des questions de continuité de service) permettrait d'obtenir des indicateurs à +1 jour ou moins.

Licence et crédits

  • réalisation pour le compte du partenariat GéoBretagne, consultation en ligne du rendu et reproduction libres.
  • données : OpenStreetMap CC-by-SA, BD Topo(R) (C) IGN 2010
  • réalisé avec les outils : pgadmin, postGIS, osm2pgsql, geOrchestra
  • merci à User:Vdb pour l'appui technique et User:Rodolphe, User:LaVinse, User:FVig pour les idées et critiques.