SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
2012年11月5日
                    FOSS4G 2012 Tokyo
                   @東京大学柏キャンパス




RでGIS ハンズオンセッション


NPO法人オープンコンシェルジュ/OSGeo.JP
         星田侑久
Rについて
    R
    http://www.r-project.org/

    R(wikipedia)
    http://ja.wikipedia.org/wiki/R%E8%A8%80%E8
    %AA%9E

    Rjpwiki
    http://www.okada.jp.org/RWiki/

    RでGIS
    http://www.okada.jp.org/RWiki/?%A3%D2%A4
    %C7%A3%C7%A3%C9%A3%D3


2
Rについて
    商用版はS-PLUS
    いいところ
     データ量が多くても平気
     扱える分析手法が豊富
     やろうと思えば空間情報を用いた分析は
    いろいろできる



3
Rのインストール
    windows, mac, linuxで動作可能
    http://cran.md.tsukuba.ac.jp/




4
とりあえず動かしてみる
    # xに1を代入
    x <- 1
    x
    # yに1を代入
    y <- 2
    y
    # xとyを足したものをzに代入
    z <- sum(x, y)
    z



5
使用するデータ
    【地図で見る統計(統計GIS)】
    http://www.e-stat.go.jp/SG2/toukeichiri/TopFrame.do?fromPage=init&toPage=download

    ①平成22年国勢調査(小地域)
     東京都目黒区、世界測地系平面直角第9系、shp
    ②住宅の建て方別世帯数(小地域)
     東京都目黒区、txt

    【国土数値情報ダウンロードサービス】
    http://nlftp.mlit.go.jp/ksj/gml/gml_datalist.html

    ③鉄道データ、世界測地系緯度経度、shp

6
概要
    1.データのインポート
    2.データの結合
    3.データ加工
    4.グラフの描画
    5.クラスター分析
    6.主題図の作成



7
パッケージのインストール(オフライン)

    パッケージ
    ●R言語のプログラムを配布用の形式に保存したもの
    ●関数やデータセット、リファレンスマニュアルなどがひ
    とまとめにされた、いわば出来合いのアプリケーション・
    関数ライブラリ・データベース

    #パッケージが格納されているフォルダの確認
    .libPaths()

    上記のフォルダにPackageフォルダ内のデータをコピー



8
パッケージのインストール(オンライン)

    #パッケージのインストール
    install.packages(“maptools”)

    #パッケージの読み込み
    library(maptools)




9
作業ディレクトリの設定
     #作業ディレクトリの設定
     setwd("フルパス")
     c:¥temp → c:¥¥temp
             → c:/temp

     #windowsの場合
     ¥WORK¥win

     #mac、linuxの場合
     ¥WORK¥mac
10
データのインポート
     #shpをインポート
     #目黒区
     meguro01 <- readShapePoly("h22ka13110.shp")
     #座標系の設定
     proj4string(meguro01) <-
     CRS("+init=epsg:2451")
     #画面に表示
     plot(meguro01)
     #ヘッダーの表示
     names(meguro01)
     #サマリーの表示
     summary(meguro01)


11
投影変換
     EPSGコード
       地理座標系をあらわすコード
     http://spatialreference.org/
     https://sites.google.com/site/gistoolboxes/

     meguro02 <-
      spTransform(
         meguro01,
         CRS = CRS("+init=epsg:4612"))



12
データのインポート
     #dbfをインポート
     dbf01 <- read.dbf("h22ka13110.dbf")
     #属性データをインポート
     txt01 <-
     read.csv("tblT000577C13110.txt")
     #型の違いを確認
     class(meguro02)
     #カラムへのアクセス
     meguro02$KEY_CODE

13
データの結合
     #単純にmergeすると型が変わる
     tmp <- merge(meguro02, txt01,
     by="KEY_CODE")
     class(tmp)

     #sort=Fオプションが大切
     meguro03 <- meguro02
     meguro03@data <-
          merge(meguro02@data,
                txt01,
                by="KEY_CODE", sort=F)
14
ひとやすみ
     #関数のhelp
     help(readShapePoly)

     各パッケージのドキュメント
     http://cran.r-project.org/web/packages/maptools/maptools.pdf
     http://cran.r-project.org/web/packages/sp/sp.pdf




15
データ加工
     #演算
     #数値型に変換して演算
     #一戸建て世帯割合=一戸建て世帯/世帯数
     meguro03$p000577002 <-
     as.numeric(as.character(meguro03$T000577002)) /
     as.numeric(as.character(meguro03$T000577001))




16
データ加工
     #欠損値を0埋め
     meguro03$p000577003 <-
           ifelse(is.na(meguro03$p000577003),
                  0,
                  meguro03$p000577003)
     #確認
     subset(meguro03@data,
            KEY_CODE == 13110001004,
            c(T000577001,T000577002,T000577003,T000577004,
              T000577005,T000577006,T000577007,T000577008,
              T000577009))
     #基本統計量
     summary(as.numeric
             (as.character
              (meguro03@data$T000577003)))

17
グラフの描画
     #ヒストグラム
     hist(meguro03$p000577002,
          xlim=c(0, 1), ylim=c(0, 20),
          main="ikkodate", xlab="pro",
          col="purple")

     #散布図
     plot(meguro03$p000577002,
          meguro03@data$p000577004,
          xlab="pro_ikkodate", ylab="pro_kyoudou",
          main="scatter plot",
          cex=1, pch=20, col="green",
          xlim=c(0, 1), ylim=c(0, 1))
18
クラスター分析
     #クラスター分析に投入する項目を抽出
     cluster01 <-
        meguro03@data[,
          c("p000577002","p000577003","p000577005",
            "p000577006","p000577007","p000577008",
            "p000577009")]

     #クラスター分析の実行
     cluster02 <- pam(cluster01, k=3)

     #クラスター分析の結果を図形データに結合
     meguro03$cluster.nm <- cluster02$clustering




19
クラスター分析の結果の解釈
     #クラスターのグループごとに一戸建世帯割合を集計
     (平均)
     barplot(
       by(
          meguro03$p000577002,
          meguro03$cluster.nm,
          mean),
       main="ikkodate")

     #1;共同住宅3~5階建が多い
     #2;一戸建が多い
     #3;共同住宅6~階建が多い
20
主題図の作成
     #shpへエクスポート
     writePolyShape(meguro03, "cluster.shp")

     #閾値の数
     class <- classIntervals(meguro03$cluster.nm, 3)

     #色の設定
     colcode <- findColours(class, brewer.pal(3,"Accent"))

     #凡例のラベル
     names(attr(colcode, "table"))[1] <- "1"
     names(attr(colcode, "table"))[2] <- "2"
     names(attr(colcode, "table"))[3] <- "3"



21
主題図の作成
     #PDFへ出力、日本語も使えるように
     pdf("meguro.pdf",family = "Japan1GothicBBB")
     #クラスター分析の結果を格納したレイヤー
       plot(meguro03,
             xlim=c(139.6496,139.7295),
             ylim=c(35.5973,35.6734),
             col=colcode,
             axe=TRUE)
     #地図のタイトル
       title("目黒区")

22
主題図の作成
     #レイヤーの重ね合わせ
      par(new=T)
     #線路レイヤー
      plot(railroad,
           xlim=c(139.6496,139.7295),
           ylim=c(35.5973,35.6734),
           col="black",
           lwd=1)
     #レイヤーの重ね合わせ
      par(new=T)

23
主題図の作成
     #駅レイヤー
      plot(station,
           xlim=c(139.6496,139.7295),
           ylim=c(35.5973,35.6734),
           col = "red",
           lwd = 3)
     #レイヤーの重ね合わせ
      par(new=T)
     #地図の凡例
      legend(139.6496,35.6734,
              legend=names(attr(colcode, "table")),
              fill=attr(colcode, "palette"),
              cex=0.6,
              bg='gray')


24
主題図の作成
     #町丁目名のラベル、ハロー
       invisible(
          text(getSpPPolygonsLabptSlots(meguro03),
               labels=as.character(meguro03$MOJI),
               cex=0.25,
               col="white",
               font=2))
       invisible(
          text(getSpPPolygonsLabptSlots(meguro03),
               labels=as.character(meguro03$MOJI),
               cex=0.25,
               col="black",
               font=1))
     #PDF出力の終了
     dev.off()

25
参考書籍
     谷村 晋         古谷知之
     地理空間データ分析    Rによる空間データの統計分析




26

Contenu connexe

Tendances

データとは何か
データとは何かデータとは何か
データとは何かKenta Suzuki
 
diffの真髄
diffの真髄diffの真髄
diffの真髄fuku68
 
Pgunconf 20121212-postgeres fdw
Pgunconf 20121212-postgeres fdwPgunconf 20121212-postgeres fdw
Pgunconf 20121212-postgeres fdwToshi Harada
 
Lt ingaoho-jsonb+postgeres fdw
Lt ingaoho-jsonb+postgeres fdwLt ingaoho-jsonb+postgeres fdw
Lt ingaoho-jsonb+postgeres fdwToshi Harada
 
第12回計算機構成
第12回計算機構成第12回計算機構成
第12回計算機構成眞樹 冨澤
 
第10回 計算機構成
第10回 計算機構成第10回 計算機構成
第10回 計算機構成眞樹 冨澤
 
SQL勉強会 初級編
SQL勉強会 初級編SQL勉強会 初級編
SQL勉強会 初級編Kazuma Hidaka
 
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用Shintaro Fukushima
 
mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理Shintaro Fukushima
 
FNA provime pranuese teste
FNA provime pranuese testeFNA provime pranuese teste
FNA provime pranuese testeArton Feta
 
K010 appstat201201
K010 appstat201201K010 appstat201201
K010 appstat201201t2tarumi
 
kagamicomput201707
kagamicomput201707kagamicomput201707
kagamicomput201707swkagami
 
wakuwaku Scala ~Scala入門勉強会~ 資料
wakuwaku Scala ~Scala入門勉強会~ 資料wakuwaku Scala ~Scala入門勉強会~ 資料
wakuwaku Scala ~Scala入門勉強会~ 資料Mizuki Yamanaka
 
Boost.B-tree introduction
Boost.B-tree introductionBoost.B-tree introduction
Boost.B-tree introductionTakayuki Goto
 

Tendances (20)

データとは何か
データとは何かデータとは何か
データとは何か
 
diffの真髄
diffの真髄diffの真髄
diffの真髄
 
Pgunconf 20121212-postgeres fdw
Pgunconf 20121212-postgeres fdwPgunconf 20121212-postgeres fdw
Pgunconf 20121212-postgeres fdw
 
Lt ingaoho-jsonb+postgeres fdw
Lt ingaoho-jsonb+postgeres fdwLt ingaoho-jsonb+postgeres fdw
Lt ingaoho-jsonb+postgeres fdw
 
CG2013 12
CG2013 12CG2013 12
CG2013 12
 
第12回計算機構成
第12回計算機構成第12回計算機構成
第12回計算機構成
 
第10回 計算機構成
第10回 計算機構成第10回 計算機構成
第10回 計算機構成
 
SQL勉強会 初級編
SQL勉強会 初級編SQL勉強会 初級編
SQL勉強会 初級編
 
機械学習
機械学習機械学習
機械学習
 
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
 
mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理mmapパッケージを使ってお手軽オブジェクト管理
mmapパッケージを使ってお手軽オブジェクト管理
 
python-geohex
python-geohexpython-geohex
python-geohex
 
Rust samurai#01
Rust samurai#01Rust samurai#01
Rust samurai#01
 
R intro
R introR intro
R intro
 
FNA provime pranuese teste
FNA provime pranuese testeFNA provime pranuese teste
FNA provime pranuese teste
 
K010 appstat201201
K010 appstat201201K010 appstat201201
K010 appstat201201
 
kagamicomput201707
kagamicomput201707kagamicomput201707
kagamicomput201707
 
wakuwaku Scala ~Scala入門勉強会~ 資料
wakuwaku Scala ~Scala入門勉強会~ 資料wakuwaku Scala ~Scala入門勉強会~ 資料
wakuwaku Scala ~Scala入門勉強会~ 資料
 
Boost.B-tree introduction
Boost.B-tree introductionBoost.B-tree introduction
Boost.B-tree introduction
 
Rの高速化
Rの高速化Rの高速化
Rの高速化
 

Similaire à RでGISハンズオンセッション

R言語勉強会#10.pdf
R言語勉強会#10.pdfR言語勉強会#10.pdf
R言語勉強会#10.pdfTakuya Kubo
 
Rデモ03_データ分析編2016
Rデモ03_データ分析編2016Rデモ03_データ分析編2016
Rデモ03_データ分析編2016wada, kazumi
 
[機械学習]文章のクラス分類
[機械学習]文章のクラス分類[機械学習]文章のクラス分類
[機械学習]文章のクラス分類Tetsuya Hasegawa
 
Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門Fixstars Corporation
 
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタつくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ京大 マイコンクラブ
 
Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発Ryo Suzuki
 
データサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみるデータサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみるShintaro Fukushima
 
プログラミング技法特論第8回
プログラミング技法特論第8回プログラミング技法特論第8回
プログラミング技法特論第8回Noritada Shimizu
 
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Etsuji Nakai
 
「ベイズ推定でパラメータリスクを捉える &優れたサンプラーとしてのMCMC」の実装例rstanコード
「ベイズ推定でパラメータリスクを捉える &優れたサンプラーとしてのMCMC」の実装例rstanコード「ベイズ推定でパラメータリスクを捉える &優れたサンプラーとしてのMCMC」の実装例rstanコード
「ベイズ推定でパラメータリスクを捉える &優れたサンプラーとしてのMCMC」の実装例rstanコード基晴 出井
 
Python Data-Visualization Package Status
Python Data-Visualization Package StatusPython Data-Visualization Package Status
Python Data-Visualization Package StatusYukio Okuda
 
R入門とgoogle map +α
R入門とgoogle map +αR入門とgoogle map +α
R入門とgoogle map +αkobexr
 
空間統計を使って地価分布図を描いてみる
空間統計を使って地価分布図を描いてみる空間統計を使って地価分布図を描いてみる
空間統計を使って地価分布図を描いてみるYukihiro NAKAJIMA
 

Similaire à RでGISハンズオンセッション (20)

ALPSチュートリアル(6) Matplotlib入門
ALPSチュートリアル(6) Matplotlib入門ALPSチュートリアル(6) Matplotlib入門
ALPSチュートリアル(6) Matplotlib入門
 
R言語勉強会#10.pdf
R言語勉強会#10.pdfR言語勉強会#10.pdf
R言語勉強会#10.pdf
 
Rデモ03_データ分析編2016
Rデモ03_データ分析編2016Rデモ03_データ分析編2016
Rデモ03_データ分析編2016
 
[機械学習]文章のクラス分類
[機械学習]文章のクラス分類[機械学習]文章のクラス分類
[機械学習]文章のクラス分類
 
Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門
 
KMLとR言語
KMLとR言語KMLとR言語
KMLとR言語
 
Rを用いたGIS
Rを用いたGISRを用いたGIS
Rを用いたGIS
 
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタつくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ
 
R_note_01_ver1.1
R_note_01_ver1.1 R_note_01_ver1.1
R_note_01_ver1.1
 
Gnuplotあれこれ
GnuplotあれこれGnuplotあれこれ
Gnuplotあれこれ
 
Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発
 
データサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみるデータサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみる
 
Prosym2012
Prosym2012Prosym2012
Prosym2012
 
Rでreproducible research
Rでreproducible researchRでreproducible research
Rでreproducible research
 
プログラミング技法特論第8回
プログラミング技法特論第8回プログラミング技法特論第8回
プログラミング技法特論第8回
 
Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編Python 機械学習プログラミング データ分析ライブラリー解説編
Python 機械学習プログラミング データ分析ライブラリー解説編
 
「ベイズ推定でパラメータリスクを捉える &優れたサンプラーとしてのMCMC」の実装例rstanコード
「ベイズ推定でパラメータリスクを捉える &優れたサンプラーとしてのMCMC」の実装例rstanコード「ベイズ推定でパラメータリスクを捉える &優れたサンプラーとしてのMCMC」の実装例rstanコード
「ベイズ推定でパラメータリスクを捉える &優れたサンプラーとしてのMCMC」の実装例rstanコード
 
Python Data-Visualization Package Status
Python Data-Visualization Package StatusPython Data-Visualization Package Status
Python Data-Visualization Package Status
 
R入門とgoogle map +α
R入門とgoogle map +αR入門とgoogle map +α
R入門とgoogle map +α
 
空間統計を使って地価分布図を描いてみる
空間統計を使って地価分布図を描いてみる空間統計を使って地価分布図を描いてみる
空間統計を使って地価分布図を描いてみる
 

Dernier

リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライドリアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライドKen Fukui
 
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」inspirehighstaff03
 
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slidessusere0a682
 
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」inspirehighstaff03
 
My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」inspirehighstaff03
 
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」inspirehighstaff03
 
My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」inspirehighstaff03
 
TEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfTEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfyukisuga3
 
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」inspirehighstaff03
 
My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」inspirehighstaff03
 
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfEstablishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfoganekyokoi
 
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライドリアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライドKen Fukui
 
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライドリアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライドKen Fukui
 
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライドリアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライドKen Fukui
 
My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」inspirehighstaff03
 
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライドリアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライドKen Fukui
 
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfMy Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfinspirehighstaff03
 
My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」inspirehighstaff03
 
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」inspirehighstaff03
 
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」inspirehighstaff03
 

Dernier (20)

リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライドリアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
 
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
 
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
 
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
 
My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」
 
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
 
My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」
 
TEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdfTEAMIN Service overview for customer_20240422.pdf
TEAMIN Service overview for customer_20240422.pdf
 
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
 
My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」
 
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfEstablishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdf
 
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライドリアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
 
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライドリアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
 
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライドリアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
リアル戦国探究in米沢 当日講座3スライド(スタッフ共有用)『糧は三度はさいせず』についてのスライド
 
My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」
 
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライドリアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
 
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfMy Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
 
My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」
 
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」
 
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
 

RでGISハンズオンセッション

  • 1. 2012年11月5日 FOSS4G 2012 Tokyo @東京大学柏キャンパス RでGIS ハンズオンセッション NPO法人オープンコンシェルジュ/OSGeo.JP 星田侑久
  • 2. Rについて R http://www.r-project.org/ R(wikipedia) http://ja.wikipedia.org/wiki/R%E8%A8%80%E8 %AA%9E Rjpwiki http://www.okada.jp.org/RWiki/ RでGIS http://www.okada.jp.org/RWiki/?%A3%D2%A4 %C7%A3%C7%A3%C9%A3%D3 2
  • 3. Rについて 商用版はS-PLUS いいところ データ量が多くても平気 扱える分析手法が豊富 やろうと思えば空間情報を用いた分析は いろいろできる 3
  • 4. Rのインストール windows, mac, linuxで動作可能 http://cran.md.tsukuba.ac.jp/ 4
  • 5. とりあえず動かしてみる # xに1を代入 x <- 1 x # yに1を代入 y <- 2 y # xとyを足したものをzに代入 z <- sum(x, y) z 5
  • 6. 使用するデータ 【地図で見る統計(統計GIS)】 http://www.e-stat.go.jp/SG2/toukeichiri/TopFrame.do?fromPage=init&toPage=download ①平成22年国勢調査(小地域) 東京都目黒区、世界測地系平面直角第9系、shp ②住宅の建て方別世帯数(小地域) 東京都目黒区、txt 【国土数値情報ダウンロードサービス】 http://nlftp.mlit.go.jp/ksj/gml/gml_datalist.html ③鉄道データ、世界測地系緯度経度、shp 6
  • 7. 概要 1.データのインポート 2.データの結合 3.データ加工 4.グラフの描画 5.クラスター分析 6.主題図の作成 7
  • 8. パッケージのインストール(オフライン) パッケージ ●R言語のプログラムを配布用の形式に保存したもの ●関数やデータセット、リファレンスマニュアルなどがひ とまとめにされた、いわば出来合いのアプリケーション・ 関数ライブラリ・データベース #パッケージが格納されているフォルダの確認 .libPaths() 上記のフォルダにPackageフォルダ内のデータをコピー 8
  • 9. パッケージのインストール(オンライン) #パッケージのインストール install.packages(“maptools”) #パッケージの読み込み library(maptools) 9
  • 10. 作業ディレクトリの設定 #作業ディレクトリの設定 setwd("フルパス") c:¥temp → c:¥¥temp → c:/temp #windowsの場合 ¥WORK¥win #mac、linuxの場合 ¥WORK¥mac 10
  • 11. データのインポート #shpをインポート #目黒区 meguro01 <- readShapePoly("h22ka13110.shp") #座標系の設定 proj4string(meguro01) <- CRS("+init=epsg:2451") #画面に表示 plot(meguro01) #ヘッダーの表示 names(meguro01) #サマリーの表示 summary(meguro01) 11
  • 12. 投影変換 EPSGコード 地理座標系をあらわすコード http://spatialreference.org/ https://sites.google.com/site/gistoolboxes/ meguro02 <- spTransform( meguro01, CRS = CRS("+init=epsg:4612")) 12
  • 13. データのインポート #dbfをインポート dbf01 <- read.dbf("h22ka13110.dbf") #属性データをインポート txt01 <- read.csv("tblT000577C13110.txt") #型の違いを確認 class(meguro02) #カラムへのアクセス meguro02$KEY_CODE 13
  • 14. データの結合 #単純にmergeすると型が変わる tmp <- merge(meguro02, txt01, by="KEY_CODE") class(tmp) #sort=Fオプションが大切 meguro03 <- meguro02 meguro03@data <- merge(meguro02@data, txt01, by="KEY_CODE", sort=F) 14
  • 15. ひとやすみ #関数のhelp help(readShapePoly) 各パッケージのドキュメント http://cran.r-project.org/web/packages/maptools/maptools.pdf http://cran.r-project.org/web/packages/sp/sp.pdf 15
  • 16. データ加工 #演算 #数値型に変換して演算 #一戸建て世帯割合=一戸建て世帯/世帯数 meguro03$p000577002 <- as.numeric(as.character(meguro03$T000577002)) / as.numeric(as.character(meguro03$T000577001)) 16
  • 17. データ加工 #欠損値を0埋め meguro03$p000577003 <- ifelse(is.na(meguro03$p000577003), 0, meguro03$p000577003) #確認 subset(meguro03@data, KEY_CODE == 13110001004, c(T000577001,T000577002,T000577003,T000577004, T000577005,T000577006,T000577007,T000577008, T000577009)) #基本統計量 summary(as.numeric (as.character (meguro03@data$T000577003))) 17
  • 18. グラフの描画 #ヒストグラム hist(meguro03$p000577002, xlim=c(0, 1), ylim=c(0, 20), main="ikkodate", xlab="pro", col="purple") #散布図 plot(meguro03$p000577002, meguro03@data$p000577004, xlab="pro_ikkodate", ylab="pro_kyoudou", main="scatter plot", cex=1, pch=20, col="green", xlim=c(0, 1), ylim=c(0, 1)) 18
  • 19. クラスター分析 #クラスター分析に投入する項目を抽出 cluster01 <- meguro03@data[, c("p000577002","p000577003","p000577005", "p000577006","p000577007","p000577008", "p000577009")] #クラスター分析の実行 cluster02 <- pam(cluster01, k=3) #クラスター分析の結果を図形データに結合 meguro03$cluster.nm <- cluster02$clustering 19
  • 20. クラスター分析の結果の解釈 #クラスターのグループごとに一戸建世帯割合を集計 (平均) barplot( by( meguro03$p000577002, meguro03$cluster.nm, mean), main="ikkodate") #1;共同住宅3~5階建が多い #2;一戸建が多い #3;共同住宅6~階建が多い 20
  • 21. 主題図の作成 #shpへエクスポート writePolyShape(meguro03, "cluster.shp") #閾値の数 class <- classIntervals(meguro03$cluster.nm, 3) #色の設定 colcode <- findColours(class, brewer.pal(3,"Accent")) #凡例のラベル names(attr(colcode, "table"))[1] <- "1" names(attr(colcode, "table"))[2] <- "2" names(attr(colcode, "table"))[3] <- "3" 21
  • 22. 主題図の作成 #PDFへ出力、日本語も使えるように pdf("meguro.pdf",family = "Japan1GothicBBB") #クラスター分析の結果を格納したレイヤー plot(meguro03, xlim=c(139.6496,139.7295), ylim=c(35.5973,35.6734), col=colcode, axe=TRUE) #地図のタイトル title("目黒区") 22
  • 23. 主題図の作成 #レイヤーの重ね合わせ par(new=T) #線路レイヤー plot(railroad, xlim=c(139.6496,139.7295), ylim=c(35.5973,35.6734), col="black", lwd=1) #レイヤーの重ね合わせ par(new=T) 23
  • 24. 主題図の作成 #駅レイヤー plot(station, xlim=c(139.6496,139.7295), ylim=c(35.5973,35.6734), col = "red", lwd = 3) #レイヤーの重ね合わせ par(new=T) #地図の凡例 legend(139.6496,35.6734, legend=names(attr(colcode, "table")), fill=attr(colcode, "palette"), cex=0.6, bg='gray') 24
  • 25. 主題図の作成 #町丁目名のラベル、ハロー invisible( text(getSpPPolygonsLabptSlots(meguro03), labels=as.character(meguro03$MOJI), cex=0.25, col="white", font=2)) invisible( text(getSpPPolygonsLabptSlots(meguro03), labels=as.character(meguro03$MOJI), cex=0.25, col="black", font=1)) #PDF出力の終了 dev.off() 25
  • 26. 参考書籍 谷村 晋 古谷知之 地理空間データ分析 Rによる空間データの統計分析 26