OpenStreetMapでは、長いあいだ調査・更新されていないうちにデータと現況が合わなくなってしまうことも多い。よくあるのが、調査の時点では工事中だったため「建設用地」としてタグ付けされ、その後工事が完了しても更新されていないというケースだ。landuse=construction
のついた地物が更新後1年半以上経っていた場合、よほどの大工事でなければ再調査すれば建物が出来上がっている。そんな地物を抽出して「この工事、そろそろ終わっているんじゃないの?」と確認しに行きたい場合は、Overpass QL (Overpass Query Language) を使う。Overpass Turbo でこんなクエリを投げてみよう。
[out:json];
(
nwr["landuse"="construction"]({{bbox}});
-
nwr["landuse"="construction"](newer:"{{date:18 month}}")({{bbox}});
);
out geom;
調べたい地域を表示し、上のクエリをテキストエリアに貼り付けて “Run” を押す。
クエリの解説
ここでちょっとクエリの各部分を解説する。
[out:json];
(
nwr["landuse"="construction"]({{bbox}});
-
nwr["landuse"="construction"](newer:"{{date:18 month}}")({{bbox}});
);
out geom;
nwr
というのは nodeとwayとrel (リレーション) を合わせたもの。["landuse"="construction"]
で、 建設用地を検索。{{bbox}}
は表示中のバウンダリーボックスを意味する。表示中のエリアが検索対象となる。{{date:18 month}}
は現在時刻から18ヶ月前の時刻に変換される。
Overpass QLでは newer
というフィルタを指定すると更新時刻 (作成時刻ではない) が特定の日時よりも新しいものを抽出することができる。しかしこの逆のolderはない。なので、一旦 "landuse"="construction"
の地物を全部取ってきてから、18ヶ月よりも新しいものを除外するという方法をとっている。
Overpass QLではさまざまな集合演算に対応しており、集合を簡単に「引き算」できる。
JA:Overpass API/Overpass QL – OpenStreetMap Wiki > 差集合 (difference)
各部分を (); で囲むのを忘れないように。
「調査した日付」を明記したい場合は?
さて、こうやって抽出した地物を調査しに行った結果、やっぱりまだまだ工事中でしたということもあるだろう。そんな時、「データは更新されていないけれど、これは情報が古いわけじゃないからね!」というのを明示的に伝えたいとする。その場合に使えるタグとして、check_date
というのがある。未承認だが使用中 (in-use) で、2023年3月27日の時点で667,883件の使用実績がある。
JA:Key:check_date – OpenStreetMap Wiki
あまりなじみのないタグかもしれないが、情報の鮮度が重要になる地物や近いうちに更新されることが想定されそうな地物には付けておくと、再調査に行く目安になったり、データ利用時の参考になったりするかもしれない。
再調査する意義のある地物
今回取り上げたのは建設用地 (landuse=construction
) だが、他にも再調査したくなる情報があるかどうか考えてみた。
- 数ヶ月〜数年後に変更されることが予想されるもの 。たとえば、工事はいつか終わるので、「建設中である」という情報は再調査が必要になる。また、都市部の場合、更地 (
landuse=brownfield
)も、長い間更地のままということは少ない。新たな建物の建設が始まるか、そうでなければコインパーキングとして有効活用されるだろう。 - 設置・移動・除去が容易なもの。たとえばAED (
emergency=defibrillator
) や消火器(emergency=fire_extinguisher
) は、設置場所が変わったり撤去されたりすることも多い。 - 少しずつ役目を終えてゆくもの。最近でいえば、新型コロナウィルス関係の施設がこれにあたる。ワクチン接種施設 (
healthcare=vaccination_centre
) や検体採取を行う検査センター (healthcare=sample_collection
) は、コロナ禍が落ち着けば数が減るだろう。また、災害対応のために設置された施設なども、復興が進むにつれて数が減ってゆく。
これらの地物も、上記のようなクエリを使って抽出すると再調査が捗るだろう。