地理空間情報入門

合同会社MIERUNE

朝日 孝輔

ABOUT ME

朝日 孝輔

合同会社MIERUNE
(一社)社会基盤情報流通推進協議会
OSGeo財団日本支部 監事

合同会社MIERUNE

IT・地理空間情報のコンサルタント
データの有効活用を通して課題の解決に貢献しています

  • 業務改善・開発のコンサルティング
  • 研修・講演会の企画運営
  • ソフトウェアの企画・研究・開発
  • データベースの企画構築解析

岩波DS Vol.4

下記に関わらせていただきました

  • 地理空間情報入門
  • RとGISの連携
  • WebGISの動向

地理空間情報

位置の情報、もしくは位置+位置と結びついた情報

地理空間情報の例

大東京防犯ネットワーク
先週リニューアルオープンしたようなので見てみましょう

地理空間情報の例

ユーザーの位置情報と、ポケストップ、ジム、ポケモンの出現位置を結びつけている(はず)

こんな位置的な処理が
行われているはず

  • 端末で、ユーザーの位置を測位←緯度経度
  • 端末から、サーバへ位置を送信
  • サーバで、端末に返す範囲←何mがうれしい
    のポケストップ等計算
  • 端末で、ポケストップ等を表示

こんな位置的な処理が
行われているはず

  • 絶対的な位置が欲しい
    • 緯度経度
    • どこかを原点とした位置
    • 住所
  • 2地点の相対的な位置関係
    • 緯度経度差
    • どこかを原点とした位置差
    • 方位

同緯度経度は必ず同じ位置か?

地球を近似した楕円体が同じならね

同緯度経度は必ず同じ位置か?

いまどきはWGS84楕円体で同じだから大丈夫
古いのは気をつけよう

平面で考えよう

緯度経度で平面に書いてみた

平面で考えよう

見慣れてるのはこれのはず
メルカトル図法、角度が正しい

平面で考えよう

何を正しく表すかを考慮して平面に投影
例えば円筒をかぶせて、接する一定範囲だけ採用
投影法の原点からの距離で座標を持たせる

大事なこと

  • どの範囲・縮尺で何を正確に求めたいの?
  • もらったデータの座標は何?精度は?

QGIS

http://qgis.org/

QGIS

  • 地理情報システム
  • データの作成・編集・可視化・解析
  • オープンソースで誰でも使えます
  • WindowsでもMacでもLinuxでも使えます

CARTO

https://carto.com/

CARTO

地図を使ったアプリケーションを作成するためのプラットホーム

  • CARTOにデータをアップロードして、さまざまな表現を付けられます
  • データの編集もCARTO上で行えます
  • データをどのように表示・表現すべきか提案してくれたります
  • 作成した地図を公開できます
  • APIを通して作成したデータを使用できます

ユーザ登録してDATASETを作成します
手持ちのshapefile、csv、geojson、kmlなどがあればアップロードできます
位置情報を持っている必要はあります

もしくは空のDATASETを作成して、オブジェクトを追加して行きます

MAPVIEWでデータを地図上に展開できます
用意されている背景地図を選択できます
タイル地図ならURLを指定して背景に指定もできます
Map Layer Wizardで簡単にDATASETの表現付もできます

MAPをPUBLISHすると
地図をシェアするためのURL
サイトに組み込むためのコードが発行されます

まずは無料プランで試してみましょう

CARTOでデータを処理

shapefileはzipにして、Drag&Dropで追加できます

  • e-statから国勢調査
    • 小地域ポリゴン : h22ka01205
    • 男女別人口総数及び世帯総数 : tblt000572c01205
  • 室蘭市オープンデータから避難所、AED
    • AED設置事業所 : aed_20160616
    • 避難場所 : hinanbasyo

PostGIS

PostgresSQLの空間拡張
CARTOで利用することができます
http://www.postgis.net/

DEMO

世帯人口の表示

小地域ポリゴンと統計表を結合
結合後、新しいDATASETを作成


select
	h.cartodb_id,
	h.key_code,
	cast (replace(t.t000572001, '-', '0') as integer) as t_jinko, 
	h.the_geom_webmercator
from
	h22ka01205 h, tblt000572c01205 t
where
	t.key_code = cast(h.key_code as integer)
						

行政区画変更

小地域ポリゴンと統計表を結合後、
行政コードの9桁を使ってマージ


select 
	st_union(the_geom_webmercator) as the_geom_webmercator,
	sum(t_jinko) as t_jinko,
	substr(key_code, 1, 9) as key_code
from 
	h22ka01205_copy
group by substr(key_code, 1, 9)
                                                

AED設置場所から
500mのバッファ


select 
	st_buffer(the_geom_webmercator, 500) as the_geom_webmercator 
from 
	aed_20160616
						

AED設置場所から
遠い避難所


select 
	h.* from hinanbasyo h
where not exists (
	select h.* 
	from  aed_20160616 a
  	where 
  	st_within( h.the_geom_webmercator, st_buffer(a.the_geom_webmercator, 500))
)
						

組み合わせて行きましょう

もっと地理空間情報したい方は

FOSS4G Tokyo 2016
11/5(土)10:00-
東京大学駒場リサーチキャンパス
(生産技術研究所内)An棟2階