Top Banner
FOSS4Gで オープンデータもかんたん OSGeo財団日本支部 朝日孝輔
57

FOSS4Gでオープンデータもかんたん

Jul 07, 2015

Download

Software

Kosuke Asahi

オープンソースカンファレンス Hokkaido 2014
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: FOSS4Gでオープンデータもかんたん

FOSS4Gでオープンデータもかんたん

OSGeo財団日本支部朝日孝輔

Page 2: FOSS4Gでオープンデータもかんたん

2

本日のコンテンツ

● FOSS4Gってなに?● 少し前提知識

(オープンデータとか、フォーマットとか)● データはどこで手に入る?● Webで公開してみよう● OSGeo財団日本支部ってなに?● カンファレンスの宣伝など

Page 3: FOSS4Gでオープンデータもかんたん

3

講師です

Twitter:waigania13hatena:waigani

● OSGeo財団日本支部 運営委員北海道で勉強会とかカンファレンス行っています

● たまにブログでQGISのAPIで何が出来るかとか書いてます

● 本職は地図作ってます

Page 4: FOSS4Gでオープンデータもかんたん

4

FOSS4Gってなに?

  FF ree ree OO pen pen SS ource ource SS oftware oftware 44 (for) (for) GG eospatial eospatial の頭文字の頭文字

Page 5: FOSS4Gでオープンデータもかんたん

5

地理空間情報って?

● 特定の位置を表す情報● 上記の情報と結ぶつけられた情報

Page 6: FOSS4Gでオープンデータもかんたん

6

Google Map?

利用規約は利用規約は確認しておこうね確認しておこうね

利用規約は利用規約は確認しておこうね確認しておこうね

Page 7: FOSS4Gでオープンデータもかんたん

7

オープンなものね● 自由な再頒布の許可● 派生ソフトウェアの頒

布の許可● 適用分野の制限の禁止● などなど

Page 8: FOSS4Gでオープンデータもかんたん

8

同じようなことが出来るの?● 例えば、

地図上にポイントがあり、クリックすると情報表示

Page 9: FOSS4Gでオープンデータもかんたん

9

OpenLayers● JavaScriptの地図表示用ライブラリ● ブラウザサイドのUI● GoogleMapライクな動作を提供

● 背景地図としてGoogleMapOpenStreetMap等を選択することも出来る

Page 10: FOSS4Gでオープンデータもかんたん

10

Leaflet● JavaScriptの地図表示用ライブラリ● ブラウザサイドのUI● GoogleMapライクな動作を提供

● 操作性の良さモバイル端末と相性良し

Page 11: FOSS4Gでオープンデータもかんたん

11

こんな感じ

公開用サーバ(OpenLayers)

背景地図はさまざまな地図サービスから

OpenLayersで直に扱える形式のデータをサーバから取得 GeoJSON

KML

Page 12: FOSS4Gでオープンデータもかんたん

12

QGIS

● デスクトップGIS

● データの表示● 検索● 地図の作成● データの編集● データの解析● などなど

Page 13: FOSS4Gでオープンデータもかんたん

13

GDAL/OGR

● ライブラリとして、ラスター/ベクターのI/Oを管理

● コマンドとしてフォーマット変換や幾何変換も行う

Page 14: FOSS4Gでオープンデータもかんたん

14

お手軽に試そう

● Windows環境のバイナリディストリビューション● 約150種類のパッケージ

Page 15: FOSS4Gでオープンデータもかんたん

15

お手軽に試そう

● 仮想マシンXubuntuベース● DVD/USBから起動可能● Foss4gをインストールの必要

なしに試せる

Page 16: FOSS4Gでオープンデータもかんたん

16

前提知識

● オープンデータ● 測地系、投影● ベクトルフォーマットの代表的なもの● ラスタフォーマットの代表的なもの● タイル地図

Page 17: FOSS4Gでオープンデータもかんたん

17

オープンデータ● オープンデータとは、自由に使えて再利用もでき、かつ誰でも

再配布できるようなデータのことだ。従うべき決まりは、せいぜい「作者のクレジットを残す」あるいは「同じ条件で配布する」程度である。 ※http://opendatahandbook.org/ja/what-is-open-data/

Page 18: FOSS4Gでオープンデータもかんたん

18

オープンデータとFOSS4G● 行政の持っている情報は、地理空間情報と結び

ついているものが多い● 地図上に可視化してあげると有用

Page 19: FOSS4Gでオープンデータもかんたん

19

オープンデータとFOSS4G● 国土交通省試算 2050年人口予想

● 日本の人口 約9700万人● 6割の地域で2010年時点の人口の半分に

公開されているのはExcelのデータ

地図上地図上へへ

可視化可視化

Page 20: FOSS4Gでオープンデータもかんたん

20

地理空間情報を扱う際の注意点-測地系● 座標軸(X,Y,Z)の方向と原点Oの位置● 準拠楕円体

地球は球じゃない南北に扁平な楕円体

● ジオイド

Page 21: FOSS4Gでオープンデータもかんたん

21

地理空間情報を扱う際の注意点-投影変換● 2次元平面へ展開● 原点、座標軸、距離単位を定義

注)円錐のつもり注)円錐のつもり

Page 22: FOSS4Gでオープンデータもかんたん

22

地理空間情報を扱う際の注意点-EPSGコード

● 経緯度

● UTM

Tokyo 4301

JGD2000 4612

WGS84 4326

ゾーン JGD2000 Tokyo

51 3097 3092

52 3098 3093

53 3099 3094

54 3100 3095

55 3101 3096

● 平面直角座標

● Pseudo-Mercator

系 JGD2000 Tokyo

1 2443 30161

2 2444 30162

3 2445 30163

4 2446 30164

5 2447 30165

19 2461 30179

Tokyo 4301

JGD2000 4612

WGS84 4326

3857, 900913

Page 23: FOSS4Gでオープンデータもかんたん

23

地理情報を扱う際に最初に、定義するものとして出てきます

function init() { var options = { projection: new OpenLayers.Projection("EPSG:3857"), units: "m", numZoomLevels: 18, maxResolution: 156543.0339, maxExtent: new OpenLayers.Bounds(-20037508, -20037508, 20037508, 20037508.34) }; map = new OpenLayers.Map('map', options);  // 以下略}

地理空間情報を扱う際の注意点-EPSGコード

Page 24: FOSS4Gでオープンデータもかんたん

24

ベクトルフォーマット-ESRI Shapefile

● よく使われているフォーマット● 幾つかのファイルで構成されます

● .shp: メインのファイル、図形を格納● .shx: インデックスファイル● .dbf: 属性ファイル● .prj: 座標系定義

Page 25: FOSS4Gでオープンデータもかんたん

25

ベクトルフォーマット-KML

● XMLベースのフォーマット● Google Earth、Google Mapでお馴染み● .kml : テキストファイル,.kmz: zip圧縮して拡張子を変更

<?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://earth.google.com/kml/2.0"> <Placemark> <description>札幌</description> <name>札幌</name> <Point> <coordinates>141.2116,43.0344</coordinates> </Point> </Placemark> </kml>

Page 26: FOSS4Gでオープンデータもかんたん

26

ベクトルフォーマット-GeoJSON

● jsonで地理的データ構造を記述{ "type": "FeatureCollection", "features": [ { "type": "Feature", "geometry": {"type": "Point", "coordinates": [141.2116,43.0344]}, "properties": {"name": "札幌市"} } ] }

Page 27: FOSS4Gでオープンデータもかんたん

27

ラスタフォーマット-GeoTIFF

● TIFFのヘッダに地理情報を追加Size is 3552, 2912Coordinate System is:GEOGCS["WGS 84", DATUM["WGS_1984", SPHEROID["WGS 84",6378137,298.257223563, AUTHORITY["EPSG","7030"]], AUTHORITY["EPSG","6326"]], PRIMEM["Greenwich",0], UNIT["degree",0.0174532925199433], AUTHORITY["EPSG","4326"]]Origin = (139.000000000000000,36.000000000000000)Pixel Size = (0.000281531531500,-0.000228939560400)

Page 28: FOSS4Gでオープンデータもかんたん

28

タイル地図

● 256x256ピクセル等のタイル画像● ズーム0の範囲

(-180,-85.05)-(180,85.05)● ズームレベルが上がる度に、x方向、y方向共に2分割

● Webで良く利用されている● クライアント側の表示領域に合わせて、作成済みのタイル画像を提供

Page 29: FOSS4Gでオープンデータもかんたん

29

データは?

● 背景地図に使えるデータ● 各種主題データ共にオープンなものが増えています

Page 30: FOSS4Gでオープンデータもかんたん

30

OpenStreetMap

● フリーの地理情報データ作成するプロジェクト● 誰でも自由に編集でき、誰でも自由に利用出来る

● 札幌でも行われています

Page 31: FOSS4Gでオープンデータもかんたん

31

OpenStreetMap

Page 32: FOSS4Gでオープンデータもかんたん

32

地理院地図● 国土地理院からタイル地図が提供されています

Page 33: FOSS4Gでオープンデータもかんたん

33

基盤地図情報● 国土地理院からベクトルデータも提供されています

Page 34: FOSS4Gでオープンデータもかんたん

34

国土数値情報● 国土交通省から各種データが提供されています

※下記に表示しているのは一部

Page 35: FOSS4Gでオープンデータもかんたん

35

統計データ● e-stat(政府統計の総合窓口)でセンサスデータが提供され

ています

Page 36: FOSS4Gでオープンデータもかんたん

36

自治体からのデータ● 市町村からのオープンデータも出始めています

Page 37: FOSS4Gでオープンデータもかんたん

37

Webで地図を表示してみよう● 北海道の大きさを見せてやる

OpenLayersを使用した際の雰囲気だけ

Page 38: FOSS4Gでオープンデータもかんたん

38

構成使用ソフトウェア OpenLayers

(地図表示のためのjavascriptライブラリ)

背景地図 地理院地図のタイル画像を使用

北海道の形 国土数値情報 – 行政区画  ※公開してるやつは違うデータ使ってます

Page 39: FOSS4Gでオープンデータもかんたん

39

ベクトルデータ準備● 国土数値情報から行政区域(北海道)をダウンロード

Page 40: FOSS4Gでオープンデータもかんたん

40

ベクトルデータ準備● QGISで開いてみるxxx.shpという拡張子のファイルをドラック&ドロップで開けます

Page 41: FOSS4Gでオープンデータもかんたん

41

ベクトルデータ準備● マージする

北海道全体で1図形にします ※時間かかります

Page 42: FOSS4Gでオープンデータもかんたん

42

ベクトルデータ準備● 間引きなど中間点の間引きと、データが重いので申し訳ないが島も削除

Page 43: FOSS4Gでオープンデータもかんたん

43

ベクトルデータ準備● KMLで書き出し「レイヤ」→「名前を付けて保存」<?xml version="1.0" encoding="utf-8" ?><kml xmlns="http://www.opengis.net/kml/2.2"><Document><Folder><name>hokkaido</name> <Placemark>

<Style><PolyStyle><color>66ff0000</color><fill>1</fill></PolyStyle></Style> <Polygon> <outerBoundaryIs><LinearRing> <coordinates> 141.57910156249997,45.176868438720703 141.56959533691398,45.199268341064531 141.57170104980494,45.217864990234361 141.57159423828097,45.235401153564517 141.58839416503898,45.253200531005895 141.59509277343798,45.258731842040959 141.61230468749997,45.277465820312486 141.62060546874997,45.296531677246072      .... ….

塗りは入れるように書き換え

Page 44: FOSS4Gでオープンデータもかんたん

44

OpenLayersの記述例● 地理院地図表示

地理院地図の技術情報に下記のような取り込み例が載っています<script>var projection3857 = new OpenLayers.Projection("EPSG:3857");var projection4326 = new OpenLayers.Projection("EPSG:4326");

var map = new OpenLayers.Map({ div: "map", projection: projection3857, displayProjection: projection4326,});

map.addLayer(new OpenLayers.Layer.XYZ("標準地図", "http://cyberjapandata.gsi.go.jp/xyz/std/${z}/${x}/${y}.png", { attribution: "<a href='http://portal.cyberjapan.jp/help/termsofuse.html' target='_blank'>国土地理院</a>", maxZoomLevel: 17}));

map.setCenter(new OpenLayers.LonLat(138.7313889, 35.3622222) .transform(projection4326, projection3857), 5);</script>

Page 45: FOSS4Gでオープンデータもかんたん

45

OpenLayersの記述例● KMLの表示

var vectorLayer = new OpenLayers.Layer.Vector("prefShape", {

projection: new OpenLayers.Projection("EPSG:4326"), strategies: [new OpenLayers.Strategy.Fixed()],protocol: new OpenLayers.Protocol.HTTP({

url: "./hokkaido.kml", format: new OpenLayers.Format.KML({ extractStyles: true, maxDepth: 2 }) }), styleMap: new OpenLayers.StyleMap({ "default": new OpenLayers.Style({ pointRadius: pointSize, fillColor: "#ddd", fillOpacity: 0.5, strokeColor: "black" })

})});

map.addLayer(vectorLayer);

Page 46: FOSS4Gでオープンデータもかんたん

46

OpenLayersの記述例● コントロール追加

//図形移動のコントロール作成var control = new OpenLayers.Control.ModifyFeature(vectorLayer);control.mode = OpenLayers.Control.ModifyFeature.ROTATE|OpenLayers.Control.ModifyFeature.DRAG;map.addControl(control);

control.activate();

//右クリックメニューを無効document.getElementById('map').oncontextmenu = function(e){

e = e?e:window.event;if(e.preventDefault) {

e.preventDefault(); // For non-IE browsers.}else{

return false; // For IE browsers.}

}

Page 47: FOSS4Gでオープンデータもかんたん

47

出来上がりhttp://nyctereutes.sakura.ne.jp/dekaido/index.html ※おかせてもらってありがとうございます>Fさん ※国土数値情報から持って来たのではないデータを表示しています

Page 48: FOSS4Gでオープンデータもかんたん

48

注意点● 利用規約に従うこと

「『国土数値情報(○○データ) 国土交通省』を使用して作成」※デモのデータは違うもの使ってたりするので表記してないです。。 

Page 49: FOSS4Gでオープンデータもかんたん

49

もう少し手軽にデータだけ公開

● MapBox辺りをチェックしてみてください● カスタマイズした地図を公開するためのプラットフォーム※map views/monthによっては有料

● 各種API(JavaScriot,Objective C...)

● TileMill地理空間情報データから簡単にWeb公開用の地図を作成するツール

Page 50: FOSS4Gでオープンデータもかんたん

50

OSGeo財団

● 2006年設立● オープンなジオを応援する組織

● 多数のプロジェクト

Page 51: FOSS4Gでオープンデータもかんたん

51

● 多数の支部

OSGeo財団

Page 52: FOSS4Gでオープンデータもかんたん

52

● 年に1度国際カンファレンス

● 2015はSeoul

OSGeo財団

Page 53: FOSS4Gでオープンデータもかんたん

53

OSGeo財団日本支部

● 高品質のオープンソース地理空間ソフトウェアの支援と構築のために設立されました。

● この財団の目的は、コミュニティーが先導して、オープンソースプロジェクトの利用と開発を促進することです。

● OSGeo財団の日本における公式の支部が「OSGeo財団日本支部(OSGeo.JP)」です。

Page 54: FOSS4Gでオープンデータもかんたん

54

FOSS4G Tokyo/Osaka

● - フリー&オープンソースGISの祭典 -● 2008年よりスタート● 空間情報技術の情報交換の場

● 2013年は、Tokyo:10 月31 日(木) ハンズオンデイ/東京大学柏キャンパス 11 月2 日(土) Day1-2/東京大学駒場第2キャンパスOsaka:11 月6 日(水) ハンズオンデイ/大阪市立大学梅田サテライト

11 月7 日(木) コアデイ/グランフロント大阪

Page 55: FOSS4Gでオープンデータもかんたん

55

FOSS4G Hokkaido● 2012年から北海道でも地域カンファレンス

を開催しています● 2013の様子

Page 56: FOSS4Gでオープンデータもかんたん

56

2014は6/27(金)  コアデイ@北大農学部

6/28(土)  ジオメディアサミット@北大農学部

6/29(日)  ハンズオンデイ@北大学術交流会館

Page 57: FOSS4Gでオープンデータもかんたん

57

ご清聴ありがとうございました