furuhashilab / 2023gsc_WataruYoshida

Creative Commons Attribution 4.0 International
0 stars 0 forks source link

作業マニュアル #1

Open Yosi0530 opened 11 months ago

Yosi0530 commented 11 months ago

PLATEAU 建物データ: OpenStreetMap へのインポート手順 日本語版 ドラフト v0.99

68747470733a2f2f77696b692e6f70656e7374726565746d61702e6f72672f772f696d616765732f382f38382f506c6174656175496d706f7274576f726b666c6f772e706e67

図2. PLATEAU建物 LOD1 データをOpenStreetMapへインポートするプロセス詳細

OSMを使う意義

OSMにはAPIが豊富に揃っているためOSMでインポートするのが早い

image

1. 対象地域の CityGML ファイルをダウンロードする

作業対象のファイルを、G空間情報センターからダウンロードします。

ファイルのダウンロードが終わったら、 zip ファイルを展開します。建物データは、展開したディレクトリの udx/bldg 配下に格納されています。

gml ファイルをテキストエディタで開き、 <uro:surveyYear>2017</uro:surveyYear> のように、測量年を確認する。

198915896-906cc5e9-1e12-4e86-b188-feda4564991e

2. 変換スクリプト citygml-osm のダウンロード

yuuhayashi / citygml-osm より変換スクリプトをダウンロードします。

ダウンロードしたファイルを展開し、citygml-osm-jar-with-dependencies.jar を、 PLATEAU の建物データ( citygml 形式, デフォルトでは udx/bldg 配下)を展開したファイルに格納します。

3. 1st-3rdまでのスクリプトを回す

ターミナル(あるいはコマンドラインや Powershell など)を起動し、citygml を展開したフォルダに移動します。

移動したら、以下のコマンドを入力します。

$ java -Dfile.encoding=utf-8 -jar citygml-osm-jar-with-dependencies.jar 1st $ java -Dfile.encoding=utf-8 -jar citygml-osm-jar-with-dependencies.jar 2nd $ java -Dfile.encoding=utf-8 -jar citygml-osm-jar-with-dependencies.jar 3rd それぞれのコマンドでは、以下の処理が行われます。

4. .mrg.osm ファイルをJOSMで開く

拡張子 .mrg.osm のファイルを JOSM で読み込みます。 mrg.osm ファイルをJOSMでインポート後、背景に OSM画像レイヤを表示するとわかりやすくなります。

2023-01-20

JOSM を使う以下の作業は、読み込まれたファイルを編集して、インポートしたくないオブジェクトを削除することが目的です。

5. todo プラグインのインストール

以下の手順で todo プラグインを使用可能にします。

198911154-c6b9fd8b-7a69-4aca-a641-459e12be4b3e

アップロード、保存は外す

196918703-5976044e-25ad-4111-986f-015fcc1d637b

6. フィルタの設定

JOSM のフィルタに、以下4つのフィルタを設定します。

合成されたファイルである .mrg.osm では、既存の OSM データと PLATEAU データが同じ領域で重なる部分があった場合、対象のオブジェクトに "MLIT_PLATEAU:fixme" タグが付与されています。この対象のオブジェクトをインポートすべきか人間が確認し、適切に処理する必要があります。

基本的に、この "MLIT_PLATEAU:fixme"=* を処理してゆくことで、アップロード可能な状態のファイルを作成することができます。 JOSM のフィルタを利用することで、対象のオブジェクトを発見しやすくしましょう。

*`"MLIT_PLATEAU:fixme"=**に含まれる値の解説 "MLIT_PLATEAU:fixme"=*`には、以下2つのどちらかの値が格納されています。

7. .mrg.osmの編集

JOSM で .mrg.osm を編集します。

このデータの編集を行う際、「オブジェクトの移動」や「タグの変更」など、「オブジェクトの削除」以外の操作は絶対に行わないでください。

背景画像に Bing や Maxar など、なるべく撮影年度の新しい衛星写真をセットし、明らかに現状存在しない建物オブジェクトがある場合、そのオブジェクトを削除します。このとき、 1. の手順で確認した gml データの測量年と背景画像の撮影年を比較し、常に新しいほうに合わせてオブジェクトの削除を行ってください。

"MLIT_PLATEAU:fixme"=*が付与されたデータへの対応

type:node"MLIT_PLATEAU:fixme"="delete 削除されます" のフィルタを有効化した状態で、"MLIT_PLATEAU:fixme"="delete 削除されます" をインバース(反転)し、ショートカットキー <Ctrl + A> を押し、レイヤー内のオブジェクトを全選択します。

これにより、オブジェクトを選択する際にノードが選択されないようになります。

"MLIT_PLATEAU:fixme"="PLATEAUデータで更新されています" に関する処理

  1. 建物形状: PLATEAU 側の形状を利用
  2. タグ: 既存と PLATEAU の両方をマージしたもの(タグのマージ方針については GitHub を参照してください)

    * 次に、レイヤーを選択し、 type:node と "MLIT_PLATEAU:fixme"=PLATEAUデータで更新されています のフィルタを有効化した状態で、ショートカットキー <Ctrl + A> を押し、レイヤー内のオブジェクトを全選択します。

    * タグが付与されたオブジェクトが全選択されたら、その状態で todo プラグインの + ボタンを押して、対象のオブジェクトが todo リスト内に格納され、チェックリストを作成します。

    198913056-9eff3b3c-b61e-4a17-9768-bb52225e1733
  1. もしオブジェクトの形状やタグに問題がなく、インポートができると判断できれば、 todo プラグインの ✔マーク ボタンを押します。
  2. もし "MLIT_PLATEAU:fixme"="PLATEAUデータで更新されています" のタグがあるオブジェクトの位置が間違っている場合、そのオブジェクトを削除してください。削除することで、既存の OSM データが優先され、形状の更新が行われなくなります。
    • 次の処理で使うため、 "MLIT_PLATEAU:fixme"="PLATEAUデータで更新されています" のタグは削除しないでください。

"MLIT_PLATEAU:fixme"="delete 削除されます" に関する処理

* 更新されていますのオブジェクトの手順と同様、レイヤーを選択し、 type:node"MLIT_PLATEAU:fixme"="delete 削除されます" のフィルタを有効化した状態で、ショートカットキー <Ctrl + A> を押し、レイヤー内のオブジェクトを全選択します。

  1. osm.org のタイル画像や、撮影年度の新しい衛星写真と比較し、削除して問題ないことが確認できた場合は、todoプラグインの ✔マーク ボタンを押してリストから消込を行い、このタグ("MLIT_PLATEAU:fixme"="delete 削除されます")をもつオブジェクトをそのままにしてください。

  2. この建物形状を残したい場合は、 "MLIT_PLATEAU:fixme"="delete 削除されます" のタグを削除してください。

  3. また、すぐ近くに、置き換え対象となっている建物形状が存在することが多いはずです。フィルタのオン/オフを行ってオブジェクトを表示させ、近隣の建物形状を適宜修正してください。場合によっては、近くに存在する建物オブジェクトから残したい建物オブジェクトに対し、 name などのタグをコピーしてくることも重要です。

  4. 残したい建物オブジェクトと重複しているすべてのオブジェクトを削除することで、対象の建物形状を残すことができるようになります。

迷ったときは? 多くの場合、 PLATEAU の建物データは非常に優秀で、形状の置き換えに問題はありません。

ただし、 PLATEAU データも完璧ではありません。現在の建物の状況がどうなっているか、 PLATEAU データセットの建物形状が本当に正しいものなのかどうか、 Bing などの航空写真では判別が付きづらい場合、以下の手がかりを参考に情報を集めてください。

既存データの履歴の確認

最新の航空写真を参照する

それでもどうしても判別や決断ができない

なお、 PLATEAU データのインポートを行った地域は、作業完了後、 Tasking Manager を使って形状などの事後確認プロセスを設ける予定です。大きな間違いの場合は、事後確認プロセスの段階でチェックすることも可能です。

8. チェックしたファイルを 名前をつけて保存

チェックが完了したファイルを、名前を付けて保存します。

JOSM のメニューから、あるいは JOSM のレイヤー一覧から、対象のレイヤーを保存します。

保存する際は、ファイル名を checked.osm としてください。

9. アップロード用ファイルへの変換(4thスクリプトを回す)

checked.osm ファイルを、アップロード用ファイルに変換します。

ターミナルから、以下のコマンドを入力します。

$ java -Dfile.encoding=utf-8 -jar citygml-osm-jar-with-dependencies.jar 4th これにより、 checked.osm を元にした upload.osm が生成されます。

10. osm.org へのアップロード

JOSM で upload.osm を開き、 osm.org へアップロードします。

レイヤで upload.osm を開いた状態で 妥当性検証 を行います。

妥当性検証の結果として表示される警告やエラーを確認し、その上でデータのアップロードを行ってください。 例えば、縁の部分で重複するノードのエラー処理や、メンバーが存在しないリレーションなどが発生することがあります。

アップロードする際には、変更セットに対して以下のタグを付与してください。

source = MLIT_PLATEAU source_ref = https://wiki.openstreetmap.org/wiki/MLIT_PLATEAU/imports_outline また、変更セットのコメントとして、以下のフォーマットを推奨します。 メッシュ番号は、作業を行っているファイルの先頭8桁の数字です。

Plateau import: [対象の市町村] [メッシュ番号] 例: Plateau import: 新座市 53395404

11. OSM wiki の対象リストを編集する

OSM wiki に、インポート対象となる各市町村ごとのファイル名一覧を作成しています。

12. 事後検証

12-1. Tasking Manager を用いた検証作業 インポート作業完了後、OSM Japan Slack#01_アナウンスと告知 チャンネルで完了報告を行ったうえで、事後検証用の Tasking Manager プロジェクトを準備してください。利用可能な Tasking Manager が用意できない場合は Slack にて相談すれば、コアチーム がサポートしてくれます。

12-2. 現地チームによる現地調査 TBD

以上ですべての工程の終了です。