JA:MLIT ISJ/import2019 outline/workflow

From OpenStreetMap Wiki
Jump to navigation Jump to search

共通手順

Overpass Turboでの状況確認

Overpass APIで以下のクエリを利用して、対象地域に既存データがあるかどうかを確認します

https://overpass-turbo.eu/s/M1f

例では"弘前市"となっている部分を対象の市町村名に変更して検索してください。

// fetch area “Japan” to search in

{{geocodeArea:弘前市}}->.searchArea;

ISJ JP Overpass.png

検索結果が返ってこない場合、地域内にデータを含まない場合の手順に進んでください。

もし検索結果が返ってきた場合、地域内にデータを含む場合の手順に進んでください。

市町村区域内にplace=neighbourhoodなどを含まない地域

対象地域のインポート用データをJOSMで読み込み

Github上にアップロードされているファイルから、対象地域の.osmファイルを選び、JOSMにレイヤとして読み込みます。(.osmファイルをドラッグ&ドロップ、あるいはJOSMメニューの"ファイル"->"開く")

ISJ JP layer1.png


JOSMで読み込まれたデータをOSMサーバへアップロードします。

JOSMにインポート用のアカウントを設定することを忘れないでください。

アップロード時のタグには、以下を指定してください。

  • source=ISJ_2019
  • source_ref=

アップロード時の変更セットコメントには以下を指定してください。[地域名]の部分を、対象となる市町村の名前に変えてください。

``` ISJ import for [地域名] #ISJ_import_2019 ```

インポート完了のチェックリスト

Github上のチェックリストに、対象の地域のインポートが終わった旨のチェックを入れてください

市町村区域内にplace=neighbourhoodなどを含む地域

Overpass Turboからのデータ読み込み

ISJ JP OverpassMenu.png

Overpass Turboで検索した結果を、JOSMで読み込みます。

Overpass Turboの"エクスポート"から、"JOSMで読み込み"を選択してください。

ISJ JP OverPass Export.png

JOSMで、対象のデータがレイヤとして読み込まれます。JOSM側の遠隔操作をオンにしておくことを忘れないでください。

ISJ JP OverPass Result.png


対象地域のインポート用データをJOSMで読み込み

Github上にアップロードされているファイルから、対象地域の.osmファイルを選び、JOSMにレイヤとして読み込みます。(.osmファイルをドラッグ&ドロップ、あるいはJOSMメニューの"ファイル"->"開く")

これで、JOSM上には、レイヤが2つ (Overpass経由のデータ、インポート用.osmファイル) できることになります。

Conflationプラグインのセット

JOSMのプラグイン "Conflation"を有効化します。

有効化することで、JOSM右側のパネルにConflation(合成)が表示されるようになります。

"設定"ボタンをクリックすると、以下の画面が表示されます。

ISJ JP Conflation.png

左上の"Reference"と"Subject"の項目に、合成対象となる地物とそのレイヤを登録します。

  1. "Reference": インポート対象となる.osmファイルのレイヤを選択し、レイヤ上のノードをすべて選択して"固定"を押します
  2. "Subject": Overpass経由でダウンロードしたデータレイヤを選択し、レイヤ上のノードをすべて選択して"固定"を押します
  3. Distance、の値を100にします。(100メートル以内の類似ノードを、合成可能性がある対象として認識。デフォルトは30)
  4. "方式" の設定は、One to OneとDisambiguating、のどちらでもかまいません
  5. "Generate match"を押して、照応を開始します
ISJ JP Conflation3.png

match, Reference only, Subject only の意味

合成、のパネルに表示されているそれぞれの項目の意味は以下のとおりです。

  • match: 同一のノードである可能性が高いノードのペア
  • Reference only: Reference側レイヤ(インポート対象.osmファイル)にのみデータが存在
  • Subject only: Subject側レイヤ(OSM既存ノード)にのみデータが存在

matchとして検知されたノードへの対応

Matchしたノードは、"合成"することで、タグの確認と修正を行うことができます。

この例の場合、既存ノードは、XX町N丁目、の、分割した後のquarterノードのようです。

ISJ JP Conflation4.png

合成が行える場合(matchしている2つのノードが、同じneighbourhoodを意味している場合)は、適切なタグを選択して"適用"ボタンを押すと、Subjectレイヤにデータがマージされます。 この場合、ノードの履歴は既存のOSMデータが引き継がれます。

今回の例は合成できる対象ではありませんので、インポート対象ファイルのレイヤ上で.osm側の対象ノードを選択し、JOSMの「選択をマージ」から、レイヤ間のノード複製を行います。

Reference onlyとして検知されたノードへの対応

.osmファイル側のみにデータが存在している状態です。

右クリックから対象のデータにズームすることができるので、念の為周囲を目視で確認し、重複するノードがなさそうな場合は"合成"ボタンを押してSubjectレイヤ側に合成します。

Subject onlyとして検知されたノードへの対応

Subject側レイヤにのみ存在するノードです。参考情報として表示されるだけで、特に大きな意味はありません。

データのアップロード

合成が完了したら、Overpass経由でダウンロードしたレイヤを選択し、OSMサーバにアップロードします。

JOSMに設定しているアカウントを、インポート用のアカウントにすることを忘れないでください。

データ合成の際の判断基準

以下に、想定されるケースとその対処方針を列挙します。

既存のデータに name:ja などが入っている

既存データに定義されているタグは、is_inなども含め、なるべくそのまま残します。

なお、name:ja_rmではなくname:ja-Latnではないか、という指摘があるかもしれませんが、今回の編集ではその部分の修正を行いません。

すでにquarterとneighbouhrhoodに分割されたデータが存在する

quarterのみが存在する場合

  • 既存のquarterノードを残す
  • 新しく neighbourhoodノードを追加する
  • quarter>neighbourhoodの階層は作らない

例: 合成結果として、以下が生成される quarterとして、既存データの "ひばりヶ丘" neighbourhoodとして、インポートファイルからの"ひばりヶ丘一丁目"

neighbourhoodのみが存在する

neighbourhoodデータを合成する

  • ジオメトリ: 既存データの位置を利用する
  • タグ: 適切なタグ階層を確認し、nameタグをISJ基準にあわせる

quarterとneighbourhoodの両方が存在する

既存のquarterノードを残す 既存のneighbourhoodノードを合成する

  • ジオメトリ:既存データの位置を利用する
  • タグ: 適切なタグ階層を確認し、nameタグをISJ基準にあわせる

マージする際のnameの記述方法

位置参照情報の記述(丁目、の数字が漢数字)に統一する

例: name=ひばりヶ丘1、は、name=ひばりヶ丘一丁目、に修正される

placeタグが、エリア(ポリゴン)に対して付与されている場合

行政地名の場合、対象のエリアはplaceではなくadmin boundaryであることが正しいため、そのエリアを外周とするboundary relationを作成する

温泉地などの「通称地名」あるいは「自然地名」のタグ付について

○○集落、○○温泉郷、などの地名として quarter, neighbourhoodあるいはhamletが使用されていた場合は、place=localtyに変更(?要議論)