SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
R を使った空間情報の可視化




                 R を使った空間情報の可視化

                         縫村崇行
                    (NUIMURA, Takayuki)

                      環境学・雪氷研究室


                     R 勉強会 (CHERD)
                         2012/06/20




                                          1 / 15
R を使った空間情報の可視化
 はじめに



   自己紹介

             専門:GIS や RS によるヒマラヤの氷河の変動把握
             所属:名大・環境学・雪氷圏変動研究室 (理農館)
             OSGeo1 財団 日本支部 運営委員




主な業務内容
   氷河の空間分布 DB 作成
   ヒマラヤでフィールド調査 (DGPS)
   3D モニターを使ってステレオ写真測量
   研究室で GIS や R 言語の指導



        1
            The Open Source Geospatial Foundation
                                                    2 / 15
R を使った空間情報の可視化
 はじめに



   自己紹介 (メイン業務以外の活動)

   FOSS4G ツール勉強会@名古屋を主催
   (第 1 回 2011/12/11、第 2 回 2012/4/14)

             FOSS4Ga とは:QGIS、GRASS GIS、GMT や R など、
             オープンソースの空間解析ソフトウェア
             URL:https://sites.google.com/site/foss4gnagoya/
        a
            Free and Open Source Software for Geospatial


   Nagoya.R (東海地方を中心とした R の勉強会)
             名大の言語系の研究者の方が主催 (2011/3/26–2012/5/19)
             URL:http://corpus-study.info/nagoyar/
             世界各地の都市で同様のイベント
             (ex. Tokyo.R、Tsukuba,R、London.R)

                                                               3 / 15
R を使った空間情報の可視化
 はじめに



   空間情報について



   空間情報とは
   空間座標 (X,Y,(+Z)) を持ったデータ:
        種類:点、線、面で代表されるデータ
        例:気象観測地点、震源地、道路の経路、土地利用区分



   =⇒ 今回は点データ を R を使って加工し、
   Google Earth で可視化する方法について話します。




                                    4 / 15
R を使った空間情報の可視化
 データ&手法



   USGS [Latest Earthquakes: Feeds & Data]
   Past 7 Days, M 2.5+ earthquakes (CSV 形式) を使用。




   データ内容
   Src,Eqid,Version,Datetime,Lat,Lon,Magnitude,Depth,NST,Region
   us,c0005hua,6,"Monday, August 22, 2011 00:07:09 UTC",42.6731,143.2804,4.7,32.30,95,"Hokkaido, Japan region"


   =⇒6 行目が X 座標 (Longitude)、5 行目が Y 座標 (Latitude)。
                                                                                                                 5 / 15
R を使った空間情報の可視化
 データ&手法



   今回使用する R のパッケージ




     1    rgdal:GIS データを取り扱う
          =⇒XY 座標を元に Google Earth ファイル (KML) を作成するの
          に使用
     2    XML:XML ファイルを取り扱う
          =⇒Google Earth ファイル (KML) を修正するのに使用




                                                      6 / 15
R を使った空間情報の可視化
 データ処理の流れ



   パッケージを使う下準備




   #rgdal1 , XML パッケージのインストール (最初だけ)
   install.packages(“rgdal”)
   install.packages(“XML”)


   #rgdal, XML パッケージの読み込み、セッションの最初に毎回
   library(rgdal)
   library(XML)




     1
      Windows では自動的に依存するパッケージもインストールしてくれる。Ubuntu linux の場合は、事前に OS のパッ
   ケージマネージャで、”gdal”、”libgdal1-dev”、”libproj-dev” をインストールする必要がある。
                                                                         7 / 15
R を使った空間情報の可視化
 データ処理の流れ



   Step 1: CSV から KML の作成


   CSV 読み込み ⇒sp オブジェクト生成 ⇒KML 出力
   #Input
   csv.filename <- "eqs7day-M2.5.txt"

   #Output
   kml.filename <- "eqs7day-M2.5.kml"

   #CSV ファイル読み込み
   work.table <- read.csv(csv.filename)

   #点数をカウント (あとで使用)
   n.data <- nrow(work.table)

   #sp オブジェクトの作成
   work.obj <- SpatialPointsDataFrame(lonlat, work.table, proj4string=CRS("+proj=longlat"))

   #KML ファイルの出力
   writeOGR(work.obj, dsn=kml.filename, layer="sample", driver="KML")




                                                                                              8 / 15
R を使った空間情報の可視化
 データ処理の流れ



   Step 1: CSV から KML の作成




                            9 / 15
R を使った空間情報の可視化
 データ処理の流れ



   KML ファイルの構造


   出力した KML ファイルは、
   以下のように座標情報、属性情報を記述している。
   <Placemark>
        <ExtendedData><SchemaData schemaUrl="sample">
            <SimpleData name="Src">ak</SimpleData>
            <SimpleData name="Eqid">10300708</SimpleData>
            <SimpleData name="Version">2</SimpleData>
            <SimpleData name="Datetime">Sunday, August 21, 2011 22:27:02 UTC</SimpleData>
            <SimpleData name="Lat">52.7168</SimpleData>
            <SimpleData name="Lon">-169.5406</SimpleData>
            <SimpleData name="Magnitude">2.5</SimpleData>
            <SimpleData name="Depth">4.9</SimpleData>
            <SimpleData name="NST">10</SimpleData>
            <SimpleData name="Region">Fox Islands, Aleutian Islands, Alaska</SimpleData>
        </SchemaData></ExtendedData>
        <Point>
            <coordinates>-169.540600000000012,52.716799999999999</coordinates>
        </Point>
   </Placemark>




                                                                                            10 / 15
R を使った空間情報の可視化
 データ処理の流れ



   KML ファイルの構造



   出力した KML ファイルは、
   以下のように座標情報、属性情報を記述している。
   <Placemark>
        <ExtendedData><SchemaData schemaUrl="sample">
            <SimpleData name="Src">ak</SimpleData>
            <SimpleData name="Eqid">10300708</SimpleData>
            <SimpleData name="Version">2</SimpleData>
            <SimpleData name="Datetime">Sunday, August 21, 2011 22:27:02 UTC</SimpleData>
            <SimpleData name="Lat">52.7168</SimpleData>
            <SimpleData name="Lon">-169.5406</SimpleData>
            <SimpleData name="Magnitude">2.5</SimpleData>
            <SimpleData name="Depth">4.9</SimpleData>
            <SimpleData name="NST">10</SimpleData>
            <SimpleData name="Region">Fox Islands, Aleutian Islands, Alaska</SimpleData>
        </SchemaData></ExtendedData>
        <Point>
            <coordinates>-169.540600000000012,52.716799999999999</coordinates>
        </Point>
        <name>hoge</name>
        <TimeStamp>
            <when>2011-08-15</when>
        </TimeStamp>
   </Placemark>

   =⇒Step 2 では、KML に時間属性と名前タグを追加                                                            11 / 15
R を使った空間情報の可視化
 データ処理の流れ



   Step 2-1: 時間情報の抽出&整形




   USGS の記法: “Monday, August 22, 2011 00:07:09 UTC”
   KML の記法: 2011-08-22


   CSV から時間情報の抽出
   n.data <- nrow(work.table)

   # 時間列を抽出して KML 記法に変換
   time.list <- strptime(work.table[,4], format="%A, %B %d, %Y")




                                                                   12 / 15
R を使った空間情報の可視化
 データ処理の流れ



   Step 2-2: KML ファイルへ情報追加

   KML に時間タグ<TimeStamp>と名前タグ<name>を追加
   #KML ファイルの読み込み
   xml.data <- xmlTreeParse(kml.filename)
   node0 <- xmlRoot(xml.data)

   node.offset <- 2

   for (i in seq(1, n.data)) {
        cat("Processing", i, "/", n.data, "")
        j <- i + node.offset

       # 新ノード (名前、時間) の生成
       name.node <- xmlNode("name", work.table[i,2])
       time.node <- xmlNode("TimeStamp", xmlNode("when", time.list[i]))

       # メインの XML に新ノードの挿入
       node0[[1]][[1]][[j]] <- addChildren(node0[[1]][[1]][[j]], name.node)
       node0[[1]][[1]][[j]] <- addChildren(node0[[1]][[1]][[j]], time.node)
   }

   #KML ファイルの上書き保存
   saveXML(node0, kml.filename)
                                                                              13 / 15
R を使った空間情報の可視化
 データ処理の流れ



   Step 2-2: KML ファイルへ情報追加




                             14 / 15
R を使った空間情報の可視化
 おわりに



   おわりに


   今回は位置情報 + 時間情報だけを処理しましたが、その他の属性
   情報 (ex. マグニチュード) に応じてアイコンの種類や色、大きさ
   を変えたり、ポップアップ内容を HTML でカスタマイズも可能
   です。

   このようなカスタマイズした KML ファイル出力は、XY 座標列の
   ある Excel などのデータがあれば、R スクリプトを少し修正する
   ことでできます。興味のある方は、ぜひご相談ください。
        mail      :nuimura@nagoya-u.jp
        twitter   :t_nuimura



                                         15 / 15

Contenu connexe

Tendances

FOSS4G 2014 Hokkaidoハンズオン - PostGIS入門
FOSS4G 2014 Hokkaidoハンズオン - PostGIS入門FOSS4G 2014 Hokkaidoハンズオン - PostGIS入門
FOSS4G 2014 Hokkaidoハンズオン - PostGIS入門Hideo Harada
 
FOSS4Gでオープンデータもかんたん
FOSS4GでオープンデータもかんたんFOSS4Gでオープンデータもかんたん
FOSS4GでオープンデータもかんたんKosuke Asahi
 
20121109 foss4g handsonaok
20121109 foss4g handsonaok20121109 foss4g handsonaok
20121109 foss4g handsonaok和人 青木
 
QuantumGISを使ったPostgreSQL/PostGIS利用方法紹介
QuantumGISを使ったPostgreSQL/PostGIS利用方法紹介QuantumGISを使ったPostgreSQL/PostGIS利用方法紹介
QuantumGISを使ったPostgreSQL/PostGIS利用方法紹介Yoichi Kayama
 

Tendances (7)

FOSS4G 2014 Hokkaidoハンズオン - PostGIS入門
FOSS4G 2014 Hokkaidoハンズオン - PostGIS入門FOSS4G 2014 Hokkaidoハンズオン - PostGIS入門
FOSS4G 2014 Hokkaidoハンズオン - PostGIS入門
 
Lean geo-location-data-format
Lean geo-location-data-formatLean geo-location-data-format
Lean geo-location-data-format
 
QGIS入門(1)
QGIS入門(1)QGIS入門(1)
QGIS入門(1)
 
OpenMapEngine
OpenMapEngineOpenMapEngine
OpenMapEngine
 
FOSS4Gでオープンデータもかんたん
FOSS4GでオープンデータもかんたんFOSS4Gでオープンデータもかんたん
FOSS4Gでオープンデータもかんたん
 
20121109 foss4g handsonaok
20121109 foss4g handsonaok20121109 foss4g handsonaok
20121109 foss4g handsonaok
 
QuantumGISを使ったPostgreSQL/PostGIS利用方法紹介
QuantumGISを使ったPostgreSQL/PostGIS利用方法紹介QuantumGISを使ったPostgreSQL/PostGIS利用方法紹介
QuantumGISを使ったPostgreSQL/PostGIS利用方法紹介
 

En vedette

130113 os mworkshop_presentation
130113 os mworkshop_presentation130113 os mworkshop_presentation
130113 os mworkshop_presentationTakayuki Nuimura
 
2012 nov foss4g_presentation
2012 nov foss4g_presentation2012 nov foss4g_presentation
2012 nov foss4g_presentationTakayuki Nuimura
 
QGIS はじめてのラスタ解析
QGIS はじめてのラスタ解析QGIS はじめてのラスタ解析
QGIS はじめてのラスタ解析Mayumit
 
150828 rihn gis_workshop_handson_presentation
150828 rihn gis_workshop_handson_presentation150828 rihn gis_workshop_handson_presentation
150828 rihn gis_workshop_handson_presentationTakayuki Nuimura
 

En vedette (6)

130113 os mworkshop_presentation
130113 os mworkshop_presentation130113 os mworkshop_presentation
130113 os mworkshop_presentation
 
2012 nov foss4g_presentation
2012 nov foss4g_presentation2012 nov foss4g_presentation
2012 nov foss4g_presentation
 
QGIS はじめてのラスタ解析
QGIS はじめてのラスタ解析QGIS はじめてのラスタ解析
QGIS はじめてのラスタ解析
 
150828 rihn gis_workshop_handson_presentation
150828 rihn gis_workshop_handson_presentation150828 rihn gis_workshop_handson_presentation
150828 rihn gis_workshop_handson_presentation
 
Leaflet.js超入門
Leaflet.js超入門Leaflet.js超入門
Leaflet.js超入門
 
LeafletでWebGIS入門
LeafletでWebGIS入門LeafletでWebGIS入門
LeafletでWebGIS入門
 

Similaire à 120620 chred r_presentation1

国際標準規格を用いたASTER高温領域検出システムの開発
国際標準規格を用いたASTER高温領域検出システムの開発国際標準規格を用いたASTER高温領域検出システムの開発
国際標準規格を用いたASTER高温領域検出システムの開発Naotaka YAMAMOTO CHIKASADA
 
120414 foss4g nagoya_presentation2
120414 foss4g nagoya_presentation2120414 foss4g nagoya_presentation2
120414 foss4g nagoya_presentation2Takayuki Nuimura
 
HCL Nomad で GPS へアクセスしよう
HCL Nomad で GPS へアクセスしようHCL Nomad で GPS へアクセスしよう
HCL Nomad で GPS へアクセスしようHaruyuki Nakano
 
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみた
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみたオラクルGo! 位置情報アプリをクラウドで簡単に作ってみた
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみたYosuke Arai
 
OSC2011 Tokyo/Spring Hadoop入門
OSC2011 Tokyo/Spring Hadoop入門OSC2011 Tokyo/Spring Hadoop入門
OSC2011 Tokyo/Spring Hadoop入門Shinichi YAMASHITA
 
OSC2012 Tokyo/Spring - Hadoop入門
OSC2012 Tokyo/Spring - Hadoop入門OSC2012 Tokyo/Spring - Hadoop入門
OSC2012 Tokyo/Spring - Hadoop入門Shinichi YAMASHITA
 
R入門とgoogle map +α
R入門とgoogle map +αR入門とgoogle map +α
R入門とgoogle map +αkobexr
 
PL/CUDA - GPU Accelerated In-Database Analytics
PL/CUDA - GPU Accelerated In-Database AnalyticsPL/CUDA - GPU Accelerated In-Database Analytics
PL/CUDA - GPU Accelerated In-Database AnalyticsKohei KaiGai
 
Sqoopコネクタを書いてみた (Hadoopソースコードリーディング第12回 発表資料)
Sqoopコネクタを書いてみた (Hadoopソースコードリーディング第12回 発表資料)Sqoopコネクタを書いてみた (Hadoopソースコードリーディング第12回 発表資料)
Sqoopコネクタを書いてみた (Hadoopソースコードリーディング第12回 発表資料)NTT DATA OSS Professional Services
 
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best Practiceマルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best PracticeHadoop / Spark Conference Japan
 
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化gree_tech
 
Googleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてGoogleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてKazuki Ohta
 
Rish mwr analysis_tutorial_shinbori_20120810
Rish mwr analysis_tutorial_shinbori_20120810Rish mwr analysis_tutorial_shinbori_20120810
Rish mwr analysis_tutorial_shinbori_20120810Atsuki Shinbori
 
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~Sotaro Kimura
 
20181212 - PGconf.ASIA - LT
20181212 - PGconf.ASIA - LT20181212 - PGconf.ASIA - LT
20181212 - PGconf.ASIA - LTKohei KaiGai
 
Rish mwr analysis_tutorial_shinbori_20120810
Rish mwr analysis_tutorial_shinbori_20120810Rish mwr analysis_tutorial_shinbori_20120810
Rish mwr analysis_tutorial_shinbori_20120810Iugo Net
 
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11MapR Technologies Japan
 

Similaire à 120620 chred r_presentation1 (20)

国際標準規格を用いたASTER高温領域検出システムの開発
国際標準規格を用いたASTER高温領域検出システムの開発国際標準規格を用いたASTER高温領域検出システムの開発
国際標準規格を用いたASTER高温領域検出システムの開発
 
120414 foss4g nagoya_presentation2
120414 foss4g nagoya_presentation2120414 foss4g nagoya_presentation2
120414 foss4g nagoya_presentation2
 
HCL Nomad で GPS へアクセスしよう
HCL Nomad で GPS へアクセスしようHCL Nomad で GPS へアクセスしよう
HCL Nomad で GPS へアクセスしよう
 
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみた
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみたオラクルGo! 位置情報アプリをクラウドで簡単に作ってみた
オラクルGo! 位置情報アプリをクラウドで簡単に作ってみた
 
OSC2011 Tokyo/Spring Hadoop入門
OSC2011 Tokyo/Spring Hadoop入門OSC2011 Tokyo/Spring Hadoop入門
OSC2011 Tokyo/Spring Hadoop入門
 
OSC2012 Tokyo/Spring - Hadoop入門
OSC2012 Tokyo/Spring - Hadoop入門OSC2012 Tokyo/Spring - Hadoop入門
OSC2012 Tokyo/Spring - Hadoop入門
 
R入門とgoogle map +α
R入門とgoogle map +αR入門とgoogle map +α
R入門とgoogle map +α
 
PL/CUDA - GPU Accelerated In-Database Analytics
PL/CUDA - GPU Accelerated In-Database AnalyticsPL/CUDA - GPU Accelerated In-Database Analytics
PL/CUDA - GPU Accelerated In-Database Analytics
 
Sqoopコネクタを書いてみた (Hadoopソースコードリーディング第12回 発表資料)
Sqoopコネクタを書いてみた (Hadoopソースコードリーディング第12回 発表資料)Sqoopコネクタを書いてみた (Hadoopソースコードリーディング第12回 発表資料)
Sqoopコネクタを書いてみた (Hadoopソースコードリーディング第12回 発表資料)
 
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best Practiceマルチテナント Hadoop クラスタのためのモニタリング Best Practice
マルチテナント Hadoop クラスタのためのモニタリング Best Practice
 
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
グラフデータベースNeo4Jでアセットダウンロードの構成管理と最適化
 
Googleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてGoogleの基盤クローン Hadoopについて
Googleの基盤クローン Hadoopについて
 
Rish mwr analysis_tutorial_shinbori_20120810
Rish mwr analysis_tutorial_shinbori_20120810Rish mwr analysis_tutorial_shinbori_20120810
Rish mwr analysis_tutorial_shinbori_20120810
 
Tokyo r 25_lt_isobe
Tokyo r 25_lt_isobeTokyo r 25_lt_isobe
Tokyo r 25_lt_isobe
 
Rを用いたGIS
Rを用いたGISRを用いたGIS
Rを用いたGIS
 
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
 
20181212 - PGconf.ASIA - LT
20181212 - PGconf.ASIA - LT20181212 - PGconf.ASIA - LT
20181212 - PGconf.ASIA - LT
 
Rish mwr analysis_tutorial_shinbori_20120810
Rish mwr analysis_tutorial_shinbori_20120810Rish mwr analysis_tutorial_shinbori_20120810
Rish mwr analysis_tutorial_shinbori_20120810
 
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
 
MapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知るMapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知る
 

Plus de Takayuki Nuimura

161104 foss4 g_tokyo_qgis_handson_presentation
161104 foss4 g_tokyo_qgis_handson_presentation161104 foss4 g_tokyo_qgis_handson_presentation
161104 foss4 g_tokyo_qgis_handson_presentationTakayuki Nuimura
 
オープンサイエンスの雪氷学への応用と展望 雪氷研究大会2016 特別セッションの紹介
オープンサイエンスの雪氷学への応用と展望 雪氷研究大会2016 特別セッションの紹介オープンサイエンスの雪氷学への応用と展望 雪氷研究大会2016 特別セッションの紹介
オープンサイエンスの雪氷学への応用と展望 雪氷研究大会2016 特別セッションの紹介Takayuki Nuimura
 
151012 foss4 g_tokyo_grass7_presentation
151012 foss4 g_tokyo_grass7_presentation151012 foss4 g_tokyo_grass7_presentation
151012 foss4 g_tokyo_grass7_presentationTakayuki Nuimura
 
151009 foss4 g_tokyo_grass7_handson_presentation
151009 foss4 g_tokyo_grass7_handson_presentation151009 foss4 g_tokyo_grass7_handson_presentation
151009 foss4 g_tokyo_grass7_handson_presentationTakayuki Nuimura
 
150810 ilts workshop_handson_presentation
150810 ilts workshop_handson_presentation150810 ilts workshop_handson_presentation
150810 ilts workshop_handson_presentationTakayuki Nuimura
 
141031 qgisr handson_presentation
141031 qgisr handson_presentation141031 qgisr handson_presentation
141031 qgisr handson_presentationTakayuki Nuimura
 
131107 foss4 g_osaka_grass7_presentation
131107 foss4 g_osaka_grass7_presentation131107 foss4 g_osaka_grass7_presentation
131107 foss4 g_osaka_grass7_presentationTakayuki Nuimura
 
131101 foss4 g_tokyo_grass_shell_presentation
131101 foss4 g_tokyo_grass_shell_presentation131101 foss4 g_tokyo_grass_shell_presentation
131101 foss4 g_tokyo_grass_shell_presentationTakayuki Nuimura
 
131101 foss4 g_tokyo_r_presentation
131101 foss4 g_tokyo_r_presentation131101 foss4 g_tokyo_r_presentation
131101 foss4 g_tokyo_r_presentationTakayuki Nuimura
 
131031 foss4 g_tokyo_grass_handson_presentation
131031 foss4 g_tokyo_grass_handson_presentation131031 foss4 g_tokyo_grass_handson_presentation
131031 foss4 g_tokyo_grass_handson_presentationTakayuki Nuimura
 
130727 nagoyar presentation
130727 nagoyar presentation130727 nagoyar presentation
130727 nagoyar presentationTakayuki Nuimura
 
130622 osc nagoya_presentation
130622 osc nagoya_presentation130622 osc nagoya_presentation
130622 osc nagoya_presentationTakayuki Nuimura
 
130612 ocu lecture_presentation
130612 ocu lecture_presentation130612 ocu lecture_presentation
130612 ocu lecture_presentationTakayuki Nuimura
 
130521 jp gu2013_handson2_presentation
130521 jp gu2013_handson2_presentation130521 jp gu2013_handson2_presentation
130521 jp gu2013_handson2_presentationTakayuki Nuimura
 
130521 jp gu2013_handson1_presentation
130521 jp gu2013_handson1_presentation130521 jp gu2013_handson1_presentation
130521 jp gu2013_handson1_presentationTakayuki Nuimura
 
121215 foss4 g_nagoya_qgis_handson
121215 foss4 g_nagoya_qgis_handson121215 foss4 g_nagoya_qgis_handson
121215 foss4 g_nagoya_qgis_handsonTakayuki Nuimura
 
121105 foss4 g_tokyo_qgis_handson
121105 foss4 g_tokyo_qgis_handson121105 foss4 g_tokyo_qgis_handson
121105 foss4 g_tokyo_qgis_handsonTakayuki Nuimura
 
121107 foss4 g_osaka_r_handson_presentation
121107 foss4 g_osaka_r_handson_presentation121107 foss4 g_osaka_r_handson_presentation
121107 foss4 g_osaka_r_handson_presentationTakayuki Nuimura
 
120727 gms2012nagoya presentation
120727 gms2012nagoya presentation120727 gms2012nagoya presentation
120727 gms2012nagoya presentationTakayuki Nuimura
 

Plus de Takayuki Nuimura (20)

161104 foss4 g_tokyo_qgis_handson_presentation
161104 foss4 g_tokyo_qgis_handson_presentation161104 foss4 g_tokyo_qgis_handson_presentation
161104 foss4 g_tokyo_qgis_handson_presentation
 
オープンサイエンスの雪氷学への応用と展望 雪氷研究大会2016 特別セッションの紹介
オープンサイエンスの雪氷学への応用と展望 雪氷研究大会2016 特別セッションの紹介オープンサイエンスの雪氷学への応用と展望 雪氷研究大会2016 特別セッションの紹介
オープンサイエンスの雪氷学への応用と展望 雪氷研究大会2016 特別セッションの紹介
 
151012 foss4 g_tokyo_grass7_presentation
151012 foss4 g_tokyo_grass7_presentation151012 foss4 g_tokyo_grass7_presentation
151012 foss4 g_tokyo_grass7_presentation
 
151009 foss4 g_tokyo_grass7_handson_presentation
151009 foss4 g_tokyo_grass7_handson_presentation151009 foss4 g_tokyo_grass7_handson_presentation
151009 foss4 g_tokyo_grass7_handson_presentation
 
150810 ilts workshop_handson_presentation
150810 ilts workshop_handson_presentation150810 ilts workshop_handson_presentation
150810 ilts workshop_handson_presentation
 
141031 qgisr handson_presentation
141031 qgisr handson_presentation141031 qgisr handson_presentation
141031 qgisr handson_presentation
 
131107 foss4 g_osaka_grass7_presentation
131107 foss4 g_osaka_grass7_presentation131107 foss4 g_osaka_grass7_presentation
131107 foss4 g_osaka_grass7_presentation
 
131101 foss4 g_tokyo_grass_shell_presentation
131101 foss4 g_tokyo_grass_shell_presentation131101 foss4 g_tokyo_grass_shell_presentation
131101 foss4 g_tokyo_grass_shell_presentation
 
131101 foss4 g_tokyo_r_presentation
131101 foss4 g_tokyo_r_presentation131101 foss4 g_tokyo_r_presentation
131101 foss4 g_tokyo_r_presentation
 
131031 foss4 g_tokyo_grass_handson_presentation
131031 foss4 g_tokyo_grass_handson_presentation131031 foss4 g_tokyo_grass_handson_presentation
131031 foss4 g_tokyo_grass_handson_presentation
 
130727 nagoyar presentation
130727 nagoyar presentation130727 nagoyar presentation
130727 nagoyar presentation
 
130622 osc nagoya_presentation
130622 osc nagoya_presentation130622 osc nagoya_presentation
130622 osc nagoya_presentation
 
130612 ocu lecture_presentation
130612 ocu lecture_presentation130612 ocu lecture_presentation
130612 ocu lecture_presentation
 
130521 jp gu2013_handson2_presentation
130521 jp gu2013_handson2_presentation130521 jp gu2013_handson2_presentation
130521 jp gu2013_handson2_presentation
 
130521 jp gu2013_handson1_presentation
130521 jp gu2013_handson1_presentation130521 jp gu2013_handson1_presentation
130521 jp gu2013_handson1_presentation
 
121215 foss4 g_nagoya_qgis_handson
121215 foss4 g_nagoya_qgis_handson121215 foss4 g_nagoya_qgis_handson
121215 foss4 g_nagoya_qgis_handson
 
121105 foss4 g_tokyo_qgis_handson
121105 foss4 g_tokyo_qgis_handson121105 foss4 g_tokyo_qgis_handson
121105 foss4 g_tokyo_qgis_handson
 
121107 foss4 g_osaka_r_handson_presentation
121107 foss4 g_osaka_r_handson_presentation121107 foss4 g_osaka_r_handson_presentation
121107 foss4 g_osaka_r_handson_presentation
 
121012 gisa qgis_handson
121012 gisa qgis_handson121012 gisa qgis_handson
121012 gisa qgis_handson
 
120727 gms2012nagoya presentation
120727 gms2012nagoya presentation120727 gms2012nagoya presentation
120727 gms2012nagoya presentation
 

120620 chred r_presentation1

  • 1. R を使った空間情報の可視化 R を使った空間情報の可視化 縫村崇行 (NUIMURA, Takayuki) 環境学・雪氷研究室 R 勉強会 (CHERD) 2012/06/20 1 / 15
  • 2. R を使った空間情報の可視化 はじめに 自己紹介 専門:GIS や RS によるヒマラヤの氷河の変動把握 所属:名大・環境学・雪氷圏変動研究室 (理農館) OSGeo1 財団 日本支部 運営委員 主な業務内容 氷河の空間分布 DB 作成 ヒマラヤでフィールド調査 (DGPS) 3D モニターを使ってステレオ写真測量 研究室で GIS や R 言語の指導 1 The Open Source Geospatial Foundation 2 / 15
  • 3. R を使った空間情報の可視化 はじめに 自己紹介 (メイン業務以外の活動) FOSS4G ツール勉強会@名古屋を主催 (第 1 回 2011/12/11、第 2 回 2012/4/14) FOSS4Ga とは:QGIS、GRASS GIS、GMT や R など、 オープンソースの空間解析ソフトウェア URL:https://sites.google.com/site/foss4gnagoya/ a Free and Open Source Software for Geospatial Nagoya.R (東海地方を中心とした R の勉強会) 名大の言語系の研究者の方が主催 (2011/3/26–2012/5/19) URL:http://corpus-study.info/nagoyar/ 世界各地の都市で同様のイベント (ex. Tokyo.R、Tsukuba,R、London.R) 3 / 15
  • 4. R を使った空間情報の可視化 はじめに 空間情報について 空間情報とは 空間座標 (X,Y,(+Z)) を持ったデータ: 種類:点、線、面で代表されるデータ 例:気象観測地点、震源地、道路の経路、土地利用区分 =⇒ 今回は点データ を R を使って加工し、 Google Earth で可視化する方法について話します。 4 / 15
  • 5. R を使った空間情報の可視化 データ&手法 USGS [Latest Earthquakes: Feeds & Data] Past 7 Days, M 2.5+ earthquakes (CSV 形式) を使用。 データ内容 Src,Eqid,Version,Datetime,Lat,Lon,Magnitude,Depth,NST,Region us,c0005hua,6,"Monday, August 22, 2011 00:07:09 UTC",42.6731,143.2804,4.7,32.30,95,"Hokkaido, Japan region" =⇒6 行目が X 座標 (Longitude)、5 行目が Y 座標 (Latitude)。 5 / 15
  • 6. R を使った空間情報の可視化 データ&手法 今回使用する R のパッケージ 1 rgdal:GIS データを取り扱う =⇒XY 座標を元に Google Earth ファイル (KML) を作成するの に使用 2 XML:XML ファイルを取り扱う =⇒Google Earth ファイル (KML) を修正するのに使用 6 / 15
  • 7. R を使った空間情報の可視化 データ処理の流れ パッケージを使う下準備 #rgdal1 , XML パッケージのインストール (最初だけ) install.packages(“rgdal”) install.packages(“XML”) #rgdal, XML パッケージの読み込み、セッションの最初に毎回 library(rgdal) library(XML) 1 Windows では自動的に依存するパッケージもインストールしてくれる。Ubuntu linux の場合は、事前に OS のパッ ケージマネージャで、”gdal”、”libgdal1-dev”、”libproj-dev” をインストールする必要がある。 7 / 15
  • 8. R を使った空間情報の可視化 データ処理の流れ Step 1: CSV から KML の作成 CSV 読み込み ⇒sp オブジェクト生成 ⇒KML 出力 #Input csv.filename <- "eqs7day-M2.5.txt" #Output kml.filename <- "eqs7day-M2.5.kml" #CSV ファイル読み込み work.table <- read.csv(csv.filename) #点数をカウント (あとで使用) n.data <- nrow(work.table) #sp オブジェクトの作成 work.obj <- SpatialPointsDataFrame(lonlat, work.table, proj4string=CRS("+proj=longlat")) #KML ファイルの出力 writeOGR(work.obj, dsn=kml.filename, layer="sample", driver="KML") 8 / 15
  • 9. R を使った空間情報の可視化 データ処理の流れ Step 1: CSV から KML の作成 9 / 15
  • 10. R を使った空間情報の可視化 データ処理の流れ KML ファイルの構造 出力した KML ファイルは、 以下のように座標情報、属性情報を記述している。 <Placemark> <ExtendedData><SchemaData schemaUrl="sample"> <SimpleData name="Src">ak</SimpleData> <SimpleData name="Eqid">10300708</SimpleData> <SimpleData name="Version">2</SimpleData> <SimpleData name="Datetime">Sunday, August 21, 2011 22:27:02 UTC</SimpleData> <SimpleData name="Lat">52.7168</SimpleData> <SimpleData name="Lon">-169.5406</SimpleData> <SimpleData name="Magnitude">2.5</SimpleData> <SimpleData name="Depth">4.9</SimpleData> <SimpleData name="NST">10</SimpleData> <SimpleData name="Region">Fox Islands, Aleutian Islands, Alaska</SimpleData> </SchemaData></ExtendedData> <Point> <coordinates>-169.540600000000012,52.716799999999999</coordinates> </Point> </Placemark> 10 / 15
  • 11. R を使った空間情報の可視化 データ処理の流れ KML ファイルの構造 出力した KML ファイルは、 以下のように座標情報、属性情報を記述している。 <Placemark> <ExtendedData><SchemaData schemaUrl="sample"> <SimpleData name="Src">ak</SimpleData> <SimpleData name="Eqid">10300708</SimpleData> <SimpleData name="Version">2</SimpleData> <SimpleData name="Datetime">Sunday, August 21, 2011 22:27:02 UTC</SimpleData> <SimpleData name="Lat">52.7168</SimpleData> <SimpleData name="Lon">-169.5406</SimpleData> <SimpleData name="Magnitude">2.5</SimpleData> <SimpleData name="Depth">4.9</SimpleData> <SimpleData name="NST">10</SimpleData> <SimpleData name="Region">Fox Islands, Aleutian Islands, Alaska</SimpleData> </SchemaData></ExtendedData> <Point> <coordinates>-169.540600000000012,52.716799999999999</coordinates> </Point> <name>hoge</name> <TimeStamp> <when>2011-08-15</when> </TimeStamp> </Placemark> =⇒Step 2 では、KML に時間属性と名前タグを追加 11 / 15
  • 12. R を使った空間情報の可視化 データ処理の流れ Step 2-1: 時間情報の抽出&整形 USGS の記法: “Monday, August 22, 2011 00:07:09 UTC” KML の記法: 2011-08-22 CSV から時間情報の抽出 n.data <- nrow(work.table) # 時間列を抽出して KML 記法に変換 time.list <- strptime(work.table[,4], format="%A, %B %d, %Y") 12 / 15
  • 13. R を使った空間情報の可視化 データ処理の流れ Step 2-2: KML ファイルへ情報追加 KML に時間タグ<TimeStamp>と名前タグ<name>を追加 #KML ファイルの読み込み xml.data <- xmlTreeParse(kml.filename) node0 <- xmlRoot(xml.data) node.offset <- 2 for (i in seq(1, n.data)) { cat("Processing", i, "/", n.data, "") j <- i + node.offset # 新ノード (名前、時間) の生成 name.node <- xmlNode("name", work.table[i,2]) time.node <- xmlNode("TimeStamp", xmlNode("when", time.list[i])) # メインの XML に新ノードの挿入 node0[[1]][[1]][[j]] <- addChildren(node0[[1]][[1]][[j]], name.node) node0[[1]][[1]][[j]] <- addChildren(node0[[1]][[1]][[j]], time.node) } #KML ファイルの上書き保存 saveXML(node0, kml.filename) 13 / 15
  • 14. R を使った空間情報の可視化 データ処理の流れ Step 2-2: KML ファイルへ情報追加 14 / 15
  • 15. R を使った空間情報の可視化 おわりに おわりに 今回は位置情報 + 時間情報だけを処理しましたが、その他の属性 情報 (ex. マグニチュード) に応じてアイコンの種類や色、大きさ を変えたり、ポップアップ内容を HTML でカスタマイズも可能 です。 このようなカスタマイズした KML ファイル出力は、XY 座標列の ある Excel などのデータがあれば、R スクリプトを少し修正する ことでできます。興味のある方は、ぜひご相談ください。 mail :nuimura@nagoya-u.jp twitter :t_nuimura 15 / 15