SlideShare una empresa de Scribd logo
1 de 18
Osmose-QA
Qualité et intégration de données
SotM-FR Bordeaux 2018-06-03
Frédéric Rodrigo – fred.rodrigo@gmail.com - CC-By-SA 3.0
@fre2d@twitter.com - @fre2d@unixcorn.xyz
Osmose-QA ?
OSM
Contributeur
Osmose Backend
Osmose Frontend
OpenData
Nouvelles analyses
● Voies proches avec noms similaires 5080
– Rue Paul Lavavé
– Rue Paul Lacavé
● Accès à la voie ne correspondant pas à la relation
route=bicycle/foot/hiking 3240
– Relation : route=bicycle
– Way : highway=footway
● Validation numéros de téléphone (par Francois Gouget) 3092
– “0” en trop après le préfixe international “+” et le code pays
– Préfixe international “+” et code pays manquants
– Un numéro court national ne peut pas être internationalisé
● Doublon de référence à Wikipédia 4130
Analyses Transport Public
● Par Noémie Lehuby & Pascal Rhod
– 5 Contrôles de géométries 1260
– 16 Contrôles des tags 2140 9014
OpenData
● power=generator (RTE)
power=substation (RTE)
power=substation substation=minor_distribution
(Enedis)
power=tower (RTE)
● maxheight=* (Route500, Dep. Hauts-de-Seine)
● amenity=toilets par Adrien Pavie (Angers,
Bordeaux, Le Havre, Lyon, Montpellier, Nantes,
Rennes, Toulouse)
Expérimentations / Mapillary
● Panneaux de signalisations de Mapillary 8300
– Obtenu que de petits extracts
– Usage discutable
Expérimentations / SIRENE
● Mapping code APE → tags
● Test sur le Vaucluse 8310
– Filtrer les types de métiers
– Des noms de personnes
– Des noms qui ne correspondent pas au nom du
commerce
→ Test peu conclusif, à poursuivre
Moteur d’analyses
● Timestamp : depuis les données et non à la
date d’exécution
● Factorisation de tables thématiques, building,
highway...
● Début de support de Python3
● Support des fichiers GTFS et GeoJson (par
Adrien Pavie)
MapCSS
● CSS-like pour styler les cartes (JOSM,
Maps.me, Overpass turbo…)
way[highway=tertiary] { # Sélecteur
width: 2; # Style
color: orange;
}
Validation avec MapCSS
way[highway=road] {
throwWarning: tr("Unspecific highway type");
assertMatch: "way highway=road";
assertNoMatch: "way highway=residential";
}
*[direction][direction<0],
*[direction][direction>=360] {
throwWarning: tr("unusual value of {0}", "{1.key}");
assertMatch: "node direction=-10";
assertNoMatch: "node direction=0";
}
node[tag("amenity") = parent_tag("amenity")] *[amenity][amenity != parking] {∈
throwWarning: tr("{0} inside {1}", concat("amenity=", tag("amenity")), concat("amenity=",
tag("amenity")));
}
MapCSS & Osmose
● MapCSS
● Grammaire ANTLR4
● Arbre syntaxique
● Transformateur d’arbre
● Générateur de code Python
Plugin Osmose généré
way[highway=road] {
throwWarning: tr("Unspecific highway type");
assertMatch: "way highway=road";
assertNoMatch: "way highway=residential";
}
if u'highway' in keys:
try: match = match or ((mapcss._tag_capture(capture_tags, 0, tags,
u'highway') == mapcss._value_capture(capture_tags, 0, u'road')))
except mapcss.RuleAbort: pass
if match:
err.append({'class': 9004004, 'subclass': 1856552890, 'text':
mapcss.tr(u'Unspecific highway type', capture_tags)})
JOSM→ OSMOSE → JOSM
● 130 nouvelles validations dans Osmose
● Filtrer les règles adaptées à Osmose
● Dédoublonner les règles entre JOSM/Osmose
● Convertir les règles Osmose en MapCSS
● Proposer dans JOSM des règles Osmose
Frontend
● Ajout de l’export en CSV
● Amélioration des performances (après ajout
MapCSS)
● Nouveau serveur
● Popup responsive
● Boostrap pour css
● Utilisation de npm & webpack
Docker
● Backend & Frontend
● Docker-compose
● Tester plus facilement une analyse
→Faciliter la contribution
Du neuf en 1 an
● +8 Contributeurs
– PanierAvide
– Noémie Lehuby
– Stephan
– Gautier Pelloux-Prayer
– Daniele Venzano
– Pascal Rhod
– Francois Gouget
– Niels Elgaard Larsen
● +500 000
Signalements
(mapcss)
● 24 Langues
82 traducteurs
● Osmose
● MapCSS

Más contenido relacionado

Similar a Osmose-QA, Qualité et intégration de données

Bato Base Arrêt Transport Ouverte
Bato Base Arrêt Transport OuverteBato Base Arrêt Transport Ouverte
Bato Base Arrêt Transport OuverteFabMob
 
Addok, BAN et BANO dans un bateau
Addok, BAN et BANO dans un bateauAddok, BAN et BANO dans un bateau
Addok, BAN et BANO dans un bateauFrédéric Rodrigo
 
OpenStreetMap - Allons cartographier le monde - Fontenay le Comte
OpenStreetMap - Allons cartographier le monde - Fontenay le ComteOpenStreetMap - Allons cartographier le monde - Fontenay le Comte
OpenStreetMap - Allons cartographier le monde - Fontenay le ComteFrédéric Rodrigo
 
OpenStreetMap - Allons cartographier le monde - Bordeaux BarCamp'10
OpenStreetMap - Allons cartographier le monde - Bordeaux BarCamp'10OpenStreetMap - Allons cartographier le monde - Bordeaux BarCamp'10
OpenStreetMap - Allons cartographier le monde - Bordeaux BarCamp'10Frédéric Rodrigo
 
OpenStreetMap, une introduction
OpenStreetMap, une introductionOpenStreetMap, une introduction
OpenStreetMap, une introductionFrédéric Rodrigo
 
Monitoring d'un compteur EDF avec node.js @bdx.io
Monitoring d'un compteur EDF avec node.js @bdx.ioMonitoring d'un compteur EDF avec node.js @bdx.io
Monitoring d'un compteur EDF avec node.js @bdx.iolaurenthuet
 
4/5 Osm 20141118-l2.2-collecte et contribution
4/5 Osm 20141118-l2.2-collecte et contribution4/5 Osm 20141118-l2.2-collecte et contribution
4/5 Osm 20141118-l2.2-collecte et contributionFrédéric Rodrigo
 
Demo1: OpenStreetMap : le monde rue après rue
Demo1: OpenStreetMap : le monde rue après rueDemo1: OpenStreetMap : le monde rue après rue
Demo1: OpenStreetMap : le monde rue après rueteleparc
 
PostGIS @ Pgday.eu 2009
PostGIS @ Pgday.eu 2009PostGIS @ Pgday.eu 2009
PostGIS @ Pgday.eu 2009Oslandia
 
L’exploitation d’OSM par l’AURH et ses avantages pour le projet européen « We...
L’exploitation d’OSM par l’AURH et ses avantages pour le projet européen « We...L’exploitation d’OSM par l’AURH et ses avantages pour le projet européen « We...
L’exploitation d’OSM par l’AURH et ses avantages pour le projet européen « We...Jean-François MARY
 
Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++cppfrug
 

Similar a Osmose-QA, Qualité et intégration de données (15)

Bato Base Arrêt Transport Ouverte
Bato Base Arrêt Transport OuverteBato Base Arrêt Transport Ouverte
Bato Base Arrêt Transport Ouverte
 
Addok, BAN et BANO dans un bateau
Addok, BAN et BANO dans un bateauAddok, BAN et BANO dans un bateau
Addok, BAN et BANO dans un bateau
 
Osmose-QA
Osmose-QAOsmose-QA
Osmose-QA
 
OpenStreetMap - Allons cartographier le monde - Fontenay le Comte
OpenStreetMap - Allons cartographier le monde - Fontenay le ComteOpenStreetMap - Allons cartographier le monde - Fontenay le Comte
OpenStreetMap - Allons cartographier le monde - Fontenay le Comte
 
OpenStreetMap - Allons cartographier le monde - Bordeaux BarCamp'10
OpenStreetMap - Allons cartographier le monde - Bordeaux BarCamp'10OpenStreetMap - Allons cartographier le monde - Bordeaux BarCamp'10
OpenStreetMap - Allons cartographier le monde - Bordeaux BarCamp'10
 
OpenStreetMap, une introduction
OpenStreetMap, une introductionOpenStreetMap, une introduction
OpenStreetMap, une introduction
 
Monitoring d'un compteur EDF avec node.js @bdx.io
Monitoring d'un compteur EDF avec node.js @bdx.ioMonitoring d'un compteur EDF avec node.js @bdx.io
Monitoring d'un compteur EDF avec node.js @bdx.io
 
Bien démarrer avec l'API de GeoServer
Bien démarrer avec l'API de GeoServerBien démarrer avec l'API de GeoServer
Bien démarrer avec l'API de GeoServer
 
4/5 Osm 20141118-l2.2-collecte et contribution
4/5 Osm 20141118-l2.2-collecte et contribution4/5 Osm 20141118-l2.2-collecte et contribution
4/5 Osm 20141118-l2.2-collecte et contribution
 
Demo1: OpenStreetMap : le monde rue après rue
Demo1: OpenStreetMap : le monde rue après rueDemo1: OpenStreetMap : le monde rue après rue
Demo1: OpenStreetMap : le monde rue après rue
 
PostGIS @ Pgday.eu 2009
PostGIS @ Pgday.eu 2009PostGIS @ Pgday.eu 2009
PostGIS @ Pgday.eu 2009
 
L’exploitation d’OSM par l’AURH et ses avantages pour le projet européen « We...
L’exploitation d’OSM par l’AURH et ses avantages pour le projet européen « We...L’exploitation d’OSM par l’AURH et ses avantages pour le projet européen « We...
L’exploitation d’OSM par l’AURH et ses avantages pour le projet européen « We...
 
Osmose-QA
Osmose-QAOsmose-QA
Osmose-QA
 
Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++
 
La parallélisation au service de l'optimisation
La parallélisation au service de l'optimisationLa parallélisation au service de l'optimisation
La parallélisation au service de l'optimisation
 

Más de Frédéric Rodrigo

Cartography: Vector Tiles From an Open Initiative To an Industry Standard
Cartography: Vector Tiles  From an Open Initiative To an Industry StandardCartography: Vector Tiles  From an Open Initiative To an Industry Standard
Cartography: Vector Tiles From an Open Initiative To an Industry StandardFrédéric Rodrigo
 
Osmose-QA, OpenData, Mapillary and MapCSS
Osmose-QA, OpenData, Mapillary and MapCSSOsmose-QA, OpenData, Mapillary and MapCSS
Osmose-QA, OpenData, Mapillary and MapCSSFrédéric Rodrigo
 
Automatic Enhancement of Pedestrian Route using extracted Landmarks from OSM
Automatic Enhancement of Pedestrian Route using extracted Landmarks from OSMAutomatic Enhancement of Pedestrian Route using extracted Landmarks from OSM
Automatic Enhancement of Pedestrian Route using extracted Landmarks from OSMFrédéric Rodrigo
 
Annoter automatiquement un itinéraire piéton avec des repères issus d'OSM
Annoter automatiquement un itinéraire piéton avec des repères issus d'OSMAnnoter automatiquement un itinéraire piéton avec des repères issus d'OSM
Annoter automatiquement un itinéraire piéton avec des repères issus d'OSMFrédéric Rodrigo
 
OSRM - Open Source Routing Machine
OSRM - Open Source Routing MachineOSRM - Open Source Routing Machine
OSRM - Open Source Routing MachineFrédéric Rodrigo
 
Osmose : la conquête du monde
Osmose : la conquête du mondeOsmose : la conquête du monde
Osmose : la conquête du mondeFrédéric Rodrigo
 
5/5 Osm 20141118-l2.3-réutilisation
5/5 Osm 20141118-l2.3-réutilisation5/5 Osm 20141118-l2.3-réutilisation
5/5 Osm 20141118-l2.3-réutilisationFrédéric Rodrigo
 
3/5 Osm 20141118-l2.1-être à l'aise avec open streetmap
3/5 Osm 20141118-l2.1-être à l'aise avec open streetmap3/5 Osm 20141118-l2.1-être à l'aise avec open streetmap
3/5 Osm 20141118-l2.1-être à l'aise avec open streetmapFrédéric Rodrigo
 
2/5 Osm 20141106-l1.2-initiation à la contribution
2/5 Osm 20141106-l1.2-initiation à la contribution2/5 Osm 20141106-l1.2-initiation à la contribution
2/5 Osm 20141106-l1.2-initiation à la contributionFrédéric Rodrigo
 
1/5 Osm 20141106-l1.1-présentation
1/5 Osm 20141106-l1.1-présentation1/5 Osm 20141106-l1.1-présentation
1/5 Osm 20141106-l1.1-présentationFrédéric Rodrigo
 
Osmose, quality assurance tool
Osmose, quality assurance toolOsmose, quality assurance tool
Osmose, quality assurance toolFrédéric Rodrigo
 

Más de Frédéric Rodrigo (20)

OSXP 2021 - MAKINA MAPS
OSXP 2021 - MAKINA MAPSOSXP 2021 - MAKINA MAPS
OSXP 2021 - MAKINA MAPS
 
Cartography: Vector Tiles From an Open Initiative To an Industry Standard
Cartography: Vector Tiles  From an Open Initiative To an Industry StandardCartography: Vector Tiles  From an Open Initiative To an Industry Standard
Cartography: Vector Tiles From an Open Initiative To an Industry Standard
 
Osmose-QA, OpenData, Mapillary and MapCSS
Osmose-QA, OpenData, Mapillary and MapCSSOsmose-QA, OpenData, Mapillary and MapCSS
Osmose-QA, OpenData, Mapillary and MapCSS
 
Automatic Enhancement of Pedestrian Route using extracted Landmarks from OSM
Automatic Enhancement of Pedestrian Route using extracted Landmarks from OSMAutomatic Enhancement of Pedestrian Route using extracted Landmarks from OSM
Automatic Enhancement of Pedestrian Route using extracted Landmarks from OSM
 
Annoter automatiquement un itinéraire piéton avec des repères issus d'OSM
Annoter automatiquement un itinéraire piéton avec des repères issus d'OSMAnnoter automatiquement un itinéraire piéton avec des repères issus d'OSM
Annoter automatiquement un itinéraire piéton avec des repères issus d'OSM
 
Open Traffic
Open TrafficOpen Traffic
Open Traffic
 
OSRM - Open Source Routing Machine
OSRM - Open Source Routing MachineOSRM - Open Source Routing Machine
OSRM - Open Source Routing Machine
 
Osmose-QA OpenData
Osmose-QA OpenDataOsmose-QA OpenData
Osmose-QA OpenData
 
20150607 sotm-us-osmose-qa
20150607 sotm-us-osmose-qa20150607 sotm-us-osmose-qa
20150607 sotm-us-osmose-qa
 
Mapotempo
MapotempoMapotempo
Mapotempo
 
Osmose : la conquête du monde
Osmose : la conquête du mondeOsmose : la conquête du monde
Osmose : la conquête du monde
 
5/5 Osm 20141118-l2.3-réutilisation
5/5 Osm 20141118-l2.3-réutilisation5/5 Osm 20141118-l2.3-réutilisation
5/5 Osm 20141118-l2.3-réutilisation
 
3/5 Osm 20141118-l2.1-être à l'aise avec open streetmap
3/5 Osm 20141118-l2.1-être à l'aise avec open streetmap3/5 Osm 20141118-l2.1-être à l'aise avec open streetmap
3/5 Osm 20141118-l2.1-être à l'aise avec open streetmap
 
2/5 Osm 20141106-l1.2-initiation à la contribution
2/5 Osm 20141106-l1.2-initiation à la contribution2/5 Osm 20141106-l1.2-initiation à la contribution
2/5 Osm 20141106-l1.2-initiation à la contribution
 
1/5 Osm 20141106-l1.1-présentation
1/5 Osm 20141106-l1.1-présentation1/5 Osm 20141106-l1.1-présentation
1/5 Osm 20141106-l1.1-présentation
 
Osm 20141112-montesquieu
Osm 20141112-montesquieuOsm 20141112-montesquieu
Osm 20141112-montesquieu
 
L'état de l'Osmose
L'état de l'OsmoseL'état de l'Osmose
L'état de l'Osmose
 
Osmose, quality assurance tool
Osmose, quality assurance toolOsmose, quality assurance tool
Osmose, quality assurance tool
 
OpenData & OpenStreetMap
OpenData & OpenStreetMapOpenData & OpenStreetMap
OpenData & OpenStreetMap
 
L'état de l'Osmose 2013
L'état de l'Osmose 2013L'état de l'Osmose 2013
L'état de l'Osmose 2013
 

Osmose-QA, Qualité et intégration de données

  • 1. Osmose-QA Qualité et intégration de données SotM-FR Bordeaux 2018-06-03 Frédéric Rodrigo – fred.rodrigo@gmail.com - CC-By-SA 3.0 @fre2d@twitter.com - @fre2d@unixcorn.xyz
  • 3.
  • 4. Nouvelles analyses ● Voies proches avec noms similaires 5080 – Rue Paul Lavavé – Rue Paul Lacavé ● Accès à la voie ne correspondant pas à la relation route=bicycle/foot/hiking 3240 – Relation : route=bicycle – Way : highway=footway ● Validation numéros de téléphone (par Francois Gouget) 3092 – “0” en trop après le préfixe international “+” et le code pays – Préfixe international “+” et code pays manquants – Un numéro court national ne peut pas être internationalisé ● Doublon de référence à Wikipédia 4130
  • 5. Analyses Transport Public ● Par Noémie Lehuby & Pascal Rhod – 5 Contrôles de géométries 1260 – 16 Contrôles des tags 2140 9014
  • 6. OpenData ● power=generator (RTE) power=substation (RTE) power=substation substation=minor_distribution (Enedis) power=tower (RTE) ● maxheight=* (Route500, Dep. Hauts-de-Seine) ● amenity=toilets par Adrien Pavie (Angers, Bordeaux, Le Havre, Lyon, Montpellier, Nantes, Rennes, Toulouse)
  • 7. Expérimentations / Mapillary ● Panneaux de signalisations de Mapillary 8300 – Obtenu que de petits extracts – Usage discutable
  • 8. Expérimentations / SIRENE ● Mapping code APE → tags ● Test sur le Vaucluse 8310 – Filtrer les types de métiers – Des noms de personnes – Des noms qui ne correspondent pas au nom du commerce → Test peu conclusif, à poursuivre
  • 9. Moteur d’analyses ● Timestamp : depuis les données et non à la date d’exécution ● Factorisation de tables thématiques, building, highway... ● Début de support de Python3 ● Support des fichiers GTFS et GeoJson (par Adrien Pavie)
  • 10. MapCSS ● CSS-like pour styler les cartes (JOSM, Maps.me, Overpass turbo…) way[highway=tertiary] { # Sélecteur width: 2; # Style color: orange; }
  • 11. Validation avec MapCSS way[highway=road] { throwWarning: tr("Unspecific highway type"); assertMatch: "way highway=road"; assertNoMatch: "way highway=residential"; } *[direction][direction<0], *[direction][direction>=360] { throwWarning: tr("unusual value of {0}", "{1.key}"); assertMatch: "node direction=-10"; assertNoMatch: "node direction=0"; } node[tag("amenity") = parent_tag("amenity")] *[amenity][amenity != parking] {∈ throwWarning: tr("{0} inside {1}", concat("amenity=", tag("amenity")), concat("amenity=", tag("amenity"))); }
  • 12. MapCSS & Osmose ● MapCSS ● Grammaire ANTLR4 ● Arbre syntaxique ● Transformateur d’arbre ● Générateur de code Python
  • 13. Plugin Osmose généré way[highway=road] { throwWarning: tr("Unspecific highway type"); assertMatch: "way highway=road"; assertNoMatch: "way highway=residential"; } if u'highway' in keys: try: match = match or ((mapcss._tag_capture(capture_tags, 0, tags, u'highway') == mapcss._value_capture(capture_tags, 0, u'road'))) except mapcss.RuleAbort: pass if match: err.append({'class': 9004004, 'subclass': 1856552890, 'text': mapcss.tr(u'Unspecific highway type', capture_tags)})
  • 14. JOSM→ OSMOSE → JOSM ● 130 nouvelles validations dans Osmose ● Filtrer les règles adaptées à Osmose ● Dédoublonner les règles entre JOSM/Osmose ● Convertir les règles Osmose en MapCSS ● Proposer dans JOSM des règles Osmose
  • 15. Frontend ● Ajout de l’export en CSV ● Amélioration des performances (après ajout MapCSS) ● Nouveau serveur ● Popup responsive ● Boostrap pour css ● Utilisation de npm & webpack
  • 16. Docker ● Backend & Frontend ● Docker-compose ● Tester plus facilement une analyse →Faciliter la contribution
  • 17. Du neuf en 1 an ● +8 Contributeurs – PanierAvide – Noémie Lehuby – Stephan – Gautier Pelloux-Prayer – Daniele Venzano – Pascal Rhod – Francois Gouget – Niels Elgaard Larsen ● +500 000 Signalements (mapcss) ● 24 Langues 82 traducteurs