JA:MLIT ISJ/import2019 outline/workflow
共通手順
Overpass Turboでの状況確認
Overpass APIで以下のクエリを利用して、対象地域に既存データがあるかどうかを確認します
https://overpass-turbo.eu/s/M1f
例では"弘前市"となっている部分を対象の市町村名に変更して検索してください。
// fetch area “Japan” to search in
{{geocodeArea:弘前市}}->.searchArea;
検索結果が返ってこない場合、地域内にデータを含まない場合の手順に進んでください。
もし検索結果が返ってきた場合、地域内にデータを含む場合の手順に進んでください。
市町村区域内にplace=neighbourhoodなどを含まない地域
対象地域のインポート用データをJOSMで読み込み
Github上にアップロードされているファイルから、対象地域の.osmファイルを選び、JOSMにレイヤとして読み込みます。(.osmファイルをドラッグ&ドロップ、あるいはJOSMメニューの"ファイル"->"開く")
JOSMで読み込まれたデータをOSMサーバへアップロードします。
JOSMにインポート用のアカウントを設定することを忘れないでください。
アップロード時のタグには、以下を指定してください。
- source=ISJ_2019
- source_ref=
アップロード時の変更セットコメントには以下を指定してください。[地域名]の部分を、対象となる市町村の名前に変えてください。
``` ISJ import for [地域名] #ISJ_import_2019 ```
インポート完了のチェックリスト
Github上のチェックリストに、対象の地域のインポートが終わった旨のチェックを入れてください
市町村区域内にplace=neighbourhoodなどを含む地域
Overpass Turboからのデータ読み込み
Overpass Turboで検索した結果を、JOSMで読み込みます。
Overpass Turboの"エクスポート"から、"JOSMで読み込み"を選択してください。
JOSMで、対象のデータがレイヤとして読み込まれます。JOSM側の遠隔操作をオンにしておくことを忘れないでください。
対象地域のインポート用データをJOSMで読み込み
Github上にアップロードされているファイルから、対象地域の.osmファイルを選び、JOSMにレイヤとして読み込みます。(.osmファイルをドラッグ&ドロップ、あるいはJOSMメニューの"ファイル"->"開く")
これで、JOSM上には、レイヤが2つ (Overpass経由のデータ、インポート用.osmファイル) できることになります。
Conflationプラグインのセット
JOSMのプラグイン "Conflation"を有効化します。
有効化することで、JOSM右側のパネルにConflation(合成)が表示されるようになります。
"設定"ボタンをクリックすると、以下の画面が表示されます。
左上の"Reference"と"Subject"の項目に、合成対象となる地物とそのレイヤを登録します。
- "Reference": インポート対象となる.osmファイルのレイヤを選択し、レイヤ上のノードをすべて選択して"固定"を押します
- "Subject": Overpass経由でダウンロードしたデータレイヤを選択し、レイヤ上のノードをすべて選択して"固定"を押します
- Distance、の値を100にします。(100メートル以内の類似ノードを、合成可能性がある対象として認識。デフォルトは30)
- "方式" の設定は、One to OneとDisambiguating、のどちらでもかまいません
- "Generate match"を押して、照応を開始します
match, Reference only, Subject only の意味
合成、のパネルに表示されているそれぞれの項目の意味は以下のとおりです。
- match: 同一のノードである可能性が高いノードのペア
- Reference only: Reference側レイヤ(インポート対象.osmファイル)にのみデータが存在
- Subject only: Subject側レイヤ(OSM既存ノード)にのみデータが存在
matchとして検知されたノードへの対応
Matchしたノードは、"合成"することで、タグの確認と修正を行うことができます。
この例の場合、既存ノードは、XX町N丁目、の、分割した後のquarterノードのようです。
合成が行える場合(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に変更(?要議論)