Open mapconcierge opened 2 years ago
たたき台の作業手順全体グラレコです。
インポート作業を行う前に、次に列挙する方法で、OSMや関連するコミュニティに告知をしましょう。
図1. PLATEAU建物 LOD1 データをOpenStreetMapへインポートするプロセス全体像
図2. PLATEAU建物 LOD1 データをOpenStreetMapへインポートするプロセス詳細
作業対象のファイルを、G空間情報センターからダウンロードします。
ファイルのダウンロードが終わったら、 zip ファイルを展開します。建物データは、展開したディレクトリの udx/bldg
配下に格納されています。
gml
ファイルをテキストエディタで開き、 <uro:surveyYear>2017</uro:surveyYear>
のように、測量年を確認する。
yuuhayashi / citygml-osm より変換スクリプトをダウンロードします。
ダウンロードしたファイルを展開し、citygml-osm-jar-with-dependencies.jar
を、 PLATEAU の建物データ( citygml
形式, デフォルトでは udx/bldg
配下)を展開したファイルに格納します。
ターミナル(あるいはコマンドラインや 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
それぞれのコマンドでは、以下の処理が行われます。
.osm
形式に変換し、 .osm
形式として保存する.osm
ファイルのデータ範囲のデータを osm.org
からダウンロードし、 .org.osm
形式として保存する.osm
と .org.osm
を比較・マージすることで mrg.osm
形式のファイルを出力し、保存するこの処理により、同じ名称で拡張子の異なるファイルが4種類 ( .gml
, .osm
, .org.osm
そして .mrg.osm
) できあがることになります。
なお上記のコマンドは、配布されているスクリプトに同梱されている run.sh
(あるいは run.bat
)をキックしても、同じ結果が得られます。
スクリプトは、同じディレクトリに格納されているすべての gml
ファイルに対して実行されます。そのため、ファイル数が多いとそれなりに処理時間がかかります。必要に応じて、適宜ディレクトリを分けるなどの対応を行ってください。
.mrg.osm
ファイルをJOSMで開く拡張子 .mrg.osm
のファイルを JOSM で読み込みます。
mrg.osm
ファイルをJOSMでインポート後、背景に OSM画像レイヤを表示するとわかりやすくなります。
JOSM を使う以下の作業は、読み込まれたファイルを編集して、インポートしたくないオブジェクトを削除することが目的です。
以下の手順で todo プラグインを使用可能にします。
JOSM のメニューを開き、プラグイン設定タブを開きます。
todo プラグインにチェックを入れ、 "OK" を押すとプラグインがインストールされます。
インストールが終わったら、インストールを有効化するため、JOSM を再起動します。
再起動が終わったら、JOSM 画面左側のプラグイン一覧から todo プラグインを有効化します。
プラグインが有効化されると、JOSM 画面左側のペインに todo プラグインが表示されるようになります。
JOSM のフィルタに、以下4つのフィルタを設定します。
"MLIT_PLATEAU:fixme"=*
"MLIT_PLATEAU:fixme"="PLATEAUデータで更新されています"
"MLIT_PLATEAU:fixme"="delete 削除されます"
type:node
合成されたファイルである .mrg.osm
では、既存の OSM データと PLATEAU データが同じ領域で重なる部分があった場合、対象のオブジェクトに "MLIT_PLATEAU:fixme"
タグが付与されています。この対象のオブジェクトをインポートすべきか人間が確認し、適切に処理する必要があります。
基本的に、この "MLIT_PLATEAU:fixme"=*
を処理してゆくことで、アップロード可能な状態のファイルを作成することができます。
JOSM のフィルタを利用することで、対象のオブジェクトを発見しやすくしましょう。
"MLIT_PLATEAU:fixme"=*
に含まれる値の解説"MLIT_PLATEAU:fixme"=*
には、以下2つのどちらかの値が格納されています。
"MLIT_PLATEAU:fixme"="PLATEAUデータで更新されています"
"MLIT_PLATEAU:fixme"="delete 削除されます"
.mrg.osm
の編集JOSM で .mrg.osm
を編集します。
update
処理では、不要なオブジェクトが削除されているだけで、タグ内容は変更されていないことを前提として動作します。オブジェクトの内容が変更されると「動作不定」になってしまいます。"MLIT_PLATEAU:fixme"
が付与されていないデータの確認"MLIT_PLATEAU:fixme"=*
のフィルタを有効化し、タグがついていないデータ(つまり、PLATEAU
データそのままのオブジェクト)だけを表示させます。
背景画像に Bing や Maxar など、なるべく撮影年度の新しい衛星写真をセットし、明らかに現状存在しない建物オブジェクトがある場合、そのオブジェクトを削除します。このとき、 1. の手順で確認した gml データの測量年と背景画像の撮影年を比較し、常に新しいほうに合わせてオブジェクトの削除を行ってください。
type:node
と "MLIT_PLATEAU:fixme"="delete 削除されます"
のフィルタを有効化した状態で、"MLIT_PLATEAU:fixme"="delete 削除されます"
をインバース(反転)し、ショートカットキー <Ctrl + A> を押し、レイヤー内のオブジェクトを全選択します。
これにより、オブジェクトを選択する際にノードが選択されないようになります。
"MLIT_PLATEAU:fixme"="PLATEAUデータで更新されています"
に関する処理OSM の既存データから、 PLATEAU データの形状への置換が行われる予定のオブジェクトです。
目視によるチェックや修正作業を行い、アップロードしてもよい形状であることを確認します。
これらの建物形状データは、以下の特性を有しています。
次に、レイヤーを選択し、 type:node
と "MLIT_PLATEAU:fixme"=PLATEAUデータで更新されています
のフィルタを有効化した状態で、ショートカットキー <Ctrl + A> を押し、レイヤー内のオブジェクトを全選択します。
タグが付与されたオブジェクトが全選択されたら、その状態で todo プラグインの +
ボタンを押して、対象のオブジェクトが todo リスト内に格納され、チェックリストを作成します。
背景画像に osm.org
のタイル画像と、撮影年度の新しい衛星写真の2つを設定し、 OSM に存在する既存の建物との位置関係を確認してください。
✔マーク
ボタンを押します。"MLIT_PLATEAU:fixme"="PLATEAUデータで更新されています"
のタグがあるオブジェクトの位置が間違っている場合、そのオブジェクトを削除してください。削除することで、既存の OSM データが優先され、形状の更新が行われなくなります。次の処理で使うため、 "MLIT_PLATEAU:fixme"="PLATEAUデータで更新されています"
のタグは削除しないでください。
"MLIT_PLATEAU:fixme"="delete 削除されます"
に関する処理このタグが付与されたオブジェクトは、何らかの理由で削除が提案されています。
例えば、3戸の既存建物が存在する箇所が、2戸のPLATEAUオブジェクトに統合される場合、統合からあぶれた1戸が ”delete” となります。
更新されています
のオブジェクトの手順と同様、レイヤーを選択し、 type:node
と "MLIT_PLATEAU:fixme"="delete 削除されます"
のフィルタを有効化した状態で、ショートカットキー <Ctrl + A> を押し、レイヤー内のオブジェクトを全選択します。
タグが付与されたオブジェクトが全選択されたら、その状態で todo プラグインの +
ボタンを押して、対象のオブジェクトが todo リスト内に格納され、チェックリストを作成します。
osm.org
のタイル画像や、撮影年度の新しい衛星写真と比較し、削除して問題ないことが確認できた場合は、todoプラグインの ✔マーク
ボタンを押してリストから消込を行い、このタグ("MLIT_PLATEAU:fixme"="delete 削除されます"
)をもつオブジェクトをそのままにしてください。
この建物形状を残したい場合は、 "MLIT_PLATEAU:fixme"="delete 削除されます"
のタグを削除してください。
また、すぐ近くに、置き換え対象となっている建物形状が存在することが多いはずです。フィルタのオン/オフを行ってオブジェクトを表示させ、近隣の建物形状を適宜修正してください。場合によっては、近くに存在する建物オブジェクトから残したい建物オブジェクトに対し、 name
などのタグをコピーしてくることも重要です。
残したい建物オブジェクトと重複しているすべてのオブジェクトを削除することで、対象の建物形状を残すことができるようになります。
多くの場合、 PLATEAU の建物データは非常に優秀で、形状の置き換えに問題はありません。
ただし、 PLATEAU データも完璧ではありません。現在の建物の状況がどうなっているか、 PLATEAU データセットの建物形状が本当に正しいものなのかどうか、 Bing などの航空写真では判別が付きづらい場合、以下の手がかりを参考に情報を集めてください。
既存データの履歴の確認
最新の航空写真を参照する
それでもどうしても判別や決断ができない
なお、 PLATEAU データのインポートを行った地域は、作業完了後、 Tasking Manager を使って形状などの事後確認プロセスを設ける予定です。大きな間違いの場合は、事後確認プロセスの段階でチェックすることも可能です。
名前をつけて保存
チェックが完了したファイルを、名前を付けて保存します。
JOSM のメニューから、あるいは JOSM のレイヤー一覧から、対象のレイヤーを保存します。
保存する際は、ファイル名を checked.osm
としてください。
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
を開いた状態で 妥当性検証
を行います。
妥当性検証の結果として表示される警告やエラーを確認し、その上でデータのアップロードを行ってください。 例えば、縁の部分で重複するノードのエラー処理や、メンバーが存在しないリレーションなどが発生することがあります。
アップロードする際には、変更セットに対して以下のタグを付与してください。
source = MLIT_PLATEAU
source_ref = https://wiki.openstreetmap.org/wiki/MLIT_PLATEAU/imports_outline
また、変更セットのコメントとして、以下のフォーマットを推奨します。 メッシュ番号は、作業を行っているファイルの先頭8桁の数字です。
Plateau import: [対象の市町村] [メッシュ番号]
例: Plateau import: 新座市 53395404
OSM wiki に、インポート対象となる各市町村ごとのファイル名一覧を作成しています。
インポートが完了したメッシュ番号に対し、インポート済みであることを記載してください。 また、申し送り事項がある場合は、備考欄にその内容を記載してください。
インポート作業完了後、OSM Japan Slack の #01_アナウンスと告知 チャンネルで完了報告を行ったうえで、事後検証用の Tasking Manager プロジェクトを準備してください。利用可能な Tasking Manager が用意できない場合は Slack にて相談すれば、コアチーム がサポートしてくれます。
TBD
以上ですべての工程の終了です。
Download the file to be worked on from the G-Spatial Information Center .
CityGML
format.After downloading the file, extract the zip file.
The building data is stored under udx/bldg
in the extracted directory.
Open the gml
file in a text editor and confirm the survey year, as in <uro:surveyYear>2017</uro:surveyYear>
.
Download yuuhayashi / citygml-osm .
Extract the downloaded file and store citygml-osm-osm-jar-with-dependencies.jar
in the file where the Plateau building data (in citygml
format, under udx/bldg
by default) is extracted.
Start a Terminal (or Command Line, Powershell, etc.) and navigate to the folder where citygml
was extracted.
Once there, type the following command.
$ 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
In each command, the following processes are performed.
.osm
format and save as .osm
format..osm
file from osm.org and save it as .org.osm
format..osm
and .org.osm
files to output and save the mrg.osm
format file.This process will result in four files with the same name but different file extensions ( .gml,
.osm,
.org.osm
, and .mrg.osm
).
The above commands will produce the same results as if you had kicked in run.sh
(or run.bat
), which is included in the distributed scripts.
The script will run against all gml
files stored in the same directory. Therefore, if the number of files is large, it will take some processing time. If necessary, please separate directories accordingly.
.mrg.osm
file with JOSMLoad a file with the extension .mrg.osm
into JOSM.
After importing the .mrg.osm
file in JOSM, display the OSM image layer in the background for clarity.
The goal of this process is to edit the imported file and remove any objects that you do not want to import.
Follow these steps to enable the todo plugin.
Set the following four filters in the JOSM filters.
"MLIT_PLATEAU:fixme"=*
"MLIT_PLATEAU:fixme"="PLATEAUデータで更新されています"
(means "Updated with PLATEAU data")"MLIT_PLATEAU:fixme"="delete 削除されます"
(means ""delete" that will be deleted")type:node
In the composite file .mrg.osm
, if there is an overlap between existing OSM data and PLATEAU data in the same area, the target object is given the tag "MLIT_PLATEAU:fixme"
. A human must check if this object should be imported and handle it appropriately.
Basically, by processing the "MLIT_PLATEAU:fixme"=*
, you can create a file that is ready for uploading.
Use the JOSM filter to make it easier to find the target object.
"MLIT_PLATEAU:fixme"=*
"MLIT_PLATEAU:fixme"=*
.
"MLIT_PLATEAU:fixme"="PLATEAUデータで更新されています"
"MLIT_PLATEAU:fixme"="delete 削除されます"
.mrg.osm
Edit .mrg.osm
in JOSM.
update
process operates on the assumption that only unnecessary objects are deleted and that the tag contents have not been changed. If the object content is changed, the operation will be "operation indefinite"."MLIT_PLATEAU:fixme"
is not assignedActivate the filter "MLIT_PLATEAU:fixme"=*
to display only untagged data (i.e., objects with PLATEAU data as is).
Set the background image to a satellite photo taken as recently as possible, such as Bing or Maxar, and delete any building objects that clearly do not exist. At this time, compare the survey year of the gml data confirmed in step 1. with the year the background image was taken, and always delete objects according to the newer year.
"MLIT_PLATEAU:fixme"=*
With the filters type:node
and "MLIT_PLATEAU:fixme"="delete 削除されます"
activated, inverse "MLIT_PLATEAU:fixme"="delete 削除されます"
, press <Ctrl + A> and select all objects in the layer Select all objects in the layer.
This will ensure that no nodes are selected when selecting objects.
"MLIT_PLATEAU:fixme"="PLATEAUデータで更新されています"
Objects that will be replaced by PLATEAU data geometry from existing OSM data.
Visual checks and corrections are performed to ensure that the geometry is acceptable for uploading.
These building shape data have the following characteristics
Next, select the layer, activate the filters type:node
and "MLIT_PLATEAU:fixme" = "PLATEAUデータで更新されています"
, press <Ctrl + A> and select all objects in the layer.
Once all tagged objects are selected, press the +
button in the todo plugin to store the object in the todo list and create a checklist.
Set two background images, a tile image from osm.org
and a new satellite photo of the year taken, and check their position in relation to the existing buildings in OSM.
✔
button in the todo plugin."MLIT_PLATEAU:fixme"="PLATEAUデータで更新されています"
is in the wrong position, delete the object. By deleting it, the existing OSM data will take precedence and the geometry will not be updated.DO NOT delete the tag "MLIT_PLATEAU:fixme"="PLATEAUデータで更新されています"
for use in the next process.
"MLIT_PLATEAU:fixme"="delete 削除されます"
Objects with this tag are proposed to be deleted for some reason.
For example, if an existing building with 3 units is to be merged into a PLATEAU object with 2 units, the one unit that was left out of the merger will be "Deleted".
As with the "PLATEAUデータで更新されています"
object, select the layer, activate the filters type:node
and "MLIT_PLATEAU:fixme"="delete 削除されます"
and press <Ctrl + A> to select all objects in the layer.
Once all tagged objects are selected, press the +
button in the todo plugin to store the target object in the todo list and create a checklist.
If you are satisfied that the object can be deleted by comparing it with the tile image on osm.org
or a new satellite photo of the year it was taken, press the ✔
button in the todo plugin to delete it from the list and leave the object with this tag: "MLIT_PLATEAU:fixme"="delete 削除されます"
.
If you want to keep this building shape, delete the tag "MLIT_PLATEAU:fixme"="delete 削除されます"
.
In addition, there should often be a building shape in the immediate vicinity that is being replaced. Turn the filter On/Off to display the object and modify nearby building features accordingly. In some cases, it is important to copy tags such as name
from nearby building objects to the building object you want to keep.
Delete all objects that overlap with the building object you want to keep so that you can keep the target building shape.
In most cases, PLATEAU building data is very superior and there is no need to worry about replacing the geometry.
However, PLATEAU data is not perfect either. If it is difficult to determine from aerial photos such as Bing what the current building conditions are and whether the building shape in the PLATEAU dataset is indeed correct, use the following clues to gather information.
Check the history of existing data
Refer to the most recent aerial photograph.
Still, we just can't discern or make a decision.
For areas where PLATEAU data has been imported, we plan to use the Tasking Manager to perform a post-check process for geometry, etc., after the work is complete. Any major mistakes can be checked during the post-verification process.
Save the checked file as a file with a name.
Save the target layer from the JOSM menu or from the JOSM layer list.
When saving, name the file checked.osm
.
Convert the checked.osm
file to a file for uploading.
From the Terminal (or Command Line, Powershell, etc.), enter the following command.
$ java -Dfile.encoding=utf-8 -jar citygml-osm-jar-with-dependencies.jar 4th
This will generate upload.osm
based on checked.osm
.
osm.org
Open upload.osm
in JOSM and upload to osm.org
.
Validation
is performed with upload.osm
opened in the layer.
Review any warnings or errors that appear as a result of the validation, and then upload the data. For example, there may be error handling of duplicate nodes at the edges, or relationships where no members exist.
When uploading, please add the following tags to the change set
source = MLIT_PLATEAU
source_ref = https://wiki.openstreetmap.org/wiki/MLIT_PLATEAU/imports_outline
The following format is also recommended as a comment on the change set The mesh number is the first 8 digits of the file you are working on.
Plateau import: [target municipality] [mesh number].
Example: Plateau import: Niiza-shi 53395404
OSM wiki has a list of file names for each municipality to be imported.
For each mesh number that has been imported, please note that it has been imported. If there are any remarks, please state them in the remarks field.
This is the end of the process.
「citygml-osm wiki」に各検証エラーに対する対応方法を記載しました。
止まっていた手順書の改定作業行います!
ベースとなっている手順書ドラフト
https://qiita.com/nyampire/items/1c10afdd36750c87154d
古橋研究室版ドラフトマニュアル置き場
https://github.com/furuhashilab/manual4citygml-osm → 完成したら OSMFJ organization の下に公式リポジトリとして移植
MLIT_PLATEAU 作業記録用リポジトリ
https://github.com/osmfj/MLIT_PLATEAU_import/issues
手順書に追加すべき項目
インポート前の事前作業
インポート手順の足りない表記追加
[x] 2nd 処理を実行後、org.osm を生成したら、それで一度妥当性検査を行い、エラー/警告が出た場合はを解決し、OSM元データを更新する。
[x] エラー/警告のない状態を確認して、再度 java -Dfile.encoding=utf-8 -jar citygml-osm-jar-with-dependencies.jar 2nd を実行して org.osm を再生成する。
[x] 主に、 upload.osm の 妥当性検証 処理を行った際の具体的な対処法があいまい。
[ ] スクリーンショット画像が一部不正確。置き直します。
インポート後の事後作業
インポート作業で想定されるFAQ