More Related Content
More from Takayuki Nuimura (20)
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