JA:MLIT PLATEAU/imports outline/manual

From OpenStreetMap Wiki
Jump to navigation Jump to search
How to import PLATEAU CityGML to OSM
How to import PLATEAU CityGML to OSM

PLATEAU 建物データ: OpenStreetMap へのインポート手順

国土交通省3D都市モデル Project PLATEAU で公開される三次元の建物オブジェクトについて、 OpenStreetMap へインポートする手順を記載します。 Plateauプロジェクトでは、LOD1とLOD2のデータが公開されていますが、このインポートではLOD1を対象とします。

事前準備

必要となるソフトウェア

  • Java[1] と JOSM[2] をPCにインストールしておいてください。
  • OSM Wiki のアカウントを作成しておいてください。
  • OSM のインポート作業専用アカウントを作成しておいてください。
    • アカウント名の一部に import の文字列を含めて下さい。
    • 例: [あなたのアカウント名]_import、など
  • JOSMの「設定」→「表示」メニューで「タイトルバーにユーザ名を表示」にチェックを入れます。
    • 作業中のアカウント名が常に確認できるため、作業時のアカウント間違いを防止することができます。
  • JOSM todo プラグインのインストール
    • 以下の手順で todo プラグインを使用可能にします。
      • JOSM のメニューを開き、プラグイン設定タブを開きます。
      • todo プラグインにチェックを入れ、 "OK" を押すとプラグインがインストールされます。
      • インストールが終わったら、プラグインを有効化するため、JOSM を再起動します。
      • JOSMの再起動が終わったら、JOSM 画面左側のプラグイン一覧から todo プラグインを有効化します。
      • プラグインが有効化されると、JOSM 画面左側のペインに todo プラグインが表示されるようになります。

対象エリアの既存OSMデータクレンジング

インポート作業を行う前に、対象のエリアをJOSMでダウンロードし、妥当性検証処理をします。

既存データの妥当性検証を行っておくことで、品質に関する課題があった際に、既存データの問題かインポート作業の問題かを切り分けることができます。

コミュニティへの事前告知

インポート作業を行う前に、次に列挙する方法で、OSMや関連するコミュニティに告知をします。

  • talk-ja ML にて事前にインポート作業を行う周知を行う(インポートの1週間以上前)。
    • 周知の際には、作業を行うアカウント名対象の市町村開始予定日、の3点を記載します。
  • OSM Japan Discord の #01_アナウンスと告知 チャンネルで事前にインポート作業を行う周知を行う(インポートの1週間以上前)。
  • MLIT PLATEAU/imports outline|OSM Wiki に、作業用のアカウントを記載する。
  • talk:MLIT PLATEAU/imports outline 討論履歴 に目を通しましょう。特に 反対・懸念のご意見 について、作業における懸念事項として注意してください。
  • できれば、 #OSMjp ハッシュタグをつけて各種SNSで情報拡散する。告知とともに協力者も募る。

図1. PLATEAU建物 LOD1 データをOpenStreetMapへインポートするプロセス全体像

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

  1. 'Java 11'を推奨
  2. インポート作業では JOSM を利用します。iD では作業できません。

インポート作業専用OSMアカウントでJOSMにログインする

インポート作業を始める前に、インポート作業専用OSMアカウントでJOSMにログインしておきます。

JOSMでのOSMへのログイン方法は、OAuth 2.0です。 JOSMの「設定」画面の「OSM Server」のメニューで「Use OAuth 2.0」にチェックを入れます。

注意:OAuth 1.0a は使用停止となり、JOSM Ver19017でOAuth 1.0aのチェックボタンは削除されました。

  • 使用しているブラウザでインポート作業用のアカウントで「openstreetmap.org」にログインしなおします。
  • JOSMの設定画面で「Remove token」でトークンを削除します。
  • 「今すぐ認証(全自動)」(トークンがない時)または「新しいアクセストークン」(トークンがある時)のボタンを押すと、ブラウザ側のOpenStreetMapのサイトで「認証が必要」との画面が出るので「許可」のボタンを押します。
  • ブラウザで新しいタブが開き「OK」との文字が表示されます。
  • JOSMが自動的にトークンを取得します。
  • JOSMの設定画面を閉じます。

JOSMのメインウインドウのタイトルバーに「Java OpenStreetMap Editor (@****_import)」のように自分のインポートアカウントが表示されていることを確認します。
タイトルバーのインポートアカウント表示がおかしくなり、メールアドレスが表示されることがあるかもしれません。その場合は「アクセストークンのテスト」ボタンでアクセスしているIDを確認して下さい。

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

1. 変換済みPLATEAUファイル置き場 から、自分が作業したい地域を選択し、選択した地域のGMLファイルと一次変換済みのOSMファイルをダウンロードします。[1]

Osm-data-top.png


2. 変換済みPLATEAUファイル置き場 からダウンロードした zip ファイルを任意のフォルダに展開します。 展開後のフォルダは、以下の構成になります。

52372711_bldg_6697_op.zip
┣━ 52372711_bldg_6697_op.gml  -- PLATEAU 3Dとリモデル(GMLファイル)
┗━ 52372711_bldg_6697_op.osm  -- 変換済みOSMファイル

***.gml ファイルをテキストエディタで開き、<uro:surveyYear>2017</uro:surveyYear> のように記載されている行を探します。 uro:surveyYearには、元データが作成された測量年が格納されます。この例の場合、2017年に測量が行われたデータが元になっていることを示しています。

  • この測量年を確認しておくことで、地物の新旧を判定する際に役に立ちます。例えば、実際の地物との比較や、既存 OSM データが 測量年より新しくマッピングされている、もしくは 最新の衛星画像/航空写真との比較で PLATEAU データのほうが古いかなどの際に参照が可能です。

1st-validation : 変換済みOSMファイルを検証する

解凍したフォルダに含まれている ***.osm をJOSMで開き、妥当性検証を行います。 .osmファイル自体にエラーが発生していないかどうかを検証してください。

  • PLATEAUデータとOpenStreetMapデータの構成の違いにより、エラーが発生することがあります。
    • PLATEAUは1mm以下の精度で作られていますが、OpenStreetMapは 1~2cm の精度に丸められてしまいます。PLATEAUからOSMに変換された際に 1cm程度の揺らぎが生じ、本来、面で接していた建物がオーバーラップしているなどのエラーが発生することがあります。
  • PLATEAUデータは、自治体ごとにデータ品質にばらつきがあります。
    • 例えば、建物同士が面で接している場合に、接点に共通ノードを設けて接するようにする場合と、共通ノードを設けずに隣接建物のライン上に置く(数学的には有効桁数の関係で線上にポイントを置くことはできないので1mm以下の極めて近い場所に隣接していることになります)場合があります。後者の場合には先の有効精度の関係でオーバーラップしたり、一か所の点でくっついていたりする場合があります。一か所の点でくっついている建物は共有ノードを介して接続した建物に修正する必要があります。

対処例:

  • 重複ノード: 同じ座標に複数のノードが重なっています。
    • 統合しても問題ない場合がほとんどです。
    • 妥当性検証の✔マークの右隣に表示されている「選択された問題を修正」ボタンを押すことで、自動で修正してくれます(重複ノードを統合)。
  • ウェイが同じ区間を2度含んでいる:エリアのウェイのどこかの2点間が同一線上に並んでいる箇所があります(ノードが飛び出しているように表示されます)。
    • 飛び出しているノードを削除します。
  • 「リレーションメンバーのロールがプリセットBuildingのテンプレートの式'building=*'に含まれていません。」:type=buildingoutlineがマルチポリゴンになっており、マルチポリゴンがbuilding:part=*となっている場合に発生します。マルチポリゴンのbuilding:part=*building=*に変更します。

注意:

  • 建物の接続状況を変更すると 建物リレーション(Relation:type:building)にも影響します。リレーションを適切に修正し、妥当性検証結果に警報・警告が発生しないようにしてください。
  • どうしてもエラーが修正できない場合は、対象ファイルのインポートをあきらめ、コミュニティに報告してください。

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

'GitHub / citygml-osm' より最新版の変換スクリプトをダウンロードします。

ダウンロードしたファイルを展開します。 展開したフォルダにcitygml-osm-jar-with-dependencies.jarconversion.json の2つのファイルが含まれています。2つのファイルを、PLATEAU の建物データを展開したファイルへ格納します。

(任意のフォルダ)
 ┣━ 52372711_bldg_6697_op.gml  -- PLATEAU 3Dとリモデル(GMLファイル)
 ┣━ 52372711_bldg_6697_op.osm  -- 変換済みOSMファイル
 ┣━ citygml-osm-jar-with-dependencies.jar
 ┗━ conversion.json
  1. G空間情報センター 3D都市モデル(Project PLATEAU)ポータルサイト から直接GMLファイルをダウンロードすることもできます。G空間情報センターからダウンロードする場合、解凍用の空きディスク容量と第1次変換作業が必要になります。

2nd : 既存のOSM建物データを取得する

この手順では、スクリプトを実行することで、変換対象地域のOpenStreetMapに編集済みの現在の建物(building=*)をOpenStreetMapからダウンロードして ***.org.osmファイルとして保存します。

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

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

 java -Dfile.encoding=utf-8 -jar citygml-osm-jar-with-dependencies.jar 2nd
  • 上記のコマンドを実行することにより、 ***.osm ファイルが対象とするデータの範囲に存在している既存の建物データが OpenStreetMap からダウンロードされ、 ***.org.osm 形式として保存されます。
(任意のフォルダ)
 ┣━ 52372711_bldg_6697_op.gml
 ┣━ 52372711_bldg_6697_op.osm
 ┣━ 52372711_bldg_6697_op.org.osm  -- 現時点でOpenStreetMapに編集済みの建物データ
 ┣━ citygml-osm-jar-with-dependencies.jar
 ┗━ conversion.json

2nd-validation : 既存OSM建物データの建物を検証する

JOSMを使って ***.org.osm を開き、妥当性検証でエラーが発生していないかどうかを検証してください。

妥当性検査で何らかの警報や警告が発生した場合は、それらを修正したうえで再度、2ndコマンドを実行してください。 この作業を妥当性検査で警報/警告が発生しなくなるまで続けます。

JOSM-validation-ok.png

  • 警報/警告が発生している状態で以降の処理を続けても、正しく処理が行われません。

3rd : 既存建物との重複チェックスクリプト

既存の建物データ(***.org.osm)を取得したら、PLATEAUデータとの重複チェックを行うコマンドを実行します。

ターミナル(あるいはコマンドラインや Powershell など)から以下のコマンドを入力します。

 java -Dfile.encoding=utf-8 -jar citygml-osm-jar-with-dependencies.jar 3rd
  • 上記のコマンドを実行することにより、 '現時点でOpenStreetMapに編集済みの建物データ(***.osm)' と 'PLATEAUデータ***.org.osm' との重複チェックが行われ、***.mrg.osm ファイルが出力されます。
(任意のフォルダ)
 ┣━ 52372711_bldg_6697_op.gml
 ┣━ 52372711_bldg_6697_op.osm
 ┣━ 52372711_bldg_6697_op.org.osm
 ┣━ 52372711_bldg_6697_op.mrg.osm  -- 既存建物との重複チェック済みデータ
 ┣━ citygml-osm-jar-with-dependencies.jar
 ┗━ conversion.json
  • 同じディレクトリに複数のgmlファイルが存在している場合、スクリプトは格納されているすべての gml ファイルに対して実行されます。
  • ただし、'OpenStreetMapに存在している編集済みの建物データ(***.org.osm)'は随時更新されています。予期しない処理を防止するため、作業対象のファイルはひとつづつ処理を行ってください。


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

拡張子 ***.mrg.osm のファイルを JOSM で読み込みます。

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

.mrg.osmの編集

この手順は、拡張子***.mrg.osmファイルを編集し、インポートしたくないオブジェクトを削除することが目的です。

注意 : ***.mrg.osm の操作は一般的なJOSMの編集操作とはやや概念が異なっています。この段階では、PLATEAUを適用したくない「オブジェクトの削除」操作のみ行ってください。
  • アップロード禁止!
  • タグの変更 禁止!(特に"MLTI_PLATEAU:fixme"の変更は絶対禁止)
  • タグの削除 禁止!(特に"MLTI_PLATEAU:fixme"の削除は絶対禁止)
  • ノードやオブジェクトの位置変更禁止!
  • その他、オブジェクトの削除以外の操作は禁止!

JOSM で拡張子 ***.mrg.osm を開き、内容の確認・編集を行います。

  • このデータの編集を行う際は、「オブジェクトの削除」以外の操作は絶対に行わないでください。
  • 例えば、「オブジェクトの移動」や「タグの変更」などを行うと、スクリプトの処理が正常に完了しません。
  • 後続のupdate処理では、不要なオブジェクトが削除されているだけで、タグ内容は変更されていないことを前提として動作します。オブジェクトの内容が変更されると「動作不定」になってしまいます。


拡張子***.mrg.osmでは、建物に"MLIT_PLATEAU:fixme"=*のタグがついているものとついていないものがあります。 それぞれの値の意味は以下のとおりです。

  • "MLIT_PLATEAU:fixme"=* タグがない
    • : 既存OSMデータがなく、PLATEAUデータで新規に作成するオブジェクトです。
  • "MLIT_PLATEAU:fixme"=PLATEAUデータで更新されています
    • : 既存OSMデータが存在し、PLATEAUデータで形状やタグなどを変更するオブジェクトです。
  • "MLIT_PLATEAU:fixme"=更新前です
    • : 既存OSMデータそのままのオブジェクトです。(citygml v1.4.2以降で出ます)
  • "MLIT_PLATEAU:fixme"=delete 削除されます
    • : 既存OSMデータが存在しますが、PLATEAUデータによって不要になった既存建物オブジェクトです。アップロード処理で削除されます。3個の既存オブジェクトを2つにする場合など、既存データで削除が必要なオブジェクトに付加されています。

次節の「建物データの確認・判断」でこのタグに基づきオブジェクトに問題がないか確認していきます。

このタグは次のupload.osmデータを作成する処理で削除されるため、最終的なインポート成果(OSMデータ)には影響がありません。

建物データの確認・判断

背景画像に Bing や Plateau-tile など、なるべく撮影年度の新しい衛星写真をセットします。

建物の存在確認は衛星写真とオブジェクトを見比べます。

CityGMLが作成された測量年(CityGMLファイルに記載。手順1.5)がごく最近の場合は、衛星写真のほうが古く、建物が写っていないこともあります。 明らかに現状建物が存在しない場所にオブジェクトがある場合、または衛星写真と建物形状が異なる場合は、建物が新しくなった可能性もあります。

建物データすべてについて、下記の項目を1つずつ確認します。

もれなく確認するために、todoプラグインを活用することをお勧めします。

準備:フィルタの設定

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

  • "MLIT_PLATEAU:fixme"=*
  • type:node

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

準備:todoリストの使い方

  1. JOSMのフィルタでtype:nodeにチェックを入れ、ノードを非表示にします。
  2. Ctrl+Aですべての建物オブジェクトを選択し、todoプラグインの ボタンでtodoリストへの追加を行います。
  3. フィルタでtype:nodeのチェックを外し、ノードを表示させます。
  4. todoプラグイン左下のズームボタン(または右クリックメニューの「ズーム」)で、選択したオブジェクトにズームします。次項目に記載されている内容を確認します。
  5. 確認が終わったら、todoプラグインの✔マーク ボタンを押します。
  • todoのリストの順序は変更できないため、順番にやるとあちこちに飛ばされます。このエリアのいくつかの建物をまとめてチェックした、という時は、その複数のオブジェクトを選択し、todoリストウインドウの右下のボタンを押す(または右クリックメニューの「選択されているマーク」)と、選択したオブジェクトをまとめてチェックすることができます。

オブジェクトの確認・作業内容

  • 既存OSMデータとPLATEAUデータの確認
  1. "MLIT_PLATEAU:fixme"=* のフィルタを有効化し、かつ反転フィルターをONにします(フィルタの"I"の欄にチェックを入れる)。
  2. 建物のオブジェクトが重なっているものについて、"MLIT_PLATEAU:fixme"=更新前ですのタグがついているオブジェクト(既存のOSMデータ)から"MLIT_PLATEAU:fixme"=PLATEAUデータで更新されていますのタグがついているオブジェクト(PLATEAUデータ)に置換されることを示しています。背景の航空写真とも見比べて、正しい建物の組み合わせであり置換して問題ないと判断した時はそのままとします(後の処理で自動的に置換されます)。置換したくない場合は、"MLIT_PLATEAU:fixme"=更新前です"MLIT_PLATEAU:fixme"=PLATEAUデータで更新されていますのタグがついているオブジェクトを2つとも削除します(OSMデータがPLATEAUデータで置換されません)。
  3. "MLIT_PLATEAU:fixme"=delete 削除されますのタグがついているオブジェクト(既存のOSMデータ)については、削除しても問題なければそのままとし(後のアップロード処理時に削除されます)、削除せずに既存のOSMデータを残したい場合は、ここではそのオブジェクトを消しておきます。
  4. この確認を建物ごとに順次行います。
  5. 既存OSMデータの数が多い場合は、"MLIT_PLATEAU:fixme"=* のフィルタを有効化し、かつ反転フィルターをONにした状態でtype:nodeにもチェックを入れた上で、上記の「準備:todoリストの使い方」の操作を行いながらオブジェクトの確認をすると、todoリストを活用してもれなく確認ができます。
  • 既存OSMデータがない場所でのPLATEAUデータの確認
  1. "MLIT_PLATEAU:fixme"=* のフィルタを有効化し、かつ反転フィルターをOFFにします(フィルタの"I"の欄のチェックを外す)。これで既存OSMデータがない場所のPLATEAUオブジェクトのみが選択されます。
  2. type:nodeにもチェックを入れた状態で、上の「準備:todoリストの使い方」の操作に従い、フィルタ処理されたすべてのオブジェクトをtodoリストにいれます。個々のオブジェクトに対して次の確認を行います。
  3. 建物データの背景写真に建物が写っているか?背景写真と建物データの形状が同じか?
    1. 同じ場合:問題なし。次の建物に進みます。
    2. 異なる場合:PLATEAUオブジェクトが新しいと判断(予想)できる場合は、そのオブジェクトをそのままにします。複数の衛星写真と見比べて絶対このオブジェクトは間違っている、と思う時は、そのオブジェクトを削除します。


  • 建物の位置ずれ・タグの値がおかしいと思った場合でも、このインポートの手順では触らないでください。位置修正などは、インポート後の通常編集で行ってください。
  • 衛星写真に建物が写っているのに建物オブジェクトがないと思っても、建物を追加しないでください。個別トレースは、インポート後の通常編集で個別に行ってください。

すべての建物データの確認が終わったら、次のステップに進みます。

注:ここでの編集内容は、通常のJOSMでの編集とは異なり、編集したオブジェクトの見た目がそのまま反映されません。

上記の操作がどのような結果になるかを理解するまでは、アップロード完了後にそのメッシュのエリアのOSMデータを再ダウンロードしてデータが意図通りになっているか確認することをお勧めします。


迷ったときは?

Plateauデータは様々なデータソースから作成されており、特に都市中心部を離れた郊外は、データの品質にばらつきがあります。

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

  • 既存データの履歴の確認
    • 既存データの履歴等を確認し、どのような情報をもとに形状が描かれたかを確認します。
    • Plateauデータは第1弾公開の自治体は、主に2016年頃に取得したデータから作成されていることが多いですが、その後に更新されているものもあります。Plateauデータの測量年と、OSMデータの更新履歴(最近のsurvey情報をもとに形状が描かれた建物かどうか)などを比較して判断して下さい。
  • 最新の航空写真を参照する
    • 2016年以降にOSMへ追加された建物オブジェクトであったとしても、参照している航空写真/衛星写真が2016年よりも古い写真であるケースがあります。
    • 2016年より新しく撮影された航空写真と比較することによって、データの信憑性を確認することが可能です。
  • それでもどうしても判別や決断ができない
    • 作業を一時中断し、対象のメッシュ名を付記してDiscordチャンネル等で相談してください。

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


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

チェックが完了した拡張子***.mrg.osmファイルを、名前を付けて保存します。

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

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

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

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

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

java -Dfile.encoding=utf-8 -jar citygml-osm-jar-with-dependencies.jar 4th

これにより、 checked.osm を元にした upload.osm が生成されます。

osm.org へのアップロード

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

アップロード前にupload.osm のレイヤを選択した状態で、下記の確認を行います。

建物リレーションの確認

建物リレーションは部分によって高さの異なる複合ビルやマンションを想定していますが、独立した建物もまとめてリレーションになっている場合があります。 こうした独立した建物をリレーションから外したい場合は、下記のように確認・変更を行います。

  1. フィルタ機能で type:node を選択し、ウェイのみの表示にした状態で、検索ウインドウでtype=building(建物リレーション) を検索し、検索した結果をtodo プラグインの + ボタンを押して、対象のオブジェクトのチェックリストを作成します。
  2. フィルタのチェックをすべて外します。
  3. todoリストで1つのアイテムを選択し、航空写真を確認します。1つの複合建物として問題なければ✔マーク ボタンを押して次のアイテムに進みます。
  4. 航空写真を見て、独立した建物が接していると判断した場合(例:外壁が接した工場の建物、学校の校舎と渡り廊下など)には、次のように建物リレーションを変更します。
    1. 一部の建物partをリレーションから外したい場合
      1. 外したい建物partのウェイをリレーションのメンバーから外します。外した建物のbuilding:partタグをbuildingに変更します。
      2. リレーションのoutlineのウェイが、外した建物を含まないように変更します。
      3. 外した建物partの高さが一番高かった場合は、変更後のリレーションのメンバーの中で一番大きいheightタグの値をoutlineのウェイのheightにコピー&ペーストします。
    2. すべての建物partを独立させたい場合
      1. すべての建物partをリレーションのメンバーから外し、building:partタグをbuildingに変更します。
      2. outlineのウェイを削除します。
      3. メンバーが0になった建物リレーションを削除します。

Tips:建物に建造年(start_date)の値が入っている場合があります。建物の部分によってstart_dateが異なる場合は、別の建物と判断しても良いでしょう。

妥当性検査

妥当性検査ウインドウの✔マーク ボタン(ショートカット:Shift+V)を押して、妥当性検査を行います。 妥当性検査の結果として表示される警告やエラーを確認し、修正の必要があれば修正して下さい。

例えば、縁の部分で重複するノードのエラー処理や、メンバーが存在しないリレーション、建物の重なり、重複ノードなどが発生することがあります。

対処方法の例:

  • 重複ノード
    • : 同じ座標に複数のノードが重なっています。統合しても問題ない場合が多いので、✔マークの右隣の「選択された問題を修正」ボタンを押すと自動で修正してくれます(重複ノードを統合)。
  • 建物の重なり
    • : 航空写真に合わせて、建物を変形・移動させて重ならないようにして下さい。
    • : パッと見で重なってないように見える場合、近接するノードを結合したり、複数のウェイが接しているところの直線上に存在する、消しても問題なさそうなノードを削除したりすると、解消することが多いです。ノードに問題がなさそうな場合、四角形の形状であれば直交化(ショートカット:q)もしてみてください。
  • 「リレーションメンバーのロールがプリセットBuildingのテンプレートの式'building=*'に含まれていません。」
    • : type=buildingoutlineがマルチポリゴンになっており、マルチポリゴンがbuilding:part=*となっている場合に発生します。マルチポリゴンのbuilding:part=*building=*に変更します。

以上の確認を行った上でデータのアップロードを行います。

アップロード

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

sourcecommentはアップロードのダイアログの「説明」タブで記入できます。 それ以外のタグ(ここではsource_ref)は「設定」タブの「変更セットのタグ」の欄で追加します。「変更のアップロード」のボタンを押す際は、この「設定」タブを表示した状態で押して下さい。

(Tips:下記の2行をコピーした状態でアップロードダイアログの「タグの貼り付け」ボタンを押すとコピーしたテキストを貼り付けできます。)

source = MLIT_PLATEAU
source_ref = https://wiki.openstreetmap.org/wiki/MLIT_PLATEAU/imports_outline

また、変更セットのコメントとして、以下のフォーマットを推奨します。

メッシュ番号は、作業を行っているファイルの先頭8桁の数字です。

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

例: Plateau import: 新座市 53395404

アップロード時に競合の発生が生じた場合

アップロード処理中に競合が発生する場合があります。 発生した場合は、通常の解決と同様、競合の解決処理を実施してください。(アップロードするためには、競合を解決する必要があります)

よくある競合の一例として、「削除しようとしたノードが他のウェイから参照されている」が発生する場合、OSMにある他のオブジェクト(ウェイ)がそのノードをメンバーに含んでいることが原因です。

この場合はこのノードを削除すると他のウェイを崩してしまう可能性があるので、相手のデータで解決する(ノードを残す)方が安全です。

再度アップロードする際は、上記のsource_refのタグが消えてしまうので、再度のsource_refをコピー&ペーストした上でアップロードして下さい。

インポート作業終了後、JOSMのログインアカウントを通常アカウントに戻すことを忘れないでください。

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

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

インポートが完了したメッシュ番号に対し、インポート済みであることを記載してください。

また、申し送り事項がある場合は、備考欄にその内容を記載してください。

事後検証

インポート実施後の確認・作業

上記のインポート実施後、OSMのデータ品質向上のために下記の作業を行うことを推奨します。

タグなし独立ノードの削除

citygml v1.4.12でタグなし独立ノードが発生する不具合は解決されましたので、この作業は基本的には不要です。

v1.4.11以前の変換スクリプトで作成したデータでは、既存のOSMデータ(建物)をPlateauデータで更新した場合に、既存の建物のノードがそのまま残ってしまいます。 そこで次のようにして削除します。

  1. JOSMで対象エリアのデータをダウンロード
  2. フィルタ機能でtype:node & untagged & -child(type:way)のフィルタを追加し、有効にすると、タグのない独立したノードのみを表示できます。
  3. 実際にノードを見て、削除しても問題なければ削除します。
  4. データをアップロードします。

建物の種別のタグ変更

建物の種別のタグ(building=*)について、OSMのタグ付けに合わせて変更した方が良いものがあります。 (citygmlでの種別がOSMに比べて粗いために発生します。)

  • 駅舎:building=warehouseになっているものをbuilding=train_stationに変更する。
  • 学校の校舎:building=publicになっているものをbuilding=shcoolに変更する。

公共施設の名称

Plateauデータにはいくつかの公共施設の名称が付加されています。(対象:学校・警察署・郵便局・消防署・大きな病院など)

これらはOSMに既存データが存在することが多く(過去のKSJ2インポートによるもの)、データの統合などを行った方が良い場合があります。必要により下記を参考に編集して下さい。

なお、自治体によると思いますが、忠岡町、茅野市のPlateauデータでは名称ではなく、キーとしての数字がnameに設定されていました。この場合は適切な名称に変更します(数字と名称の対応ファイルがcitygml/codelists/Building_name.xmlにあります)。

  1. 学校
    • 学校は多くの場合は敷地に名前をつけます。(1つの敷地に小学校と中学校など、複数の学校がある場合を除く)。1つの敷地に1つの学校のみの場合は、建物についた学校名称を外して敷地に名前をつけます。(敷地のエリアが書かれてない場合は現状のままでも構いません。)
    • もし他に学校のノードがあれば、その内容も敷地に統合します。
  2. 病院
    • 大きな総合病院は、敷地エリアが描かれて名称が設定されていることがあります。病院は複数の機能の建物が建っていることがあるので、建物に病院名が入っていてもそのままで良いと思います。
  3. 警察署・消防署
    • ほとんどの場合、1つの建物として存在すると思うので、問題なければ、近くに警察署・消防署のノードがあれば建物に統合します。
  4. 交番・郵便局
    • 独立した建物の場合と、大きな建物に入っている場合と形態は様々だと思います。よく知らない場合は、近くにノードがあれば建物の上に置いておくにとどめた方が良いでしょう。
    • その場所を知っている場合は、建物にamenityタグのノードを統合したりしてもよいと思います。

なお、名称が入っている施設の対象は(おそらくですが)、下記のファイルに記載のものが対象だと思います。

  • G空間情報センターで公開されている、Project Plateauデータのうち、「関連データセット」というデータセットの中の「landmark.geojson」にある施設

このgeojsonファイルをJOSMで開き、すべてのノードをtodoリストに入れて、1つずつ確認すればもれなくできます。なお、OSMデータを編集する際は、geojsonとは別のレイヤーにダウンロードし、geojsonのノードをOSMにアップロードしないよう気をつけてください。

既存建物・道路との重なり

Plateauデータと統合していない既存建物があったり、道路と建物が重なることがあります。 気づいた範囲内で不要な建物を削除したり、道路を編集します。

(検討中) Tasking Manager を用いた検証作業

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

現地チームによる現地調査

TBD


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