Osmose

From OpenStreetMap Wiki
Jump to: navigation, search
Available languages — Osmose
· Deutsch · English · español · français · italiano · Nederlands · 日本語
Interface overview

Introduction

Osmose [1], 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.

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 is only available in some areas:

Coverage Map

A complete and updated list of supported 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...

The project does not cover the world due to lack of technical resources. Contact the project to offer resources to support new countries.

The source code is available on github : backend and frontend under GPL.

Usage

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

Information Popup

When you click on one of the issue markers, a popup appears. It contains:

  1. A brief description of the issue
  2. A description of the erroneous objects
    • the type (here a way) and the identifier. The link point to dedicated page on OpenStreetMap.org
    • a link to the raweditor: rawedit
    • a link to the JOSMeditor, JOSM remote control must be enabled
    • a link to the internal Osmose tags editor: rawedit
    • List of element's tags
  3. A collection of links to area
    • displaying the area of ​​OpenStreetMap
    • editing area in iD
    • editing area in JOSM
  4. Buttons
  5. * "x": closing the popup
  6. * "?" help on issue kind on the wiki
  7. * "E": full details of the issue
  8. The suggested corrections, with addition, deletion or modification of tags. The link "fix-josm" apply this correction in JOSM, JOSM remote control must be enabled. The link "fix-editor" apply this correction in the internal Osmose tags editor
  9. Change issue status
    corrected 
    is no longer shown on Osmose. If the correction is not sufficient, it will reappear again latter. Remember to mark as corrected the work you do. This allows everyone to follow the correction progress. Nevertheless, the 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. 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.

Layers

Heatmap, issues density

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.

Osmose integrated tags editor

Osmose tags Editor with a deleted tag, a modified one and three added

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 and preceded by a "-" tags removed, the right cross will restore them.
  • In white and preceded by an "=" tags that are not changed, the right cross delete them.
  • In orange and preceded by a "~" tags whose value has been changed, the right cross will restore the original value.
  • In green and preceded by a "+" tags added, the right cross delete them.

Tags are free fields. They must all contain both a key and a value separated by an "=". The last line is always empty and allows the addition of a new tag.

When you Valid, changes go into a queue. They are sent to the OSM server when you follow the link "Save" on the main menu. The "Valid" button automatically set the issue marker status as corrected.

Osmose tags editor before sending to OSM servers

In the save window changeset fields are changeset's tags. The "Reuse changeset" option allow if possible to reuse 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.

Statistics update are here: update and here update matrix. Analyse scheduler of OSM-Fr server can be found on jenkins.

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.

Analyzer relationship

See Servers/analyser.openstreetmap.fr

administrative border drawn by the parser

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

A relationship edge Administrative displayed in 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.

APIs

User API

Osmose provides an API to external tools get analysis results.

  • API 0.1 (and 0.1.1), deprecated
  • 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>