Rでのラスターデータの取り扱い

ラスターデータとは、格子状にならんだピクセルの1つ1つがデータ(値)を持ったデータの形式です。例えばJPEGやPNGなどの(拡大すると粗くなるような)デジタル画像データは、各ピクセルに対応する色のデータによって画像が表現されているラスターです。画像の他には、地形や、気温や降水量などの気候データもラスターで表現されます。そういったデータはある地点(座標)と標高、気候パラメータなどの数値の対応の集合だからです。 Rでラスターデータを扱うにはrasterパッケージを使います。 rasterパッケージは数多くの機能を持ちますが、ここでは既存のラスターデータの取り扱いとその簡単な操作についてのみ説明します。 より基本的または発展的な内容は https://rspatial.org/raster/spatial/8-rastermanip.html などが詳しいでしょう。このページで扱ったデータはWorldClimのものです。WorldClimについては こちらの記事などを参照してください。

1.パッケージの読み込み

はじめにrasterパッケージを読み込みます。このとき同時にspパッケージも読み込まれます。既存のラスターデータを読み込むには raster(“ファイル名”) を使います。

library("raster")
Bio1<-raster("ccmimdbi10.tif")

もちろん .tif の他に .bil .png .jpg なども読み込めます。

2.プロット、色の指定

plot(オブジェクト名)で簡単に画像を描けます。

plot(Bio1)

軸や範囲の設定は通常のplot()と同じように行えます。色は col=色 で指定できますが、グラデーションにするには

cm.colors()
topo.colors()
terrain.colors()
heat.colors()
rainbow()

などを使います。引数には色の分割数を指定します。デフォルトではcol=rev(terrain.colors(255)) となっています。

plot(Bio1,col=topo.colors(255))

3.解像度の変更

解像度を上げるにはデータの補完が必要なので簡単ではありませんが、解像度を下げるのは簡単です。aggregate(オブジェクト名,fact=値)を使います。

roughBio1<-aggregate(Bio1,fact=20)
plot(roughBio1)

上のように fact=20 を指定するとdimensionsは 900×2160から45×108に変わります。

4.値の操作

RのRasterオブジェクトは、ラスターデータの値をベクトルとして持っています。values(オブジェクト名) で値の入ったベクトルを取り出すことができます。ベクトルの長さはラスターのセル数(dimensionsが900×2160ならセル数は900×2160 = 1944000)と等しくなっており、値を持たないセルのデータはNAとなっています。逆に、values(オブジェクト名) にラスターのセル数と等しい長さのベクトルを代入することで、自由にラスターデータの中身を変更することができます。

5.rasterの保存

rasterオブジェクトはTIFファイルなどの形式で保存できます。

writeRaster(オブジェクト名, "保存先/ファイル名.tif")