SlideShare a Scribd company logo
1 of 15
Download to read offline
はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析
rgdal パッケージによるリモートセンシング解析
(ヒマラヤの氷河の事例)
縫村崇行
(NUIMURA, Takayuki)
名古屋大学大学院環境学研究科
1 / 15
はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析
自己紹介
専門:GIS や RS によるヒマラヤの氷河の変動把握
所属:環境学・雪氷圏変動研究室 (地球水循環センター)
R 歴:2 年 (MATLAB⇒Octave⇒R)
GIS 歴:6 年 (ArcGIS⇒R+GRASS GIS+GMT)
0
1000
2000
3000
4000
5000
6000
7000
8000
[ m ]
Nepal
China
India
Khumbu Himal
Kathmandu
80˚ 85˚ 90˚
25˚
30˚
86˚30' 86˚40' 86˚50' 87˚00'
27˚30'
27˚40'
27˚50'
28˚00'
10 km
N
Everest
2 / 15
はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析
自己紹介
最先端・次世代研究開発支援プログラム (JSPS)
研究課題名:アジア高山域における山岳氷河変動が水資源に
与える影響の評価 (代表者:坂井亜規子)
プロジェクト名:Glacier Area Mapping for Discharge in Asian
Mountains (GAMDAM)⇐ あえてスペルは変えてます
プロジェクト URL:http://gamdam.cryoscience.net/
ALOS、ASTER、SRTM などの衛星画像 +DEM から、
氷河の空間分布データベースを作る簡単なお仕事です。
3 / 15
はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析
GIS とは
GIS (Geographic Information System)
GIS では大きく分けて 2 種類 (ベクター、ラスター) のデータを
使用
ベクター:点、線、面などの地物データ
=⇒ESRI Shape ファイル形式 (*.shp) が一般的
ラスター:連続的なグリッドデータ
=⇒GeoTiff ファイル形式 (*.tif) が一般的
ベクター ラスター
rgdal パッケージではいずれのファイルも読込み可能
4 / 15
はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析
rgdal を使って GIS データ (ラスター) の読み込み
R では基本パッケージでも様々なデータ読み込み関数がある
read.bin:バイナリデータ
read.csv:CSV
read.delim:様々な区切りテキスト (CSV、タブ、空白など)
rgdal パッケージでは、以下の GIS 読み込み関数が使用できる
readOGR:ベクターデータ
readGDAL:ラスターデータ
5 / 15
はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析
rgdal で対応している GIS フォーマット
ほとんどの GIS データに対応している。有名どころだと
readOGR で読めるベクターデータ
ESRI shapefile:ベクターデータのデファクトスタンダード
KML:Google Earth ファイル
GPX:GPS ファイル (Garmin、GPS 付きスマートフォンなど)
readGDAL で読めるラスターデータ
GeoTiff:ラスターデータのデファクトスタンダード
HDF:科学データ配布によく使われる
netCDF:気候データで一般的
6 / 15
はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析
rgdal パッケージを使う下準備
#rgdal パッケージのインストール (最初だけ)
install.packages(“rgdal”)
#rgdal パッケージの読み込み、セッションの最初に毎回
library(rgdal)
※ Windows では自動的に依存するパッケージもインストールして
くれる。Ubuntu linux の場合は、事前に OS のパッケージマネー
ジャで、”gdal”、”libgdal1-dev”、”libproj-dev” をインストールする必
要がある。
7 / 15
はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析
readGDAL で読み込み
D ドライブにある GeoTiff を rsdata という変数に読み込む場合
#ディレクトリの移動
setwd(“D:”)
#GeoTiff ファイルの読み込み
rsdata <- readGDAL(“aster_dem.tif”)
=⇒rsdata という名前の sp クラスの変数が生成される
この sp クラスの変数はラスターデータのグリッド値の他に、
様々な属性情報を含んでいる。
8 / 15
はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析
sp クラスの構造
sp クラスデータは以下のようなデータ格納庫 (スロット) をもつ
data:data.frame 形式で band1 というラベルのグリッド値を
もつ
grid:さらに 3 つのサブスロットに分かれる
cellcentre.offset:左下端のグリッドの中心座標
cellsize:グリッドサイズ (= 解像度)
cells.dim:ラスターデータの列数と行数
grid.index:不明
coords:左下端と右上端のグリッドの中心座標
bbox:西、東、南、北端の座標
(coords の値と 1/2 グリッドサイズ分ずれていることに注意)
proj4string:1 つのサブスロットを含む
projargs:座標情報 (WGS84 地理座標系、UTMzone45N など)
9 / 15
はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析
sp クラスのデータ処理
よって sp クラスのデータの処理は、"rsdata@data[,1]” を操作する
ことによって行える。
いくつかの処理例
#Nodata を計算から除外 (-9999 を Nodata にしている場合)
rsdata@data[rsdata@data[,1] == -9999,1] <- NaN
#平均値の計算
mean(rsdata@data[,1], na.rm=T)
#グリッド値のヒストグラムのプロット
hist(rsdata@data[,1])
10 / 15
はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析
ASTER による NDVI の計算
NDVI (正規化植生指数)
NDVI =
(IR − R)
(IR + R)
IR: Infrared (赤外バンド)
R:Red (赤色バンド)
ASTER の場合 (R⇒Band2、IR⇒Band3)
NDVI =
(Band3 − Band2)
(Band3 + Band2)
IR: Infrared (赤外バンド)
R:Red (赤色バンド)
Band2 Band3 NDVI
11 / 15
はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析
ASTER による NDVI の計算
#GeoTiff ファイルの読み込み
rsdataBand2 <- readGDAL(“aster_band2.tif”)
rsdataBand3 <- readGDAL(“aster_band3.tif”)
# 計算結果用の変数を確保 (Band3 でもどっちでも良い)
rsdataNDVI <- rsdataBand2
#ラスター演算
ndvi <- (rsdataBand3@data[,1] - rsdataBand2@data[,1]) / (rsdataBand3@data[,1] +
rsdataBand2@data[,1])
#sp クラスは band1 というラベルがある (紛らわしいので注意!)
rsdataNDVI@data[,1] <- data.frame(band1=ndvi)
#GeoTiff ファイルに結果を書き出し
writeGDAL(rsdataNDVI, “aster_ndvi.tif”)
12 / 15
はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析
最後にちょっとだけ (簡単に) 自分の研究紹介
1992–2008 年の間の多時期の DEM
(地形データ) から、標高値の時系列
変化をグリッドごとに計算
=⇒ 氷河の表面高度がどのように変
化しているか (上昇 or 低下) が求め
られる
13 / 15
はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析
最後にちょっとだけ (簡単に) 自分の研究紹介
表面高度の変化速度の計算例
#2 重の for ループでグリッドごとに以下の計算を行う
#使用する地形データの年 (実際は 15 時期)
years <- c(1992,2000,2004,2008)
#各年の地形データでの標高値 (固定)
elevation <- c(5029,5025,5020,5020)
#lm 関数で高度変化速度 (m year−1
) の計算
lm(elevation years, data.frame(years, elevation))
#下記の計算結果が表示される
#Coefficients:
#(Intercept) years
#6252.6857 -0.6143
#つまりこの例の場合は y = -0.6143x + 6252.6857 と線形近似された
14 / 15
はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析
氷河表面の高度変化率の空間分布
色のついている場所が氷河域、暖色が低下、寒色が上昇を示す
投稿準備中
15 / 15

More Related Content

More from Takayuki Nuimura

131107 foss4 g_osaka_grass7_presentation
131107 foss4 g_osaka_grass7_presentation131107 foss4 g_osaka_grass7_presentation
131107 foss4 g_osaka_grass7_presentation
Takayuki 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_presentation
Takayuki Nuimura
 
131101 foss4 g_tokyo_r_presentation
131101 foss4 g_tokyo_r_presentation131101 foss4 g_tokyo_r_presentation
131101 foss4 g_tokyo_r_presentation
Takayuki 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_presentation
Takayuki Nuimura
 
130113 os mworkshop_presentation
130113 os mworkshop_presentation130113 os mworkshop_presentation
130113 os mworkshop_presentation
Takayuki Nuimura
 
120727 gms2012nagoya presentation
120727 gms2012nagoya presentation120727 gms2012nagoya presentation
120727 gms2012nagoya presentation
Takayuki Nuimura
 
120630 os mworkshop_presentation
120630 os mworkshop_presentation120630 os mworkshop_presentation
120630 os mworkshop_presentation
Takayuki Nuimura
 
120619 os mworkshop_presentation
120619 os mworkshop_presentation120619 os mworkshop_presentation
120619 os mworkshop_presentation
Takayuki Nuimura
 
120620 chred r_presentation2
120620 chred r_presentation2120620 chred r_presentation2
120620 chred r_presentation2
Takayuki Nuimura
 
120620 chred r_presentation1
120620 chred r_presentation1120620 chred r_presentation1
120620 chred r_presentation1
Takayuki Nuimura
 

More from Takayuki Nuimura (20)

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
 
130113 os mworkshop_presentation
130113 os mworkshop_presentation130113 os mworkshop_presentation
130113 os mworkshop_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
 
2012 nov foss4g_presentation
2012 nov foss4g_presentation2012 nov foss4g_presentation
2012 nov foss4g_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
 
120630 os mworkshop_presentation
120630 os mworkshop_presentation120630 os mworkshop_presentation
120630 os mworkshop_presentation
 
120619 os mworkshop_presentation
120619 os mworkshop_presentation120619 os mworkshop_presentation
120619 os mworkshop_presentation
 
120620 chred r_presentation2
120620 chred r_presentation2120620 chred r_presentation2
120620 chred r_presentation2
 
120620 chred r_presentation1
120620 chred r_presentation1120620 chred r_presentation1
120620 chred r_presentation1
 

Recently uploaded

Recently uploaded (7)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

110326 nagoyar presentation_slidshare

  • 1. はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析 rgdal パッケージによるリモートセンシング解析 (ヒマラヤの氷河の事例) 縫村崇行 (NUIMURA, Takayuki) 名古屋大学大学院環境学研究科 1 / 15
  • 2. はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析 自己紹介 専門:GIS や RS によるヒマラヤの氷河の変動把握 所属:環境学・雪氷圏変動研究室 (地球水循環センター) R 歴:2 年 (MATLAB⇒Octave⇒R) GIS 歴:6 年 (ArcGIS⇒R+GRASS GIS+GMT) 0 1000 2000 3000 4000 5000 6000 7000 8000 [ m ] Nepal China India Khumbu Himal Kathmandu 80˚ 85˚ 90˚ 25˚ 30˚ 86˚30' 86˚40' 86˚50' 87˚00' 27˚30' 27˚40' 27˚50' 28˚00' 10 km N Everest 2 / 15
  • 3. はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析 自己紹介 最先端・次世代研究開発支援プログラム (JSPS) 研究課題名:アジア高山域における山岳氷河変動が水資源に 与える影響の評価 (代表者:坂井亜規子) プロジェクト名:Glacier Area Mapping for Discharge in Asian Mountains (GAMDAM)⇐ あえてスペルは変えてます プロジェクト URL:http://gamdam.cryoscience.net/ ALOS、ASTER、SRTM などの衛星画像 +DEM から、 氷河の空間分布データベースを作る簡単なお仕事です。 3 / 15
  • 4. はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析 GIS とは GIS (Geographic Information System) GIS では大きく分けて 2 種類 (ベクター、ラスター) のデータを 使用 ベクター:点、線、面などの地物データ =⇒ESRI Shape ファイル形式 (*.shp) が一般的 ラスター:連続的なグリッドデータ =⇒GeoTiff ファイル形式 (*.tif) が一般的 ベクター ラスター rgdal パッケージではいずれのファイルも読込み可能 4 / 15
  • 5. はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析 rgdal を使って GIS データ (ラスター) の読み込み R では基本パッケージでも様々なデータ読み込み関数がある read.bin:バイナリデータ read.csv:CSV read.delim:様々な区切りテキスト (CSV、タブ、空白など) rgdal パッケージでは、以下の GIS 読み込み関数が使用できる readOGR:ベクターデータ readGDAL:ラスターデータ 5 / 15
  • 6. はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析 rgdal で対応している GIS フォーマット ほとんどの GIS データに対応している。有名どころだと readOGR で読めるベクターデータ ESRI shapefile:ベクターデータのデファクトスタンダード KML:Google Earth ファイル GPX:GPS ファイル (Garmin、GPS 付きスマートフォンなど) readGDAL で読めるラスターデータ GeoTiff:ラスターデータのデファクトスタンダード HDF:科学データ配布によく使われる netCDF:気候データで一般的 6 / 15
  • 7. はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析 rgdal パッケージを使う下準備 #rgdal パッケージのインストール (最初だけ) install.packages(“rgdal”) #rgdal パッケージの読み込み、セッションの最初に毎回 library(rgdal) ※ Windows では自動的に依存するパッケージもインストールして くれる。Ubuntu linux の場合は、事前に OS のパッケージマネー ジャで、”gdal”、”libgdal1-dev”、”libproj-dev” をインストールする必 要がある。 7 / 15
  • 8. はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析 readGDAL で読み込み D ドライブにある GeoTiff を rsdata という変数に読み込む場合 #ディレクトリの移動 setwd(“D:”) #GeoTiff ファイルの読み込み rsdata <- readGDAL(“aster_dem.tif”) =⇒rsdata という名前の sp クラスの変数が生成される この sp クラスの変数はラスターデータのグリッド値の他に、 様々な属性情報を含んでいる。 8 / 15
  • 9. はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析 sp クラスの構造 sp クラスデータは以下のようなデータ格納庫 (スロット) をもつ data:data.frame 形式で band1 というラベルのグリッド値を もつ grid:さらに 3 つのサブスロットに分かれる cellcentre.offset:左下端のグリッドの中心座標 cellsize:グリッドサイズ (= 解像度) cells.dim:ラスターデータの列数と行数 grid.index:不明 coords:左下端と右上端のグリッドの中心座標 bbox:西、東、南、北端の座標 (coords の値と 1/2 グリッドサイズ分ずれていることに注意) proj4string:1 つのサブスロットを含む projargs:座標情報 (WGS84 地理座標系、UTMzone45N など) 9 / 15
  • 10. はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析 sp クラスのデータ処理 よって sp クラスのデータの処理は、"rsdata@data[,1]” を操作する ことによって行える。 いくつかの処理例 #Nodata を計算から除外 (-9999 を Nodata にしている場合) rsdata@data[rsdata@data[,1] == -9999,1] <- NaN #平均値の計算 mean(rsdata@data[,1], na.rm=T) #グリッド値のヒストグラムのプロット hist(rsdata@data[,1]) 10 / 15
  • 11. はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析 ASTER による NDVI の計算 NDVI (正規化植生指数) NDVI = (IR − R) (IR + R) IR: Infrared (赤外バンド) R:Red (赤色バンド) ASTER の場合 (R⇒Band2、IR⇒Band3) NDVI = (Band3 − Band2) (Band3 + Band2) IR: Infrared (赤外バンド) R:Red (赤色バンド) Band2 Band3 NDVI 11 / 15
  • 12. はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析 ASTER による NDVI の計算 #GeoTiff ファイルの読み込み rsdataBand2 <- readGDAL(“aster_band2.tif”) rsdataBand3 <- readGDAL(“aster_band3.tif”) # 計算結果用の変数を確保 (Band3 でもどっちでも良い) rsdataNDVI <- rsdataBand2 #ラスター演算 ndvi <- (rsdataBand3@data[,1] - rsdataBand2@data[,1]) / (rsdataBand3@data[,1] + rsdataBand2@data[,1]) #sp クラスは band1 というラベルがある (紛らわしいので注意!) rsdataNDVI@data[,1] <- data.frame(band1=ndvi) #GeoTiff ファイルに結果を書き出し writeGDAL(rsdataNDVI, “aster_ndvi.tif”) 12 / 15
  • 13. はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析 最後にちょっとだけ (簡単に) 自分の研究紹介 1992–2008 年の間の多時期の DEM (地形データ) から、標高値の時系列 変化をグリッドごとに計算 =⇒ 氷河の表面高度がどのように変 化しているか (上昇 or 低下) が求め られる 13 / 15
  • 14. はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析 最後にちょっとだけ (簡単に) 自分の研究紹介 表面高度の変化速度の計算例 #2 重の for ループでグリッドごとに以下の計算を行う #使用する地形データの年 (実際は 15 時期) years <- c(1992,2000,2004,2008) #各年の地形データでの標高値 (固定) elevation <- c(5029,5025,5020,5020) #lm 関数で高度変化速度 (m year−1 ) の計算 lm(elevation years, data.frame(years, elevation)) #下記の計算結果が表示される #Coefficients: #(Intercept) years #6252.6857 -0.6143 #つまりこの例の場合は y = -0.6143x + 6252.6857 と線形近似された 14 / 15
  • 15. はじめに GIS とは rgdal とは rgdal を使う ラスター演算 氷河の解析 氷河表面の高度変化率の空間分布 色のついている場所が氷河域、暖色が低下、寒色が上昇を示す 投稿準備中 15 / 15