Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Rで地図データを扱う
@t2gtnd
Hiroshima.R #3
2014/2/14 比治山大学
自己紹介
@t2gtnd
専門 応用統計学(データ解析・統計理論・統計コンサルなど)
興味 経時データ・空間データ・生存時間データ
R歴 6年程度
過去のLT
Hiroshima.R #1(2011/06/18):「空間データのための回帰分析」...
ビッグデータ研修会に参加してきました
総務省・高度ICT利活用人
材育成カリキュラム「実践
的データ分析コース」
http://www.jtp.co.jp/service/ict/
course/index.html
ビッグデータ研修会に参加してきました
• ビッグデータについてぼんやりとしか把握してな
かったので、全体像を知るべく参加
• 企業の分析屋さんとお話できることも期待
(こっちの方が楽しみ)
• ・・・が、参加者ほとんど大学関係者(-_-;)
•...
オープンデータ
総務省によると・・・
• オープンデータとは、「機械判読に適したデータ形式で、二
次利用が可能な利用ルールで公開されたデータ」であり
「人手を多くかけずにデータの二次利用を可能とするもの」
ググってみると・・・
• オープンデー...
地図データの入手
• e-Stat:地図で見る統計(統計GIS)から入手可能
• データは都道府県毎に市区町村単位でダウン
ロード可能
http://www.e-stat.go.jp/SG1/estat/
地図データの入手
1. 「平成22年国勢調査(小地域)
2010/10/01」を選択
2. 「男女別人口総数及び世帯総数」に
チェックをいれる
3. 「統計表各種データダウンロードへ」
ボタンをクリック
1. 「都道府県」を選択
2. 「市区町...
地図データの入手
ここでは、“平成22年国勢調査(少地域)の男女別人口総
数及び世帯総数”で広島市南区のデータを入手
測地系・座標系・データ形式
• 測地系と座標系
• 日本測地系・平面直行座標系
• 世界測地系・平面直行座標系
• 日本測地系・経度緯度
• 世界測地系・経度緯度 ・・・ GPSで使われる世界標準
• データ形式
• Shape形式 ・・・ m...
地図データの読込
作業ディレクトリにダウンロードした圧縮ファイルを解凍
上の4つのファイルがセットでshape形式データ
平成22年度国勢調査の広島市南区(市区町村番号34103)のshape形式
データ h22ka34103.shp をRで読...
地図データの表示
属性データ
境界データ
作図順序
作図範囲
測地系・座標系
例)地図データからの抽出例
d@data # 属性データのデータフレーム
d@polygons[[1]]@Polygons[[1]]@coords # 1番目の領域群...
地図を描く(1):白地図
plot(d) # 地図を描く!
ん!(変な線がある・・・)
水上の境界は消したい
陸上
水上(海・川)
境界データの定義書によると・・・
2) 分類コード(HCODE)
「8101」: 町丁・字等
「8154」: 水面調査区
水上境界を消したいので
HCODEが8101の境界だけ抽出
d <- subset(d, d@data$HCODE == ...
地図を描く(1)白地図
plot(d) # 改めて作図!
できた!
地図を描く(2):塗り分け地図
属性データにあるJINKO(町丁・字別人口)で塗り分けたい
spplot(d, zcol="JINKO") # 塗り分け方(色・区切り)はおまかせ
塗り分け方(色・区切り)を自分で指定(分位点で区切る例)
注)区...
地図を描く(2):塗り分け地図
おまかせ 自分で指定
地図を描く(3):Google Map
Google Map上に重ねて地図を描きたい(おまかせ)
library(plotGoogleMaps)
plotGoogleMaps(d, zcol="JINKO", # 地図データ&変数
filena...
地図を描く(3):Google Map
Google Map上に重ねて地図を描きたい(自分で指定)
library(plotGoogleMaps)
plotGoogleMaps(d, zcol="JINKO", # 地図データ&変数
filen...
地図を描く(3):Google Map
表示は少し重いかも
(おまけ)実用例
これからIT関係サービスで起業予定の社長さん
「スマホのアプリ稼働率地図(仮称)が作りたい」
「実証調査する前に、低コストで何かできない?」
自分
「あるよ!」 → そう、オープンデータを使えばね!
地区別年齢階級別人口×想定稼働率
境界データ:町丁・字境界
属性データ:年齢階級別人口
年齢 10代 20代 ・・・
稼働率 ◯◯% △△% ・・・
年齢別稼働率(想定値など)
おしまい!
Upcoming SlideShare
Loading in …5
×

Rmap

3,184 views

Published on

draw map by R

Published in: Software
  • Be the first to comment

Rmap

  1. 1. Rで地図データを扱う @t2gtnd Hiroshima.R #3 2014/2/14 比治山大学
  2. 2. 自己紹介 @t2gtnd 専門 応用統計学(データ解析・統計理論・統計コンサルなど) 興味 経時データ・空間データ・生存時間データ R歴 6年程度 過去のLT Hiroshima.R #1(2011/06/18):「空間データのための回帰分析」 Hiroshima.R #2(2012/02/11):「グラフで学ぶ主効果・交互作用」
  3. 3. ビッグデータ研修会に参加してきました 総務省・高度ICT利活用人 材育成カリキュラム「実践 的データ分析コース」 http://www.jtp.co.jp/service/ict/ course/index.html
  4. 4. ビッグデータ研修会に参加してきました • ビッグデータについてぼんやりとしか把握してな かったので、全体像を知るべく参加 • 企業の分析屋さんとお話できることも期待 (こっちの方が楽しみ) • ・・・が、参加者ほとんど大学関係者(-_-;) • でも多種多様な分野でおもしろかった
  5. 5. オープンデータ 総務省によると・・・ • オープンデータとは、「機械判読に適したデータ形式で、二 次利用が可能な利用ルールで公開されたデータ」であり 「人手を多くかけずにデータの二次利用を可能とするもの」 ググってみると・・・ • オープンデータ&公開データのまとめ - NAVER まとめ http://matome.naver.jp/odai/2135883023685089601
  6. 6. 地図データの入手 • e-Stat:地図で見る統計(統計GIS)から入手可能 • データは都道府県毎に市区町村単位でダウン ロード可能 http://www.e-stat.go.jp/SG1/estat/
  7. 7. 地図データの入手 1. 「平成22年国勢調査(小地域) 2010/10/01」を選択 2. 「男女別人口総数及び世帯総数」に チェックをいれる 3. 「統計表各種データダウンロードへ」 ボタンをクリック 1. 「都道府県」を選択 2. 「市区町村」を選択 3. 「検索」ボタンをクリック 4. 境界データの欄に表示されている 「世界測地系緯度経度・Shape形 式」のデータをクリック 統計データの選択 境界データの選択
  8. 8. 地図データの入手 ここでは、“平成22年国勢調査(少地域)の男女別人口総 数及び世帯総数”で広島市南区のデータを入手
  9. 9. 測地系・座標系・データ形式 • 測地系と座標系 • 日本測地系・平面直行座標系 • 世界測地系・平面直行座標系 • 日本測地系・経度緯度 • 世界測地系・経度緯度 ・・・ GPSで使われる世界標準 • データ形式 • Shape形式 ・・・ maptoolsパッケージで読込可能 • G-XML形式
  10. 10. 地図データの読込 作業ディレクトリにダウンロードした圧縮ファイルを解凍 上の4つのファイルがセットでshape形式データ 平成22年度国勢調査の広島市南区(市区町村番号34103)のshape形式 データ h22ka34103.shp をRで読み込みます library(maptools) pj <- CRS("+proj=longlat +datum=WGS84") # 測地系と座標系の定義 d <- readShapeSpatial("h22ka34103.shp", proj4string=pj) H22ka34103.shp H22ka34103.dbf H22ka34103.shx H22ka34103.prj 境界データ 属性データ 境界・属性の対応 測地系・座標系
  11. 11. 地図データの表示 属性データ 境界データ 作図順序 作図範囲 測地系・座標系 例)地図データからの抽出例 d@data # 属性データのデータフレーム d@polygons[[1]]@Polygons[[1]]@coords # 1番目の領域群の1番目の領域の境界座標 SpatialPloygonsDataFrame 境界データによる空間領域 + 属性データのデータフレーム
  12. 12. 地図を描く(1):白地図 plot(d) # 地図を描く! ん!(変な線がある・・・) 水上の境界は消したい 陸上 水上(海・川)
  13. 13. 境界データの定義書によると・・・ 2) 分類コード(HCODE) 「8101」: 町丁・字等 「8154」: 水面調査区 水上境界を消したいので HCODEが8101の境界だけ抽出 d <- subset(d, d@data$HCODE == 8101)
  14. 14. 地図を描く(1)白地図 plot(d) # 改めて作図! できた!
  15. 15. 地図を描く(2):塗り分け地図 属性データにあるJINKO(町丁・字別人口)で塗り分けたい spplot(d, zcol="JINKO") # 塗り分け方(色・区切り)はおまかせ 塗り分け方(色・区切り)を自分で指定(分位点で区切る例) 注)区切りは最小値・最大値も含める brks <- round(quantile(d@data$JINKO, 0:10/10)) # 区切り cols <- terrain.colors(length(brks)-1) # 色パレット spplot(d, zcol="JINKO", col.regions=cols, at=brks)
  16. 16. 地図を描く(2):塗り分け地図 おまかせ 自分で指定
  17. 17. 地図を描く(3):Google Map Google Map上に重ねて地図を描きたい(おまかせ) library(plotGoogleMaps) plotGoogleMaps(d, zcol="JINKO", # 地図データ&変数 filename="map1.html") # 出力ファイル名
  18. 18. 地図を描く(3):Google Map Google Map上に重ねて地図を描きたい(自分で指定) library(plotGoogleMaps) plotGoogleMaps(d, zcol="JINKO", # 地図データ&変数 filename="map2.html", # 出力ファイル名 layerName="population", # レイヤー名前 colPalette=cols, # 色パレット at=brks, # 区切り strokeColor="black", # 境界線の色 mapTypeId="ROADMAP") # Google Mapの種類
  19. 19. 地図を描く(3):Google Map 表示は少し重いかも
  20. 20. (おまけ)実用例 これからIT関係サービスで起業予定の社長さん 「スマホのアプリ稼働率地図(仮称)が作りたい」 「実証調査する前に、低コストで何かできない?」 自分 「あるよ!」 → そう、オープンデータを使えばね!
  21. 21. 地区別年齢階級別人口×想定稼働率 境界データ:町丁・字境界 属性データ:年齢階級別人口 年齢 10代 20代 ・・・ 稼働率 ◯◯% △△% ・・・ 年齢別稼働率(想定値など)
  22. 22. おしまい!

×