2015/12/11

稚内建物コンプリート!

OpenStreetMap Advent Calendar 2015 12月11日の記事です。


道北地理ネットワークとしての活動が停滞してしまった2015年。

今年も、マッピングパーティを企画したりしてたんですが、関係者の日程が合わずにポシャった上に、職場内でのQGIS勉強会を開催していたため、そちらにリソースを奪われてしまいました。

勉強会について興味があれば、こちらへ


その代わりと言っては何ですが、
個人的には、ひたすら稚内市全域の建物をトレースしてました。


記憶は曖昧ですが、2014年の秋頃から本格的に始めて、今年の11月16日に郊外に散在する農家も含め、稚内市の全建物のトレースを完了!

建物数は、25,724戸(物置、車庫等含む)でした。
一部、マッピングパーティの際に、下り専門さんが事前トレースしてくれた箇所もありますが、99%僕のトレースです。


建物数の確認のために、
overpass turbo で建物のデータだけ抽出しようとしたら、途中でブラウザがハングアップしてしまうので、
普通にOpenStreetMapのエクスポートからOverpass APIを使ってダウンロードした後に、QGISを使って建物のデータだけ抽出してます。
その辺の方法については、LearnOSMに載っているので参照してください。
http://learnosm.org/ja/osm-data/osm-in-qgis/

ちなみに、OpenStreetMapからエクスポートしたデータから抽出した建物データ数と、QGISでダウンロードしたデータから抽出した建物データ数を比較すると139個の差が出たんですが、OpenStreetMapからエクスポートしたデータの方が正確でした。

タグが間違っている訳でもないし、新しい更新データだから反映されていない、という訳でもないようです。
原因はよく分かりません。


さて、
トレース前の状況をスクショで撮っていなかったので、代わりにYahoo地図のOSMレイヤを貼っておきます。


まだ、2014年1月に僕がOSMの編集を開始する以前の状態です。
この頃は、道路と線路くらいしかデータがない上に、明らかに存在しない道路のデータがあったり、データがダブっていたり、全然使えない状況でした。
当初は、道路の修正だけで挫けそうになったりもしていましたが、黙々と作業をしているうちに『写経』に目覚めてしまったわけです。

道路修正・建物トレース楽しいですよね~
マッピングパーティの事前トレースなどあれば ご用命ください。いくらでも建物描きます。

現在の稚内は、こんな感じ。


大きな地図を表示
あとはPOIをひたすら登録しなきゃいけませんね。
冬のマッピングパーティは寒くて辛いので、来年がんばります(多分)。

2015/04/29

クライシスマッピングへの協力方法

クライシスマッピングの概要については ↓
http://dohokugeo.blogspot.jp/2015/04/blog-post.html


まず OSM Tasking Manager サイトを開きます。
http://tasks.hotosm.org/

現在進行中のタスクを確認できます。

もしくは、OSM wikiに個別事案の状況がまとめられています。
↓ ネパール地震の場合
http://wiki.openstreetmap.org/wiki/2015_Nepal_earthquake
こちらから各タスクにリンクが張ってあります。

各タスクによって、何を編集するのか指定されています。
例えば、#190は『buidings only』なので、建物だけをトレースします。


では、タスク#190を例にして説明を続けます。
http://tasks.hotosm.org/project/190

タスクを選択すると、まず解説ページが開きます。
GoogleBingなどの翻訳サイトを使って、ニュアンスだけでも理解しておきましょう。

【インストラクション】へ進みます。
普段の編集では、主にBingの空中写真を使っていると思いますが、このタスクではNextView提供の写真を使うためのライセンスに同意する必要があります。
BingやMapbox提供の空中写真を使用するタスクでは、ライセンスの同意は求められません。

また、このページでは変更セットのコメントに関する指定や、sourceタグの付け方などの説明も含まれていますので、例によって翻訳サイトのお世話になりながら出来るだけ理解しましょう。

【ライセンスの同意】に進みます。
『同意します』

同意したら、下画像 赤枠のURLをコピーしておきます。
NextViewの空中写真をJOSM等の編集ツールに追加するために必要です。


【参加】に進みます。
地図の左下にある凡例を見て、編集する区域を選択します。
色のついてない部分を選択しましょう。
区域を選択すると、『マッピング開始』ボタンが表示されるのでクリック。

編集ツールを選択します。

JOSMを使う場合は、gpxファイルをダウンロードしてJOSMで読み込みましょう。
あとは普段通りに編集するだけです。

iD editorの場合で説明を続けます。
ツールを選択すると、自動的にOSMのサイトが立ち上がり、編集区域が表示されます。

NextViewの空中写真が表示されると思いますが、もしも表示されていなければ
カスタム背景の編集を行います。

コピーしておいたURLをペーストして、{zoom}を{z}に直します。

あとは、ひたすら区域内の建物をトレースしましょう。
タグ【source=NextView】を忘れずに!

データをアップロードする際ですが、【インストラクション】で指定されていたコメントがiD editorを使っている場合は、自動的に入力されています。
JOSMで編集する場合は、忘れないように注意しましょう。

編集が終了したら、OSM Tasking Managerのページに戻ります。
【アンロック】か【完了としてマーク】を選択します。

とりあえず【アンロック】で作業を終了することをオススメしておきます。


以上で、クライシスマッピング終了です。
皆で協力して、災害支援を進めましょう。

クライシスマッピングへの協力方法(概要編)

※この記事の想定読者は、
 1.OSMを編集したことがある
 2.災害支援などに協力してみたいけど、どうしたらいいのかよく分からない
 3.英語はよく分からない
 4.身近にOSMに詳しい人・教えてくれる人がいない
という感じです。


2015年4月25日に発生したネパール地震において、クライシスマッピングが行われています。
インターネット上で詳細な地図を作成し、実際に現地で活動する方たちに役立ててもらうための支援活動です。

OSMの理念、クライシスマッピングの意義などについては、
まず、このYoutubeの動画を見ると分かりやすいと思います。

大きな災害などで記憶に残っているところでは、
2010年ハイチ・2013年フィリピンにおける自然災害
国内では、
東日本大震災はもちろんですが、
伊豆大島や広島の土砂災害でもOSMクライシスマッピングによる支援が行われました。


マッピングは、世界中の人が同時に行っているため、
編集内容が被らないように、OSM Tasking Managerというツールが使われています。
http://tasks.hotosm.org/
Tasking Managerは、地図を一定区域で区切って、自分が編集している地域にロックをかけ、他のマッパーが編集できないように出来ます。
作業区域を分担することによって効率的にマッピングが行えるわけです。


OSM Tasking Managerのサイトは基本的に英語であり、
使い方は下記リンク先にありますが、こちらも日本語に翻訳されていません。
http://learnosm.org/ja/coordination/tasking-manager/

かつての僕のように
二の足を踏むケースがあるのかもしれないと思ったので
OSM Tasking Managerの使い方、クライシスマッピングへの協力方法について まとめておきます。


To Be Continued…

2015/02/10

礼文島地図書き書き大会

2015年2月7日(土)

SotM JP 2014で知り合った【北大 Wheelmap Project】 のKさん主催の
https://www.facebook.com/wheelmapproject

『礼文島地図書き書き大会』
後方支援(講義担当)ということで参加してきました。

参加者は5名。
礼文島内の建物を描き尽くすことを目標に黙々と
ひたすら黙々とマッピングしました。

目標は概ね達成。

香深 Before & After

船泊 Before & After
今後、マッピングパーティなどで POIを埋めていけたらいいですね。

2015/01/31

opening_hours生成装置

opening_hoursの入力ルールをよく忘れてしまう自分用に作ったファイルです。
需要があるか分かりませんが、とりあえずDLできるようにしておきます。

xlsm(Excel)と ods(libreoffice)
2種類のファイルを用意してあります。

必要事項を入力後、マクロボタンを押すと
入力ルールに則った形に編集され、クリップボードにコピーされるので、
あとはOSMにペーストするだけです。


ファイルには記入例として、

平日 11:30~14:00 17:00~21:00
土日 昼のみ営業
定休日 火曜、第3日曜、祝日

と、現実的な感じで入力してあります。

OSMルールに則って記述すると こんな感じです。
Mo-Fr 11:30-14:00,17:00-21:00; Sa-Su 11:30-14:00; Tu,Su[3],PH off


※自分用なので、ちゃんと作ってません。痒い所に手が届かない仕様です。
※odsファイルはLibreOfficeで作成しました。AOOの動作確認はしていません。

以下よりDL出来ます。
opening_hours.xlsm
opening_hours.ods

2015/01/25

uMapの使い方(ポリゴン ノード変換)

さて前回、uMapの使用法を紹介しましたが、
多くの場合、データ抽出の段階で恐らくポリゴンとノード(ポイント)が混じってしまうと思われます。

必要最小限のスキルで作成するという方針だったため、この問題を放置しましたが
今回は、QGISを使用してポリゴンをポイントデータに変換する方法を説明します。

【例:稚内駅周辺飲食店MAP】

フルスクリーン表示

小規模な地図であれば、uMap上で
自分でマーカを置いて データテーブルの内容を転記した後、ポリゴンデータだけ消去という手法でも良いです。
ただ、データ数が多くなると手作業では辛くなると思います。

『GIS』と聞くと「難しそう、大変そう」と思われる人もいるかもしれませんが、
必要なデータを得るための最小限の設定・操作法だけ説明するので、下記に沿って操作をするだけで大丈夫なはずです。
(大丈夫じゃなければコメントください)


まず、データの抽出から
前回と同様【overpass turbo】を使います。
http://overpass-turbo.eu/
基本的な使い方は、以前の記事を参照
http://dohokugeo.blogspot.jp/2014/12/umap_25.html

ポリゴンとノード(ポイント)別にデータを抽出します。
【クエリウィザード】で下記のように入力すると、
amenity=restaurant and type:way
レストランのポリゴンデータだけ抽出できます。
同様に
amenity=restaurant and type:node
amenity=cafe and type:way
amenity=cafe and type:node
で抽出して4つのファイルをエクスポートします。

今回は、レストランと喫茶店を別レイヤに分けてみます。
分類する必要がなければ、
amenity=restaurant and type:way or cafe and type:way
amenity=restaurant and type:node or cafe and type:node
のように入力して抽出すれば、ファイルは2つで済みます。


さて、必要なデータを揃えたら、

QGISをダウンロードしてインストール
http://www.qgis.org/ja/site/
現在、バージョンは2.6.1です。
自分が使ってるのは2.0.1ですが、基本操作は変わってないと思うので多分大丈夫…

インストールすると色々なアイコンがデスクトップに並ぶかもしれませんが、
とりあえず使うのは【QGIS Desktop 2.~】だけです。
QGISを起動したら、まずプロジェクトのプロパティを開きます。

CRSタブを選択し、フィルターに【4326】と入力して
WGS84を選択して【OK】をクリック

【ベクタレイヤの追加】アイコンをクリック

【ベクタレイヤの追加】ウィンドウが開くので、エンコーディングは【UTF-8】を選択
ブラウズをクリックして、追加するファイルを選択します。

下画像のようにポリゴンデータがQGISに表示されるはずです
※背景地図は、OpenStreetMapの道路データです。

ポリゴンをポイントデータに変換します。
【ベクタ】→【ジオメトリツール】→【ポリゴンの重心】をクリック

【ポリゴンの中心点】ウィンドウが開くので、
【ブラウザ】から点を出力するシェープファイルを設定
※保存先・ファイル名は何でも良いです。

【OK】すると、『これを新しいレイヤとしてTOCに追加しますか?』と聞かれるので
【はい(Y)】をクリック
※【ポリゴンの中心点】ウィンドウが開きっぱなしになっているので、【閉じる】をクリック

ポリゴンの上にポイントが乗りましたね。

左側【レイヤ】のポイントレイヤを右クリックして、【名前をつけて保存】をクリック

下画像を参考に各種設定を行い【OK】をクリックして保存を行います。
形式は、【GeoJSON】
ブラウズから、保存先とファイル名を設定
エンコーディングは、【UTF-8】


以上で、ポリゴンからノード(ポイント)への変換は終了です。
同様に、喫茶店のポリゴンデータもノードに変換しましょう。


uMapに取り込んでいきます。
https://umap.openstreetmap.fr/ja/
まず、ノードで抽出したデータを取り込んで、

ポリゴンからノードに変換したデータを取り込む。
この時、先ほどと同じレイヤに取り込むようにしましょう。

次に、喫茶店のデータを取り込みますが、
新規レイヤにインポートします。
ポリゴンからノードに変換した喫茶店データも同様に取り込みましょう。

こうすることで、
レストランと喫茶店のアイコンを別々に設定したりすることができます。
鉛筆のアイコンから、レイヤの設定を行うことができるので、
色々と編集しつつ、見やすい・使いやすい地図を作ってみてください。

稚内駅周辺 飲食店MAP完成