SlideShare a Scribd company logo
SoTM 2013
Osmose
quality assurance tool
Birmingham 2013-09-06
Frédéric Rodrigo <frederic@carte-libre.fr>
(c)left 2013 - CC-BY-SA v3.0
http://osmose.openstreetmap.fr
Context
QA tool
– Since 2008 by Etienne Chové
– Maintained by Jocelyn Jaubert and Frédéric Rodrigo
Sources available on gitorious
– https://gitorious.org/osmose/
Ecosystem
No duplicate analysis from KeepRight and Osm
Inspector
But integrate good idea from “minor” other tools
Idea from Osmose integrated into JOSM validator
by don_vip (building intersection, powerline...)
Support
France mainland and oversea
HOT activated countries
All full French speaking countries and Quebec
Switzerland, Belgium, Luxembourg and Iceland
Hiring for community to support local server for
new countries
The Osmose Stack
Frontend BackendsAPI
Backends Input
XML or PBF export
Not all supported country are available at
Geofabrik
OSM-FR generate also export
– http://download.openstreetmap.fr/extracts/
– Diff available
– Need for Osmose
Analyser - SAX
Process one primitive at time
Each analyser is a plugin
– Check node, way and relation
– Can report errors
Use external data
– Wikipedia tree species
Running filter on language and country
Analyser - SAX
Format: number, date, postcode, wikipedia...
Naming: abbreviation, too many space, uppercase...
Bag tag: ref in name, typo, deprecated...
Ensure multiple tags coherence from wiki rules:
multipolygon, parking lanes...
Inconsistency between tags: toll and fee, opposite
cycleway without oneway...
class Structural_UnclosedArea(Plugin):
def init(self, logger):
self.errors[1100] = { "item": 1100, "level": 3,
"tag": ["geom", "fix:imagery"], "desc": T_(u"Unclosed
area") }
def way(self, data, tags, nds):
if "area" not in tags or tags["area"] == "no":
return
if nds[0] != nds[-1]:
return [(1100, 0, {})]
Analyser - Osmosis
Osmosis, a lossless schema
Multiple objects checking at once
Geospatial analysis
DB
– Lot of indices
– create/drop DB: at each Osmose run, lake of disk sppace
– Keep DB: Quebec (diff mode)
Analyser – Osmosis – Non spatial
Done by topology
Roundabout analyser
– Wrong highway level on roundabout
– Missing oneway on link highway
– Roundabout shortcut
– Roundabout crossing
Analyser – Osmosis - Geospatial
Roundabout
– Missing junction=roundabout
– Reverse roundabout
Deadend by highway level
– Small gap in highway level continuity
Power line
– Isolated tower
– Unconnected powerline
– Missing tag power=tower
– Predictive position of unmapped power=tower
Analyser – Osmosis - Convergent
Soundex
– Phonetic index
– Index all name, way kind + way name
– Compare numerous name again similar with low
frequency
Automatic typo on tags detection
– Not work
Analyser - Merge
OpenData Integration
– Integration vs Importation
– Help contributor to add external data
Row external data set (csv) + Osmosis DB
Mapping
– Column to tag
– Complex mapping
Analyser code is just configuration
– Easy to add new data set
Analyser - Merge
Conflation by ref
Conflation by distance
Detect
– OSM object without ref
– OSM object not found in OpenData set
– OpenData object not found in OSM
“OpenData by OSM” as sub product
Analyser – Merge
French school
Wikipedia
Level crossing
self.csv_encoding = "ISO-8859-15"
self.osmTags = {
"amenity": "post_office" }
self.osmRef = "ref:FR:LaPoste"
sself.osmTypes = ["nodes", "ways"]
self.sourceSRID = "4326"
self.defaultTag = {
"amenity": "post_office",
"operator": "La Poste",
"source": "data.gouv.fr:LaPoste – 01/2013" }
self.defaultTagMapping = {
"ref:FR:LaPoste": "identifiant",
"name": "nom",
"wheelchair": lambda res:
"yes" if self.bool[res["autonome_fauteuil_roulant"]] else
"limited" if self.bool[res["pas_ressaut"]] else
"no" }
self.conflationDistance = 1000
Analyser – OSMBin
OSMBin: Osmose proprietary DB format
– Flat storage, access in O(1)
Multipolygon / boundary closed fast checking
Analyser – External tools
OpenStreetBug
– Close OSB entries when close it on Osmose
Need support OSM Notes
Configuration
Configuration by extract (country and smaller part)
List of analysers
– Language: mainly french specific
– Local way of mapping
– Source available: Bing hires, French cadastre...
Options
– Projection
– Driving side
– Language
Boundary clipping
Extract have buffer on boundary
– Duplicate error
– False error (e.g. unconnected)
Clip on exact boundary polygon after analyse
About Time
Full run every 2 days
Take 80% of availible CPU
2
50
35
43
67
ïle-de-France - Total time 3h17
Download
Osmosis Import
Indexing
SAX Analyser
Osmosis Analyser
Diff mode
Speedup by running analyser only on change
Sax
Osmosis
– “changed” tables : edited nodes, ways, relations and transitive
dependencies
– Keep DB between runs
Not all can be run in diff mode
– Error based on other OSM data (clustering, connection...)
Full run every month to keep safe
The Osmose Stack
Frontend BackendsAPI
Errors
Backends send errors to centralized Frontend
Errors report are by Analyser and Country (aka
source)
Error file replace all errors of his kind on frontend
– Except on diff mode
Error
Source (country, analyser)
Identity
– Class
– Subclass
Metainfo
– Level: 1, 2, 3 as severity
– Item number: display category and subcategory
Tags
– Other classificatio:, by nature of OSM object, highway,
waterway, name...
– What is require for fix: chair, imagery, survey
Error fixes
Analyser can propose some error fixes
Add, delete or modify many tag at once
Create a new node with tags
The Osmose Stack
Frontend BackendsAPI
Frontend - Map
Selector
– Levels of severity
– Items
– Other options available on URL (see API)
Markers
– Status: open, close, false-positive
– JOSM remote
– JOSM fix
– Wiki help
Layers
– Heatmap
– Debug map
Stats
Errors listing
History graph
By user
– RSS
Update Matrix
France - Level 1
Add new analyser
Natural fix over the time
Heavy fix
Haiti – All errors
Correct error with locals
France – Cadastre building
overlap
New gap
detection
Heavy fdix
French OpenData School
Bugs
OpenData
Update
The Osmose Stack
Frontend BackendsAPI
API
External fixing tools
Stats
JOSM
– confidential plugin
– “Quality Assurance Tools script”
API doc on Wiki
– URL parameters apply any where in the frontend
Hardware
Backends
– osm3.openstreetmap.fr HOT and Quebec
– osm5.openstreetmap.fr France
– osm6.openstreetmap.fr France
– Iceland server: Iceland
Frontend
– osm103.openstreetmap.fr ← osmose.openstreetmap.fr
Conclusion
osmose.openstreetmap.fr → o.osmfr.org
https://gitorious.org/osmose/
We need you
– Translation: frontend UI and backend errors
– Run your own Osmose local backend server
– Errors correction!
Long list of analysers request on french Trac
Localise language or country specific analyser
– Main st → Main street

More Related Content

Similar to Osmose, quality assurance tool

Appswitch: Pune Docker Kubernetes meetup 28 July, 2018
Appswitch: Pune Docker Kubernetes meetup 28 July, 2018Appswitch: Pune Docker Kubernetes meetup 28 July, 2018
Appswitch: Pune Docker Kubernetes meetup 28 July, 2018
Ashish Puri
 
Presentatie 20071121 Dutch Railways And Soa Avans (1x90min) V1.0
Presentatie 20071121   Dutch Railways And Soa   Avans (1x90min)   V1.0Presentatie 20071121   Dutch Railways And Soa   Avans (1x90min)   V1.0
Presentatie 20071121 Dutch Railways And Soa Avans (1x90min) V1.0
Jack541108
 
Eclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science ProjectEclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science Project
Matthew Gerring
 
Apdm 101 Arc Gis Pipeline Data Model (1)
Apdm 101 Arc Gis Pipeline Data Model  (1)Apdm 101 Arc Gis Pipeline Data Model  (1)
Apdm 101 Arc Gis Pipeline Data Model (1)
David Nichter, GISP
 
20150607 sotm-us-osmose-qa
20150607 sotm-us-osmose-qa20150607 sotm-us-osmose-qa
20150607 sotm-us-osmose-qa
Frédéric Rodrigo
 
DAE Tools 1.8.0 - Overview
DAE Tools 1.8.0 - OverviewDAE Tools 1.8.0 - Overview
DAE Tools 1.8.0 - Overview
Dragan Nikolić
 
Reporting Summary Information of Spatial Datasets and Non-Compliance Issues U...
Reporting Summary Information of Spatial Datasets and Non-Compliance Issues U...Reporting Summary Information of Spatial Datasets and Non-Compliance Issues U...
Reporting Summary Information of Spatial Datasets and Non-Compliance Issues U...
Safe Software
 
On the road of multi tenancy portal - Apereo 2016
On the road of multi tenancy portal - Apereo 2016 On the road of multi tenancy portal - Apereo 2016
On the road of multi tenancy portal - Apereo 2016
Christian Cousquer
 
OpenStreetMap in the age of Spark
OpenStreetMap in the age of SparkOpenStreetMap in the age of Spark
OpenStreetMap in the age of Spark
Adrian Bona
 
SOTM lightning talk - QualityStreetMap.org and OSMQA
SOTM lightning talk - QualityStreetMap.org and OSMQASOTM lightning talk - QualityStreetMap.org and OSMQA
SOTM lightning talk - QualityStreetMap.org and OSMQA
fvanderbiest
 
Microservices in Clojure
Microservices in ClojureMicroservices in Clojure
Microservices in Clojure
Lucas Cavalcanti dos Santos
 
OpenGeoData Italia - Roma - Simone Cortesi | Maurizio Napolitano | openstreet...
OpenGeoData Italia - Roma - Simone Cortesi | Maurizio Napolitano | openstreet...OpenGeoData Italia - Roma - Simone Cortesi | Maurizio Napolitano | openstreet...
OpenGeoData Italia - Roma - Simone Cortesi | Maurizio Napolitano | openstreet...
Simone Cortesi
 
Developing web applications in Rust
Developing web applications in RustDeveloping web applications in Rust
Developing web applications in Rust
Sylvain Wallez
 
CDI, Seam & RESTEasy: You haven't seen REST yet!
CDI, Seam & RESTEasy: You haven't seen REST yet!CDI, Seam & RESTEasy: You haven't seen REST yet!
CDI, Seam & RESTEasy: You haven't seen REST yet!
Dan Allen
 
NLP Project Full Circle
NLP Project Full CircleNLP Project Full Circle
NLP Project Full Circle
Vsevolod Dyomkin
 
Introduction to the Globus PaaS (GlobusWorld Tour - STFC)
Introduction to the Globus PaaS (GlobusWorld Tour - STFC)Introduction to the Globus PaaS (GlobusWorld Tour - STFC)
Introduction to the Globus PaaS (GlobusWorld Tour - STFC)
Globus
 
OUGN 2016: Experiences with REST support on OSB/SOA Suite
OUGN 2016: Experiences with REST support on OSB/SOA SuiteOUGN 2016: Experiences with REST support on OSB/SOA Suite
OUGN 2016: Experiences with REST support on OSB/SOA Suite
Jon Petter Hjulstad
 
One Billion Black Friday Shoppers on a Distributed Data Store (Fahd Siddiqui,...
One Billion Black Friday Shoppers on a Distributed Data Store (Fahd Siddiqui,...One Billion Black Friday Shoppers on a Distributed Data Store (Fahd Siddiqui,...
One Billion Black Friday Shoppers on a Distributed Data Store (Fahd Siddiqui,...
DataStax
 
Lecture2.pptx
Lecture2.pptxLecture2.pptx
Lecture2.pptx
ajsenol2
 
Web Template Mechanisms in SOC Verification - DVCon.pdf
Web Template Mechanisms in SOC Verification - DVCon.pdfWeb Template Mechanisms in SOC Verification - DVCon.pdf
Web Template Mechanisms in SOC Verification - DVCon.pdf
SamHoney6
 

Similar to Osmose, quality assurance tool (20)

Appswitch: Pune Docker Kubernetes meetup 28 July, 2018
Appswitch: Pune Docker Kubernetes meetup 28 July, 2018Appswitch: Pune Docker Kubernetes meetup 28 July, 2018
Appswitch: Pune Docker Kubernetes meetup 28 July, 2018
 
Presentatie 20071121 Dutch Railways And Soa Avans (1x90min) V1.0
Presentatie 20071121   Dutch Railways And Soa   Avans (1x90min)   V1.0Presentatie 20071121   Dutch Railways And Soa   Avans (1x90min)   V1.0
Presentatie 20071121 Dutch Railways And Soa Avans (1x90min) V1.0
 
Eclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science ProjectEclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science Project
 
Apdm 101 Arc Gis Pipeline Data Model (1)
Apdm 101 Arc Gis Pipeline Data Model  (1)Apdm 101 Arc Gis Pipeline Data Model  (1)
Apdm 101 Arc Gis Pipeline Data Model (1)
 
20150607 sotm-us-osmose-qa
20150607 sotm-us-osmose-qa20150607 sotm-us-osmose-qa
20150607 sotm-us-osmose-qa
 
DAE Tools 1.8.0 - Overview
DAE Tools 1.8.0 - OverviewDAE Tools 1.8.0 - Overview
DAE Tools 1.8.0 - Overview
 
Reporting Summary Information of Spatial Datasets and Non-Compliance Issues U...
Reporting Summary Information of Spatial Datasets and Non-Compliance Issues U...Reporting Summary Information of Spatial Datasets and Non-Compliance Issues U...
Reporting Summary Information of Spatial Datasets and Non-Compliance Issues U...
 
On the road of multi tenancy portal - Apereo 2016
On the road of multi tenancy portal - Apereo 2016 On the road of multi tenancy portal - Apereo 2016
On the road of multi tenancy portal - Apereo 2016
 
OpenStreetMap in the age of Spark
OpenStreetMap in the age of SparkOpenStreetMap in the age of Spark
OpenStreetMap in the age of Spark
 
SOTM lightning talk - QualityStreetMap.org and OSMQA
SOTM lightning talk - QualityStreetMap.org and OSMQASOTM lightning talk - QualityStreetMap.org and OSMQA
SOTM lightning talk - QualityStreetMap.org and OSMQA
 
Microservices in Clojure
Microservices in ClojureMicroservices in Clojure
Microservices in Clojure
 
OpenGeoData Italia - Roma - Simone Cortesi | Maurizio Napolitano | openstreet...
OpenGeoData Italia - Roma - Simone Cortesi | Maurizio Napolitano | openstreet...OpenGeoData Italia - Roma - Simone Cortesi | Maurizio Napolitano | openstreet...
OpenGeoData Italia - Roma - Simone Cortesi | Maurizio Napolitano | openstreet...
 
Developing web applications in Rust
Developing web applications in RustDeveloping web applications in Rust
Developing web applications in Rust
 
CDI, Seam & RESTEasy: You haven't seen REST yet!
CDI, Seam & RESTEasy: You haven't seen REST yet!CDI, Seam & RESTEasy: You haven't seen REST yet!
CDI, Seam & RESTEasy: You haven't seen REST yet!
 
NLP Project Full Circle
NLP Project Full CircleNLP Project Full Circle
NLP Project Full Circle
 
Introduction to the Globus PaaS (GlobusWorld Tour - STFC)
Introduction to the Globus PaaS (GlobusWorld Tour - STFC)Introduction to the Globus PaaS (GlobusWorld Tour - STFC)
Introduction to the Globus PaaS (GlobusWorld Tour - STFC)
 
OUGN 2016: Experiences with REST support on OSB/SOA Suite
OUGN 2016: Experiences with REST support on OSB/SOA SuiteOUGN 2016: Experiences with REST support on OSB/SOA Suite
OUGN 2016: Experiences with REST support on OSB/SOA Suite
 
One Billion Black Friday Shoppers on a Distributed Data Store (Fahd Siddiqui,...
One Billion Black Friday Shoppers on a Distributed Data Store (Fahd Siddiqui,...One Billion Black Friday Shoppers on a Distributed Data Store (Fahd Siddiqui,...
One Billion Black Friday Shoppers on a Distributed Data Store (Fahd Siddiqui,...
 
Lecture2.pptx
Lecture2.pptxLecture2.pptx
Lecture2.pptx
 
Web Template Mechanisms in SOC Verification - DVCon.pdf
Web Template Mechanisms in SOC Verification - DVCon.pdfWeb Template Mechanisms in SOC Verification - DVCon.pdf
Web Template Mechanisms in SOC Verification - DVCon.pdf
 

More from Frédéric Rodrigo

OSXP 2021 - MAKINA MAPS
OSXP 2021 - MAKINA MAPSOSXP 2021 - MAKINA MAPS
OSXP 2021 - MAKINA MAPS
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 Standard
Fré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 MapCSS
Fré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 OSM
Fré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'OSM
Frédéric Rodrigo
 
Osmose-QA, Qualité et intégration de données
Osmose-QA, Qualité et intégration de donnéesOsmose-QA, Qualité et intégration de données
Osmose-QA, Qualité et intégration de données
Frédéric Rodrigo
 
OSRM, Utilisation avancée
OSRM, Utilisation avancéeOSRM, Utilisation avancée
OSRM, Utilisation avancée
Frédéric Rodrigo
 
Open Traffic
Open TrafficOpen Traffic
Open Traffic
Frédéric Rodrigo
 
Osmose-QA
Osmose-QAOsmose-QA
OSRM L'état du routage
OSRM L'état du routageOSRM L'état du routage
OSRM L'état du routage
Frédéric Rodrigo
 
OSRM - Open Source Routing Machine
OSRM - Open Source Routing MachineOSRM - Open Source Routing Machine
OSRM - Open Source Routing Machine
Frédéric Rodrigo
 
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
Frédéric Rodrigo
 
Osmose-QA OpenData
Osmose-QA OpenDataOsmose-QA OpenData
Osmose-QA OpenData
Frédéric Rodrigo
 
Mapotempo
MapotempoMapotempo
Osmose : la conquête du monde
Osmose : la conquête du mondeOsmose : la conquête du monde
Osmose : la conquête du monde
Fré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éutilisation
Frédéric Rodrigo
 
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
Fré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 streetmap
Fré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 contribution
Fré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ésentation
Frédéric Rodrigo
 

More from 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
 
Osmose-QA, Qualité et intégration de données
Osmose-QA, Qualité et intégration de donnéesOsmose-QA, Qualité et intégration de données
Osmose-QA, Qualité et intégration de données
 
OSRM, Utilisation avancée
OSRM, Utilisation avancéeOSRM, Utilisation avancée
OSRM, Utilisation avancée
 
Open Traffic
Open TrafficOpen Traffic
Open Traffic
 
Osmose-QA
Osmose-QAOsmose-QA
Osmose-QA
 
OSRM L'état du routage
OSRM L'état du routageOSRM L'état du routage
OSRM L'état du routage
 
OSRM - Open Source Routing Machine
OSRM - Open Source Routing MachineOSRM - Open Source Routing Machine
OSRM - Open Source Routing Machine
 
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 OpenData
Osmose-QA OpenDataOsmose-QA OpenData
Osmose-QA OpenData
 
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
 
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
 
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
 

Recently uploaded

Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 

Recently uploaded (20)

Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 

Osmose, quality assurance tool

  • 1. SoTM 2013 Osmose quality assurance tool Birmingham 2013-09-06 Frédéric Rodrigo <frederic@carte-libre.fr> (c)left 2013 - CC-BY-SA v3.0 http://osmose.openstreetmap.fr
  • 2. Context QA tool – Since 2008 by Etienne Chové – Maintained by Jocelyn Jaubert and Frédéric Rodrigo Sources available on gitorious – https://gitorious.org/osmose/
  • 3. Ecosystem No duplicate analysis from KeepRight and Osm Inspector But integrate good idea from “minor” other tools Idea from Osmose integrated into JOSM validator by don_vip (building intersection, powerline...)
  • 4. Support France mainland and oversea HOT activated countries All full French speaking countries and Quebec Switzerland, Belgium, Luxembourg and Iceland Hiring for community to support local server for new countries
  • 6. Backends Input XML or PBF export Not all supported country are available at Geofabrik OSM-FR generate also export – http://download.openstreetmap.fr/extracts/ – Diff available – Need for Osmose
  • 7. Analyser - SAX Process one primitive at time Each analyser is a plugin – Check node, way and relation – Can report errors Use external data – Wikipedia tree species Running filter on language and country
  • 8. Analyser - SAX Format: number, date, postcode, wikipedia... Naming: abbreviation, too many space, uppercase... Bag tag: ref in name, typo, deprecated... Ensure multiple tags coherence from wiki rules: multipolygon, parking lanes... Inconsistency between tags: toll and fee, opposite cycleway without oneway...
  • 9. class Structural_UnclosedArea(Plugin): def init(self, logger): self.errors[1100] = { "item": 1100, "level": 3, "tag": ["geom", "fix:imagery"], "desc": T_(u"Unclosed area") } def way(self, data, tags, nds): if "area" not in tags or tags["area"] == "no": return if nds[0] != nds[-1]: return [(1100, 0, {})]
  • 10. Analyser - Osmosis Osmosis, a lossless schema Multiple objects checking at once Geospatial analysis DB – Lot of indices – create/drop DB: at each Osmose run, lake of disk sppace – Keep DB: Quebec (diff mode)
  • 11. Analyser – Osmosis – Non spatial Done by topology Roundabout analyser – Wrong highway level on roundabout – Missing oneway on link highway – Roundabout shortcut – Roundabout crossing
  • 12. Analyser – Osmosis - Geospatial Roundabout – Missing junction=roundabout – Reverse roundabout Deadend by highway level – Small gap in highway level continuity Power line – Isolated tower – Unconnected powerline – Missing tag power=tower – Predictive position of unmapped power=tower
  • 13. Analyser – Osmosis - Convergent Soundex – Phonetic index – Index all name, way kind + way name – Compare numerous name again similar with low frequency Automatic typo on tags detection – Not work
  • 14. Analyser - Merge OpenData Integration – Integration vs Importation – Help contributor to add external data Row external data set (csv) + Osmosis DB Mapping – Column to tag – Complex mapping Analyser code is just configuration – Easy to add new data set
  • 15. Analyser - Merge Conflation by ref Conflation by distance Detect – OSM object without ref – OSM object not found in OpenData set – OpenData object not found in OSM “OpenData by OSM” as sub product
  • 16. Analyser – Merge French school Wikipedia Level crossing
  • 17. self.csv_encoding = "ISO-8859-15" self.osmTags = { "amenity": "post_office" } self.osmRef = "ref:FR:LaPoste" sself.osmTypes = ["nodes", "ways"] self.sourceSRID = "4326" self.defaultTag = { "amenity": "post_office", "operator": "La Poste", "source": "data.gouv.fr:LaPoste – 01/2013" } self.defaultTagMapping = { "ref:FR:LaPoste": "identifiant", "name": "nom", "wheelchair": lambda res: "yes" if self.bool[res["autonome_fauteuil_roulant"]] else "limited" if self.bool[res["pas_ressaut"]] else "no" } self.conflationDistance = 1000
  • 18. Analyser – OSMBin OSMBin: Osmose proprietary DB format – Flat storage, access in O(1) Multipolygon / boundary closed fast checking
  • 19. Analyser – External tools OpenStreetBug – Close OSB entries when close it on Osmose Need support OSM Notes
  • 20. Configuration Configuration by extract (country and smaller part) List of analysers – Language: mainly french specific – Local way of mapping – Source available: Bing hires, French cadastre... Options – Projection – Driving side – Language
  • 21. Boundary clipping Extract have buffer on boundary – Duplicate error – False error (e.g. unconnected) Clip on exact boundary polygon after analyse
  • 22. About Time Full run every 2 days Take 80% of availible CPU 2 50 35 43 67 ïle-de-France - Total time 3h17 Download Osmosis Import Indexing SAX Analyser Osmosis Analyser
  • 23. Diff mode Speedup by running analyser only on change Sax Osmosis – “changed” tables : edited nodes, ways, relations and transitive dependencies – Keep DB between runs Not all can be run in diff mode – Error based on other OSM data (clustering, connection...) Full run every month to keep safe
  • 25. Errors Backends send errors to centralized Frontend Errors report are by Analyser and Country (aka source) Error file replace all errors of his kind on frontend – Except on diff mode
  • 26. Error Source (country, analyser) Identity – Class – Subclass Metainfo – Level: 1, 2, 3 as severity – Item number: display category and subcategory Tags – Other classificatio:, by nature of OSM object, highway, waterway, name... – What is require for fix: chair, imagery, survey
  • 27. Error fixes Analyser can propose some error fixes Add, delete or modify many tag at once Create a new node with tags
  • 29. Frontend - Map Selector – Levels of severity – Items – Other options available on URL (see API) Markers – Status: open, close, false-positive – JOSM remote – JOSM fix – Wiki help Layers – Heatmap – Debug map
  • 30.
  • 31.
  • 32. Stats Errors listing History graph By user – RSS Update Matrix
  • 33. France - Level 1 Add new analyser Natural fix over the time Heavy fix
  • 34. Haiti – All errors Correct error with locals
  • 35. France – Cadastre building overlap New gap detection Heavy fdix
  • 38. API External fixing tools Stats JOSM – confidential plugin – “Quality Assurance Tools script” API doc on Wiki – URL parameters apply any where in the frontend
  • 39. Hardware Backends – osm3.openstreetmap.fr HOT and Quebec – osm5.openstreetmap.fr France – osm6.openstreetmap.fr France – Iceland server: Iceland Frontend – osm103.openstreetmap.fr ← osmose.openstreetmap.fr
  • 40. Conclusion osmose.openstreetmap.fr → o.osmfr.org https://gitorious.org/osmose/ We need you – Translation: frontend UI and backend errors – Run your own Osmose local backend server – Errors correction! Long list of analysers request on french Trac Localise language or country specific analyser – Main st → Main street