JA:Osmose

From OpenStreetMap Wiki
Jump to navigation Jump to search
画面の概要

Osmose は、数多くある品質改善ツールの一つで、 OpenStreetMap データ中の問題を検出することができます。幅広い問題の種類を検出します。サードパーティー製データセットの統合やマップマッチングにも役立ちます。

ウェブサイト: osmose.openstreetmap.fr

警告 1: Osmose/keepright などのためにマッピングしないでください。あなたが理解できている現実のエラーだけを修正したり、正しく改善する方法を知るためのものです!!!

警告 2: 機械的な編集はやめてください。自動的に編集できる内容であればosmoseはそうしていたでしょう!

利用方法

OpenStreetMapデータで検出された異常を、地図上に表示するという考え方です。

カテゴリの一覧

  • 項目。左の一覧は、解析(異なるタイプの問題チェック)をしていくつかのカテゴリに分け、色分けされています。それぞれの項目には独自の記号があり、それぞれ地図の内容を表示するかどうかを設定できます。項目によっては解析は1対1で対応するとは限らず、同じ種類の解析の組み合わせであることもあります。
  • 深刻度: 誤りは1(最も深刻)~3(重要性が低い)の深刻度でも分類されており、色のついた円で表現されています。深刻度はメニュー項目のドロップダウンリストで絞り込みできます。
  • 修正手段: 問題によってはおすすめの修正方法が表示されます。修正手段フィルターはそのうち1つを表示します。オンラインはオンラインのOsmoseタグエディターで修正できる修正項目です。JOSMはより高機能のエディターであるJOSMが必要な修正項目であり、タグの修正に加えて手作業でオブジェクトを再配置する必要があるものです。
  • トピック: テーマ(道路、サイクリング、スポーツなど)によって問題を絞り込みできます。

スリッピーマップ

Osmoseは「スリッピーマップ」上に構築されています。表示できる問題のマーカー数には限りがあり、ズームするともっと表示されます。地図上のマーカーをクリックするとポップアップが開きます。

情報ポップアップ

問題マーカークリック時の情報ポップアップの例

問題マーカーのどれか1つをクリックすると、ポップアップが現れ、次のようなものが表示されます。

  1. 問題の種別
    と問題の簡単な説明があり、オプションとしてこのオブジェクトの問題にフォーカスした詳細が記載されることがあります。
  2. それぞれのエレメントの種別と識別子:
    • エレメントの種別識別子 ; OpenStreetMap.orgの専用のページにリンクしており、このエレメントを中心とした標準マップを表示します。さらにエレメント閲覧パネル(実際のタグ、版数、履歴表示リンク、デフォルトのエディタ、その他で編集するオプションといったあらゆる詳細)を開き、マップ上の幾何形状をマークします。
    • josmJOSMエディタへのリンクで、このエレメントを読み込みます; JOSMを実行中で、 JOSM遠隔操作を有効化している必要があります。
    • iDiDエディタへのリンクでこのエレメントを読み込みます。
    • edit – このエレメント用の内部Osmoseタグエディタへのリンク; マップの右側にパネルが開きます
  3. 問題検出時のこのエレメント用の全てのタグの一覧。
  4. エレメント(現時点ではデータベース内にあり未修正)を含むエリアを表示するためのリンク:
    • osm-show – OpenStreetMap.orgのデフォルトマップ上でこのエリアを表示
    • osm-edit – OpenStreetMap.orgのデフォルトエディタ (iD または Potlatch、ローカルのユーザー設定による)内でこのエリアを編集
    • josm-zone – 外部のJOSMエディタ内にこのエリアのデータを読み込む; JOSMを実行中でJOSM遠隔操作を有効化している必要があります。
    • details – この検知された問題に関する詳細が全て記載された新しいブラウザのタブを開きます。
  5. この問題が検知された(かつクローズされていない)最新日付。
  6. ボタン:
    • OSMウィキ上のヘルプ: 新しいブラウザタブを開き、ウィキ上のこの種の問題に関するヘルプと修正方法のヒント(問題の一覧参照)を表示します。
    • 偽陽性(誤検出): Osmoseが報告した問題が実際はエラーではない場合(綴りまちがいを除く)を偽陽性(誤検出)といいます。「偽陽性(誤検出)」とマークされた問題はOsmoseが非表示にします(エレメントのバーションが変更されていない限り)。今のところ、誤検出について説明を書くことはできませんが、誤検出の一覧は、Osmoseの解析の改善に役立てられます。後でエレメントが修正された場合、次回の解析で再表示されることがあります。
    • 修正済み: Osmoseのマップに表示されなくなります。もしエレメントの現バージョンの修正が不十分な場合は、後で再び現れることがあります。修正を行ったら修正済みにマークするようにしてください。そうすれば、修正の状況が誰にも分かります。このリンクをクリックしなくても、正しく修正した場合、問題は次回の解析で自動的に消滅します。
  7. 提案されたタグの修正 (抜けているタグを追加する場合は+、このタグを削除する場合は、修正する場合は~)。
    • fix-josmのリンクはこの修正をJOSM内で適用します。JOSMを実行中でJOSM遠隔操作が有効化されていなければなりません。修正が適用されるエレメントだけが読み込まれます。
    • fix-editのリンクはこの修正を内部Osmoseタグエディタで適用します
  8. ポップアップを閉じる

レイヤー

問題の密度のヒートマップ

利用できる地図レイヤー(右上のアイコンの中)のうち、多くは標準ベース地図の選択肢です。このツールがいくつかのレイヤを追加します。

  • Osmose issues: マーカー表示レイヤー
  • Osmose Issues Heatmap : 問題の密度、赤の濃さは問題の存在する数と項目の絞り込みに依存します。

以下のように、別のツールによるものであるながら、選択したベース地図上に表示されるレイヤもあります

  • よくあるレベルの行政界を表示するレイヤ。
  • 航空写真が不十分な場合の、複雑な交差点、レーン、信号機、設備、POIなどのマッピングを支援するための、地方や都市部の街路の主要な道路中心線沿いのMapillaryによる街路レベル写真の網羅状況。

ヘルプと問題の説明

右側にある情報パネルが利用できます。"i"ボタンでオープン/クローズできます。現在選択中のマーカーに関するドキュメントの内容は、タイトル、詳細修正支援、避けるべき落とし穴、ソースコードなどです。

この内容は解析のソースコードに含まれています。あなたもGithub上のソースコードに対して変更を提案することで文書の改善に貢献できます。Githubウェブサイト上で鉛筆アイコンを使ってGithubのガイドに従って変更リクエスト(プル・リクエスト)を上げてください。

Osmose内蔵タグエディター

Osmoseタグエディターでタグを1つ削除し、1つ変更し、3つ追加

Osmose'では、内蔵タグエディターを使用して問題を直接修正できます。問題のある要素を表示して、タグを編集することができます。エディターを利用するには、OsmoseにOSMのアカウントでログインする必要があります。

  • 赤い取消線付きの文字の先頭にサインがあるものは、保存時に既存のタグが削除されます。右側の交差する×ボタンでもとの値を復元します。
  • 黒い文字の先頭に白い= サインがあるものは、保存時に変更されない既存のタグです。右側の交差する×ボタンで保存時に削除します。
  • オレンジの~記号が先頭にあるものは、保存時に値が変更されます。右側の交差する×ボタンで元の値を復元します。
  • 緑色の+サインが先頭にあるものは、保存時に追加される新しいタグです。右側の交差する×ボタンで削除し、これらのタグは保存されません。

タグは自由入力フィールドです。必ずキーと値を持ち、"="で区切る必要があります。+ サインの後の最後の行は常に空行にして、新しいタグが追加できるようにします。

完了ボタンを押すと、変更はキューに入ります。そしてメインメニューの「保存」リンクをクリックしたときにOSMサーバーに送られます。完了ボタンを押すと、自動的に問題マーカーが修正済みに設定されます。マーカーが「Osmose の課題」レイヤから消えていたとしても、キューイングされたデータはまだOSMデータベスには反映されておらず、あなたの個人的なオンラインセッションで保持されているだけであることに注意してください。

OSMサーバーに送信する前のOsmoseタグエディター

保存ウィンドウ内では、変更セット入力欄(コメント、情報源、種別)は変更セットのタグ内にストアされます。「変更セット再利用」チェックボックスで、Osmoseが作成した最新の変更セットが再利用可能であれば、新しい変更セットを作らずに再利用します。

その他の特徴とツール

ユーザーのテストモード

これは興味深い機能で、ユーザーごとの問題の一覧を表示するモードです。これは例えば自分の間違いだけを修正したい場合や、友達と競争するとき(笑)などに便利です。URLを指定して http://osmose.openstreetmap.fr/byuser からアクセスするか、Osmoseにログインしてユーザー名からアクセスすることができます。問題の一覧から地図に戻ると、自分に関する問題のみが表示されます。

リレーションの解析

詳しくはServers/analyser.openstreetmap.frをご覧ください。

パーサーが指摘した行政境界

このツールはスリッピーマップ上の行政境界で、「閉じていないリレーション」「自己交差」「多すぎるウェイ」の問題を加えます。変更をサーバーに送信した後で、問題が修正されたかどうかをチェックすることができます。

生データエディター Rawedit

行政境界のリレーションをraweditで表示

Osmoseでは、シンプルなエディターであるraweditで問題を修正できます。利用するにはXMLに関する十分な理解と、OpenStreetMapのOAuthでの認証が必要です。

http://rawedit.openstreetmap.fr/edit/relation/123456 のようにしてエディターに対する生のリンクを作成することができます。

このエディターはどのような種類のオブジェクトでも、特に、他のエディターでは複雑かつ長すぎて開けないものでも変更できます。

機能リクエストとバグレポート

frontend チケットシステムはこちら ←
backend チケットシステムはこちら ←

どう動作するのか?

ひとつのfrontendと複数のbackend

このツールは2つの部分から成っています:

  • frontend: 目に見える部分でスリッピーマップ上に問題を表示します。
  • backends: 目に見えない部分で、OpenStreetMapのデータを解析し、問題を検出します。

カバーエリアは全世界で、最新の完全な情報提供地域の一覧はこちらの Osmose の API で確認できます。すべての地域が同じ方法で解析されているわけではなく、ある種類の誤りを検出するには、言語、第三者のデータ(例えばオープンデータ)の利用可否などの特殊性に依存します・・・

各国に固有の設定や新しい言語をサポートするためにリソースを提供してくださる場合は、プロジェクトにご連絡ください:

ソースコードはGPLに基づきGithub の backendfrontend から入手できます。

  • 解析: Osmose が検出したそれぞれの種類の問題のために解析があります。python, SQL または MapCSS言語で書かれています。詳細はOpenDataマージアナライザーを参照してください。
  • 更新は毎日行われます。

最新の統計は、update及びupdate matrixから見ることができます。Osm-Frサーバーの解析スケジューラーはjenkinsにあります。

API

Osmoseは外部ツールが解析結果を受け取るためのAPIを提供しています。

問題報告API

問題をプログラムから Osmose-frontend に報告することができます。

Analyser はXMLの問題リストを http://osmose.openstreetmap.fr/control/send-update に HTTP POST で以下のパラメータを付けて frontend に送ります。

  • source: frontend で使用される情報源のIDです。
  • code: 情報源に関連付けられたパスワードです。
  • content: 下記の問題報告ファイルを multipart/form-data エンコーディングしたものです。

Curl では次のように行うことができます。

curl --request POST --form source='mysource' --form code='mycode' --form content=@myxmlfile http://osmose.openstreetmap.fr/control/send-update

source のIDと code を取得するには、 Osmose チームに連絡してください。

この analyzer からの問題ファイルは frontend にあるすべての問題を消去し置き換えることができ、 frontend の問題データベースを更新するだけならば差分ファイルにすることができます。

問題ファイル書式

<?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>
          <!-- Objects 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>

新しいチェックの書き方

チェックは内部アナライザーまたは結果をOsmose-QA Frontendにアップロードする外部ツールとして書くことができます。

内部アナライザーはOsmose Backendが実行しており、下記が可能です:

  • 単一のOSMオブジェクトチェック: Python または MapCSSで記述。
  • 地理空間演算を含む複数オブジェクトチェック: PostGISのSQLで記述。
  • オープンデータのマップマッチング: カラムをOSMのタグにマッピングさせる構成を記述。

文書化

各チェック("class"という名前です)の文書はソースコードで定義されている文字列のセットから成っています。これらの文字列の翻訳はTransifexで行われています

クラスの各インスタンスは任意に"subtitle"も持つことができます - これはインスタンスに固有の詳細を提供する自由テキストです(例えば、この問題に関連するKey)。理想的にはこれは有効な文で書かれているべきです。

データキー 必須 マークダウン
有効化
説明
title 問題を記述する短い文字列(「問題は何か?」への回答).
理想的にはタイトルにはOSMのタグ付けを含めるべきではありません。
タイトル(及び正しい名詞や頭文字)の最初の文字だけが大文字で文末の終止符は不要です。
detail 問題を説明する長めの文字列(「これがなぜ問題なのか?」への回答)。有効な文から成り、終止符で終わります。
fix 問題の修正方法に関する全般的なガイド。有効な文から成り、終止符で終わります。
trap 問題の修正中によくある誤りや複雑にしすぎ。有効な文から成り、終止符で終わります。
example 問題の例。有効な文から成り、終止符で終わります。
ここには通常画像があります (マークダウン ![](imgURL)).
source このクラスのソースコードへのURL。
resource この問題を発生させるのに使うデータへのURL。

APIでの提供方法を示す例。