- 1 Introduction
- 2 Usage
- 3 How does it work ? The backend
- 4 Other features and tools
- 5 APIs
Osmose, whose name means OpenStreetMap Oversight Search Engine, is one of many quality assurance tools available to detect issues in OpenStreetMap data. It is also useful for integrating 3rd party data sets or Conflation.
- Website: osmose.openstreetmap.fr
Warning: do not map for Osmose/keepright etc. Only fix real errors which you understand and know how to improve correctly!!!
Osmose is a tool for reporting issues of two parts :
- The frontend: visible part for displaying issues on a slippy map,
- The backends: hidden part for OpenStreetMap data analysis and issues detection.
Osmose was initially available only in some areas, now the coverage is worldwide.
A complete and updated list of areas is available on Osmose's API. The areas are not all analysed in the same way, the detection of certain types of defects depends of particularities like language, availability of third part data (eg. Open Data), quality of aerial imageries...
Contact the project to offer resources to support for country-specific settings, or new languages :
The idea is to show anomalies identified in the OpenStreetMap data on a map.
The list of categories
The list on the left groups analyses (different types of issue check) into several categories, each with a specific colour. Each item has its own glyph and can be activated or deactivated to filter the contents of the map. Some items not may combine several analyses of the same kind.
- Severity: anomalies are also classified by severity level from 1 to 3, from most serious to the least important, and represented by color circle. Gravity level can be filtered by the drop down list of menu items.
- Fix: Some issues are displayed with proposed corrections (the fix). The filter "Fixable" can show such ones. "Online" are fix that can be applied via the online Osmose tags editor. "JOSM" are the fix that requires a more advanced editor as JOSM, this last fix need a manual repositioning of object in addition of modifying tags.
- Topic: issues are filterable by theme, such as roads, cycling, sport ...
The slippy map
Osmose is build upon a Slippy Map. The number of displayed issue markers is limited. Zoom to show more. The markers on the map will open a popup on click.
The information popup
When you click on one of the issue markers, a popup appears. It contains:
- The type of issue
and a brief description of the issue, with optionally some focused problematic details about this object.
- The identification of the problematic element(s), with for each one:
- type and identifier of the element ; the link goes to OpenStreetMap.org to show the default map centered on that element, opening the element browse panel (with all details for their actual current tags, version, links to show its history, and options to edit it there with the default editor...) and marking its geometry on the map.
- rawedit – a link to the raweditor for this element.
- josm – a link to the JOSM editor to load this element; JOSM must be running and the JOSM remote control must be enabled.
- edit – a link to the internal Osmose tags editor for this element ; this opens a panel on the right of the map
- The list of all tags for this element when the issue was detected,
and the last date this issue was detected (and still not closed).
- Some links to display the area containing the element (as it is currently in the database, without any fix):
- osmlink – display the area on the default map of OpenStreetMap.org
- potlatch/id – edit the area in the default editor of OpenStreetMap.org (iD or Potlatch, depending on local user preferences)
- josm_zone – load data in the area into the external JOSM editor; JOSM must be running and the JOSM remote control must be enabled.
- ✖ – close the popup
- ? – open a new browser tab with help about this specific type of issue on the wiki and tips on how to fix it (see the list of issues).
- E – open a new browser tab with full details about this detected issue.
- The suggested tags correction (with + for adding a missing tag, − for deleting this tag, or ~ for modifying it).
- The fix-josm link applies this correction in JOSM; JOSM must be running and the JOSM remote control must be enabled. Only that element will be loaded with the corrections applied.
- The fix-edit link applies this correction in the internal Osmose tags editor
- The change status for this issue:
- corrected: issue will no longer be shown on the Osmose map; if the applied correction is not sufficient in the current version of the element, it will reappear again latter. Remember to mark as corrected the issue you corrected by your edits. This allows everyone to follow the correction progress. If you don't click this link, but the issue has been worked on and corrected, this issue will disappear automatically on the next analysis.
- false positive : if the issue reported by Osmose is not an error in fact, then it is a false positive (except spelling errors). An issue marked as a false positive will be masked by Osmose (as long as the element version is not changed). It is not possible, so far, to write descriptive information on about false positive cases, but the list of false positives can help improve the analysis performed by Osmose. If the element is later modified, it may reappear on the next analysis.
Among the map layers available (under the upper right icon), most are standard basemap choices. There are however to some layers generated by the tool:
- Osmose issues: markers layer
- Osmose Issues Heatmap : density of issues, the intensity of red depends on the number of issues present and the items filtered.
Several other layers are generated by separate tools but may be also displayed on top of the selected basemap, including
- layers showing administrative boundaries for the most common levels;
- coverage by Mapillary street-level photos along major road axis in rural areas, and streets in cities, to help mapping complex intersections, lanes, signals, equipments, and POIs, when aerial photography is not sufficient.
Osmose allows direct correction of issues through an integrated tags editor. It allows you to view erroneous elements edit their tags. To use the editor you must be logged in Osmose with your OSM account.
- In red,
overstrikedand preceded by a − sign, the existing tags that will be removed when saving; the cross button on the right will restore them to preserve their original value.
- In black and preceded by a white = sign, the existing tags that will be kept unchanged when saving; the cross button on the right will remove them when saving.
- In orange and preceded by a ~ symbol, the existing tags whose value will be changed when saving; the cross button on the right will restore them to preserve their original value.
- In green and preceded by a + sign, the new tags that will be added when saving; the cross button on the right will remove them, these tags won't be saved.
Tags are free fields. They must all contain a key and a value separated by an "=". The last line is always empty after the + sign, and allows adding a new tag.
When you press thebutton, changes go into a queue. They are sent to the OSM server when you follow the link "Save" on the main menu. The button automatically set the issue marker status as corrected. Note that the queued data is still not applied to the OSM database, it is kept only with your personal online session, even if the marker is no longer visible on the "Osmose issues" layer.
In the Save window, the changeset input fields (Comment, Source, Type) will be stored in the changeset's tags. The "Reuse changeset" checkbox allows to reuse, if possible, the last changeset that Osmose has created rather than creating a new one.
Help and issue description
A detailed description and a guide to the correction is available on the list of issues. Same help is also available from popup.
How does it work ? The backend
- Analysis: for each type of issue detected by Osmose there is an analysis. They are written in python language. Details on OpenData merge analyser.
- Regions: analyses are made by region with a freq of 1 or 2 days.
Other features and tools
Testmode by username
This mode is an interesting feature, which is list of issues per user. This can be useful if you want to just correct your own mistakes, for example, or to race with your co-worker ;). It is accessible via the URL: http://osmose.openstreetmap.fr/byuser or from your user name once logged into Osmose. From the list of issues you can return to the map and display only issues affected to you.
This tool is an addition to the issues "open relationship", "self-intersection" and "too many ways" in "administrative" in the slippy map. It allows you to check after sending a modification to the server, if the errors have been corrected.
Raw Data Editor Rawedit
Osmose allows correction of errors by the simply editor rawedit. Its use requires a sufficient understand of language XML and an identification OAuth with OpenStreetMap.
It is possible to make permalinks to the editor as crude http://rawedit.openstreetmap.fr/edit/relation/123456
This editor lets you make changes to any object type, especially the complex and long to load in other editors.
Osmose provides an API to external tools get analysis results.
- API 0.2 JSON API
Issues reporting API
Issues can be reported by programs to Osmose-frontend.
Analyser send XML issues list to the frontend by HTTP POST to http://osmose.openstreetmap.fr/control/send-update, with the following parameters:
- source: id of source used by the frontend.
- code: password associated with the source.
- content: multipart/form-data encoding of the issue file, described below.
With cURL this gives something like:
curl --request POST --form source='mysource' --form code='mycode' --form content=@myxmlfile http://osmose.openstreetmap.fr/control/send-update
To obtain a source id and code contact the Osmose team.
The issue file can erase and replace all issues on the frontend from this analyser or be diff file and only update frontend issue database.
Issues file format
<?xml version="1.0" encoding="UTF-8"?> <analysers timestamp="2014-10-17T09:52:58Z"> <!-- Result of an analyser run (many) --> <analyser timestamp="2014-10-17T09:52:58Z"> <!-- Class definition (many) id: referenced by <error class="" /> item: osmose frontend target item level: matter of issue in OSM data, from "1" as major to "3" as minor tag: key-words of issue (not a set of OSM tags) --> <class item="3210" tag="highway,tag,fix:chair" id="1" level="2"> <!-- title of class, one line per language --> <classtext lang="en" title="noexit on way with multiple exits" /> </class> <!-- Issue entry (many) class: refer to <class id="" /> subclass: group the same kind of issue (optional) --> <error class="1" subclass="1"> <!-- Issue location marker --> <location lat="43.2899342" lon="5.3618622" /> <!-- erroneous object (none or many), all details are optional --> <node version="3" user="FrançoiseR" lat="43.2899342" lon="5.3618622" id="33806225"> <tag k="noexit" v="yes" /> </node> <!-- optional subtitle, one line per language --> <text lang="en" value="Tag power_source is deprecated: generator:source" /> <!-- Optional fixes --> <fixes> <!-- One way of fix the issue (many) --> <fix> <!-- Objets to patch (many) id: OSM object id, 0 to create a new one (node only) --> <node id="33806225"> <!-- Tags patch (many) action: one of "delete", "create", "modify" k: tag key v: tag value --> <tag action="delete" k="noexit" /> </node> </fix> </fixes> </error> </analyser> </analysers>