User:Mga geo/Voie
Comparatif voies
Avec la libération de ces données par Rennes Métrole, j'ai essayé de faire un rapprochement avec les données d'OSM.
Il y a très peu de pages web sur le sujet
Les sources de données :
Les points critiques
Graphie
- Minuscule/majuscule
- rva: la première lettre n'est pas en majuscule
- rva: Rond-point au lieu de Rond-Point
- rva: pas de majuscule accentuée
voie sur plusieurs communes
- Rue des Landelles : Rennes / Cesson
Longueur
- osm: manque souvent le rond-point à la fin des impasses
- voie avec plusieurs chaussées
- Rue de Rennes à Cesson
- rva: plusieurs troncons
- Rue de Rennes à Cesson
- voie avec des troncons d'autres types
- voie de service
- piétonne
- Boulevard des Métairies
Forme
- rond-point en fin d'impasse
- turning_circle
Outils
Pour visualiser les données, j'ai utilisé OpenLayers et des couches en provenance de GéoBretagne (prises de vues aériennes), avec en plus :
- une couche des données de la voie en provenance d'OSM
- une couche des données de la voie en provenance de RVA
- l'User:Mga_geo/Overpass pour l'extraction des données
- User:Mga_geo/Postgis pour la partie base de données
Pour l'instant, cet outil ne fonctionne (mal) que sur Cesson-Sévigné : http://mga.alwaysdata.net/geoportail/exemples/gb_osm.html
À tester :
- Rue des Lauriers
- Rue de Rennes
- Rue des Pins
Importation des données voie de Rennes Métropole
Facile : oui et non !
Les données géographiques
- en format shapefile Lambert cc48
- importation du fichier shp des troncons
- requête sql de production d'un kml
SELECT ST_AsKml(ST_Transform(geom, 4326), 6), mode, voie_nom_c FROM rva_troncons where voie_insee = '35051' and voie_nom_c like '$voie'
Les données d'OSM
voie
- utilisation de l'overpass
- utilisation d'une bbox liée à la commune
- Rue de Rennes sur Cesson et Thorigné
- requête overpass de production d'un fichier osm
<union> <query type="way"> <bbox-query s="$s" n="$n" w="$w" e="$e"/> <has-kv k="highway"/> <has-kv k="name" v="$voie"/> </query> <query type="relation"> <bbox-query s="$s" n="$n" w="$w" e="$e"/> <has-kv k="type" v="route"/> <has-kv k="route" v="road"/> <has-kv k="name" v="$voie"/> </query> </union> <union> <item/> <recurse type="down"/> </union> <print order="quadtile"/> EOF;
Comparaisons
J'ai essayé de faire une comparaison des deux sources.
La première étape a été de constituer la géométrie de la voie.
Pour rva, assembler les tronçons en voie est simple grace à l'id_voie !
SELECT id_voie, mode, voie_insee, voie_nom_c, ST_LineMerge(ST_Union(geom)) as geom FROM rva_troncons GROUP BY voie_insee, voie_nom_c, id_voie, mode
Pour osm, il faut d'abord ne traiter que les données d'une commune :
local table1=lines local table2=commune local table="${table1}_${table2}" f_csv="${curDir}/${CFG}/${table}.csv" cat <<EOFSQL >> /tmp/sql SELECT now(), 'pg_lines_commune() ${table}'; -- que sur l'emprise d'une commune DROP TABLE IF EXISTS ${table}; CREATE TABLE ${table} AS ( SELECT ${table1}.* FROM ${table1}, ${table2} WHERE ST_INTERSECTS(${table1}.geom, ${table2}.geom) AND ${table1}.name != '' AND ${table1}.highway IN ('residential', 'secondary', 'tertiary', 'road' ) AND ${table2}.insee_com = '35051' ) ; -- pour avoir un fichier propre \pset tuples_only \pset format unaligned \pset recordsep '\n' \o ${f_csv} SELECT name FROM ${table} WHERE name != '' GROUP BY name ORDER BY name ; \o EOFSQL
Puis il est possible d'assembler les "lines" en voie comme pour rva en utilisant le "name".
Comparaison Hausdorff
Sur http://mga.alwaysdata.net/geoportail/exemples/rva_osm.html, on trouve dans la marge gauche la liste des voies (base rva) avec la distance Hausdorff.
Cette comparaison n'est effectuée que pour les voies "automobile" :
- rva: mode="Automobile"
- osm: 'residential', 'secondary', 'tertiary', 'road', 'unclassified'
La distance est présente pour les couples voie_nom_c(rva)=name(osm). Plus la valeur est grandre, plus les formes sont différentes !
Les cas d'absence sont :
- différence de graphie
- rue de Paris <=> route de Paris
- absence dans OSM
- mauvais typage du "highway" dans OSM
- => dans ce cas, la page web affiche la voie osm car toutes les highways sont prises en compte
- "rue des Vieux Ponts" => http://www.openstreetmap.org/#map=19/48.11590/-1.60403
- unclassified
- "Place des Résistants et des Déportés"
- unclassified
- typage surface dans OSM
- Rue de la Touche Ablin => Chemin : Rue de la Touche Ablin (24778716)
- area = yes
- Rue de la Touche Ablin => Chemin : Rue de la Touche Ablin (24778716)
Comparaison recouvrement
J'ai adapté la méthode utilisée pour les données de Brest Métropole (http://wiki.openstreetmap.org/wiki/BMO) :
- coordonnées Lambert CC48 plutôt que WGS84
- buffer de 10 mètres
- calcul du recouvrement des tronçons
La valeur indique le plus fort pourcentage de la longueur du tronçon inclue dans une voie bufferisée. Quelques tronçons non présents dans OSM:
- Mail de Bourgchevreuil