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

1,495 views

Published on

オープンソースカンファレンス Hokkaido 2014

Published in: Software

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

  1. 1. FOSS4Gで オープンデータもかんたん OSGeo財団日本支部 朝日孝輔
  2. 2. 2 本日のコンテンツ ● FOSS4Gってなに? ● 少し前提知識 (オープンデータとか、フォーマットとか) ● データはどこで手に入る? ● Webで公開してみよう ● OSGeo財団日本支部ってなに? ● カンファレンスの宣伝など
  3. 3. 3 講師です Twitter:waigania13 hatena:waigani ● OSGeo財団日本支部 運営委 員 北海道で勉強会とかカンファ レンス行っています ● たまにブログでQGISのAPIで 何が出来るかとか書いてます ● 本職は地図作ってます
  4. 4. 4 FOSS4Gってなに?   FF reeree OO penpen SS ourceource SS oftwareoftware 44 (for)(for) GG eospatialeospatial の頭文字の頭文字
  5. 5. 5 地理空間情報って? ● 特定の位置を表す情報 ● 上記の情報と結ぶつけられた情報
  6. 6. 6 Google Map? 利用規約は利用規約は 確認しておこうね確認しておこうね 利用規約は利用規約は 確認しておこうね確認しておこうね
  7. 7. 7 オープンなものね ● 自由な再頒布の許可 ● 派生ソフトウェアの頒 布の許可 ● 適用分野の制限の禁止 ● などなど
  8. 8. 8 同じようなことが出来るの? ● 例えば、 地図上にポイントがあり、クリックすると情報表示
  9. 9. 9 OpenLayers ● JavaScriptの地図表示用ライブラリ ● ブラウザサイドのUI ● GoogleMapライクな動作を提供 ● 背景地図として GoogleMap OpenStreetMap 等を選択することも出来る
  10. 10. 10 Leaflet ● JavaScriptの地図表示用ライブラリ ● ブラウザサイドのUI ● GoogleMapライクな動作を提供 ● 操作性の良さ モバイル端末と相性良し
  11. 11. 11 こんな感じ 公開用サーバ (OpenLayers) 背景地図はさまざま な地図サービスから OpenLayersで直に 扱える形式のデータ をサーバから取得 GeoJSON KML
  12. 12. 12 QGIS ● デスクトップGIS ● データの表示 ● 検索 ● 地図の作成 ● データの編集 ● データの解析 ● などなど
  13. 13. 13 GDAL/OGR ● ライブラリとして、 ラスター/ベクターの I/Oを管理 ● コマンドとして フォーマット変換や 幾何変換も行う
  14. 14. 14 お手軽に試そう ● Windows環境のバイナリディストリビューション ● 約150種類のパッケージ
  15. 15. 15 お手軽に試そう ● 仮想マシンXubuntuベース ● DVD/USBから起動可能 ● Foss4gをインストールの必要 なしに試せる
  16. 16. 16 前提知識 ● オープンデータ ● 測地系、投影 ● ベクトルフォーマットの代表的なもの ● ラスタフォーマットの代表的なもの ● タイル地図
  17. 17. 17 オープンデータ ● オープンデータとは、自由に使えて再利用もでき、かつ誰でも 再配布できるようなデータのことだ。従うべき決まりは、せい ぜい「作者のクレジットを残す」あるいは「同じ条件で配布す る」程度である。 ※http://opendatahandbook.org/ja/what-is-open-data/
  18. 18. 18 オープンデータとFOSS4G ● 行政の持っている情報は、地理空間情報と結び ついているものが多い ● 地図上に可視化してあげると有用
  19. 19. 19 オープンデータとFOSS4G ● 国土交通省試算 2050年人口予想 ● 日本の人口 約9700万人 ● 6割の地域で2010年時点の人口の半分に 公開されているのはExcelのデータ 地図上地図上 へへ 可視化可視化
  20. 20. 20 地理空間情報を扱う際の注意点-測地系 ● 座標軸(X,Y,Z)の方向と原点Oの位置 ● 準拠楕円体 地球は球じゃない 南北に扁平な楕円体 ● ジオイド
  21. 21. 21 地理空間情報を扱う際の注意点-投影変換 ● 2次元平面へ展開 ● 原点、座標軸、距離単位を定義 注)円錐のつもり注)円錐のつもり
  22. 22. 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
  23. 23. 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コード
  24. 24. 24 ベクトルフォーマット-ESRI Shapefile ● よく使われているフォーマット ● 幾つかのファイルで構成されます ● .shp: メインのファイル、図形を格納 ● .shx: インデックスファイル ● .dbf: 属性ファイル ● .prj: 座標系定義
  25. 25. 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>
  26. 26. 26 ベクトルフォーマット-GeoJSON ● jsonで地理的データ構造を記述 { "type": "FeatureCollection", "features": [ { "type": "Feature", "geometry": {"type": "Point", "coordinates": [141.2116,43.0344]}, "properties": {"name": "札幌市"} } ] }
  27. 27. 27 ラスタフォーマット-GeoTIFF ● TIFFのヘッダに地理情報を追加 Size is 3552, 2912 Coordinate 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)
  28. 28. 28 タイル地図 ● 256x256ピクセル等のタイル画像 ● ズーム0の範囲 (-180,-85.05)-(180,85.05) ● ズームレベルが上がる度に、 x方向、y方向共に2分割 ● Webで良く利用されている ● クライアント側の表示領域に 合わせて、作成済みのタイル画像 を提供
  29. 29. 29 データは? ● 背景地図に使えるデータ ● 各種主題データ 共にオープンなものが 増えています
  30. 30. 30 OpenStreetMap ● フリーの地理情報データ作成するプロジェクト ● 誰でも自由に編集でき、 誰でも自由に利用出来る ● 札幌でも行われています
  31. 31. 31 OpenStreetMap
  32. 32. 32 地理院地図 ● 国土地理院からタイル地図が提供されています
  33. 33. 33 基盤地図情報 ● 国土地理院からベクトルデータも提供されています
  34. 34. 34 国土数値情報 ● 国土交通省から各種データが提供されています ※下記に表示しているのは一部
  35. 35. 35 統計データ ● e-stat(政府統計の総合窓口)でセンサスデータが提供され ています
  36. 36. 36 自治体からのデータ ● 市町村からのオープンデータも出始めています
  37. 37. 37 Webで地図を表示してみよう ● 北海道の大きさを見せてやる OpenLayersを使用した際の雰囲気だけ
  38. 38. 38 構成 使用ソフトウェア OpenLayers (地図表示のためのjavascriptライブラリ) 背景地図 地理院地図のタイル画像を使用 北海道の形 国土数値情報 – 行政区画  ※公開してるやつは違うデータ使ってます
  39. 39. 39 ベクトルデータ準備 ● 国土数値情報から行政区域(北海道)を ダウンロード
  40. 40. 40 ベクトルデータ準備 ● QGISで開いてみる xxx.shpという拡張子のファイルをドラック&ドロップで開けます
  41. 41. 41 ベクトルデータ準備 ● マージする 北海道全体で1図形にします ※時間かかります
  42. 42. 42 ベクトルデータ準備 ● 間引きなど 中間点の間引きと、データが重いので申し訳ないが島も削除
  43. 43. 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      .... …. 塗りは入れるように書き換え
  44. 44. 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>
  45. 45. 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);
  46. 46. 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. } }
  47. 47. 47 出来上がり http://nyctereutes.sakura.ne.jp/dekaido/index.html  ※おかせてもらってありがとうございます>Fさん ※国土数値情報から持って来たのではないデータを表示しています
  48. 48. 48 注意点 ● 利用規約に従うこと 「『国土数値情報(○○データ) 国土交通省』を使用して作成」 ※デモのデータは違うもの使ってたりするので表記してないです。。 
  49. 49. 49 もう少し手軽にデータだけ公開 ● MapBox辺りをチェックしてみてください ● カスタマイズした地図を公開するためのプラットフォーム ※map views/monthによっては有料 ● 各種API (JavaScriot,Objective C...) ● TileMill 地理空間情報データから 簡単にWeb公開用の地図を 作成するツール
  50. 50. 50 OSGeo財団 ● 2006年設立 ● オープンなジオを 応援する組織 ● 多数のプロジェクト
  51. 51. 51 ● 多数の支部 OSGeo財団
  52. 52. 52 ● 年に1度国際カンファレンス ● 2015はSeoul OSGeo財団
  53. 53. 53 OSGeo財団日本支部 ● 高品質のオープンソース地理空間ソフトウェア の支援と構築のために設立されました。 ● この財団の目的は、コミュニティーが先導し て、オープンソースプロジェクトの利用と開発 を促進することです。 ● OSGeo財団の日本における公式の支部が 「OSGeo財団日本支部(OSGeo.JP)」です。
  54. 54. 54 FOSS4G Tokyo/Osaka ● - フリー&オープンソースGISの祭典 - ● 2008年よりスタート ● 空間情報技術の情報交換の場 ● 2013年は、 Tokyo:10 月31 日(木) ハンズオンデイ/東京大学柏キャンパス 11 月2 日(土) Day1-2/東京大学駒場第2キャンパス Osaka:11 月6 日(水) ハンズオンデイ/大阪市立大学梅田サテライト 11 月7 日(木) コアデイ/グランフロント大阪
  55. 55. 55 FOSS4G Hokkaido ● 2012年から北海道でも地域カンファレンス を開催しています ● 2013の様子
  56. 56. 56 2014は 6/27(金)  コアデイ@北大農学部 6/28(土)  ジオメディアサミット@北大農学部 6/29(日)  ハンズオンデイ@北大学術交流会館
  57. 57. 57 ご 清 聴 あ り が と う ご ざ い ま し た

×