画像ファイルへの出力
2012/02/06 筑波大学 田中健太郎
はじめに
これまで様々な解析を行ってきたが, 解析の結果得られたデータは, 人に見せるためのデータではない. 解析データを学会や論文, 研究室ゼミで使用したり, データを人へと渡す場合, 適切な形にデータを加工しなければならない. そこで本章では, 解析結果の加工に焦点を当てて, 演習を行う.
使用データ
高分解能衛星Landsat: 植生指標NDVI, 温度画像で作成したNDVI画像を使用する.
前回のデータをそのまま利用する場合, GRASSを起動し,
$ grass
下記を選択する.
LOCATION: UTM54 MAPSET: PERMANENT
画像ファイルフォーマット
人にデータを渡す場合, データのフォーマットを考えなくてはならない. GRASSのMAPSETに保存されているデータは, GRASS独自のデータフォーマットである (圧縮されている). GRASSのデータをそのまま渡すのは, 非常に好ましくない. そのためGRASS独自のデータフォーマットから, 他のフォーマットへ変換を行う必要がある.
どのデータフォーマットに変換すべきかは, データを読み込む環境にもよるので, 相手先に確認することが望ましい.
一般的なデータフォーマットとその変換方法を示す.
ラスターデータ
GEOTIFF形式 (r.out.gdal in=ラスターデータ名 out=出力するファイル名 format=GTiff nodata=NULL値に代入する値 ) ※r.out.gdal は, 他にも多くのデータフォーマットに対応している.
Binary形式 (r.out.bin -b in=ラスターデータ名 out=出力するファイル名 null=NULL値に代入する値) ※バイナリー形式では, .hdr, .wld にヘッダ情報が記述されている.
ベクターデータ
ESRI_Shape形式 (v.out.ogr in=ベクターデータ名 dsn=出力するファイル名(or ディレクトリ名) format=ESRI_Shapefile type=データタイプ(line,boundaryなど) )
課題 GRASSのMAPSET内のNDVI画像を, GEOTIFF形式およびBinary形式のデータへと変換せよ.
スライドや論文用画像データの作成
スライドや論文に掲載する画像データを作成する場合, まず次の点に注意する.
- 画像の色合いは適切か?
- 空間スケールの情報があるか? (位置情報や縮尺などの情報)
- 物理量を載せる場合, カラースケールの情報があるか?
これらがしっかりしていない画像データは, はっきり言って見づらい. また場合によっては, 誤解が生じ, 正しく伝わらない可能性がある.
上記の情報を含んだ画像データを作成する手段として,
- GRASS上で加工
- GMTで加工
- その他の画像処理ソフトで加工
が挙げられる. GMTは, GISデータを綺麗に表示することで定評があるソフトフェアである. しかし本章では, 扱わない (ネット上には, 非常に多くのGMTマニュアルが存在しているので, そちらを参考に). 本章では, GRASSを用いたデータ加工方法を紹介する.
<投影法がUTMの場合>
- 空間スケールの表示には, d.barscaleを用いる.
g.region rast=NDVI d.mon x0 d.rast NDVI d.barscale -m #オプション "-m" は, 空間スケールの表示場所をマウスで指定できる.
※grass7.0.3では-mが無くなっている模様。位置を指定したい時は"at=x,y"のように入力する。(追記:2018/02/12 菊島)
図1 d.barscaleの表示例
- 画像の色合いの調節は, r.colorを用いる. ※既に馴染みのあるコマンドであるため, 詳細は割愛.
r.colors NDVI color=ndvi #今回は, GRASSで用意されているカラータイプndviを用いる.
- カラースケール情報の表示には, d.legendを用いる.
d.legend NDVI range=0,1
以上で必要な情報は揃った. しかし上記コマンドをそのまま実行し, 表示してみると困ったことにデータがすべて重なっていることがわかる. これでは, 何のことか分からない. (図 2)
図2 各データが重なった状態の図
そこで各情報を適切な場所に配置し, 表示することを可能にするd.frameを用いる. d.frameは, 一つのモニタ内に複数のモニタを設置し, 複数のデータを同時に表示可能にするコマンドである.
つまりNDVI画像, 空間スケール情報, カラースケール情報の表示領域を区別し, すべてを1つのモニタで表示できる.(図3)
使用例)
d.monsize setmonitor=x0 setwidth=1200 setheight=650 #モニタのサイズを固定する. g.region n=4016875.5 s=3971218.5 w=355908 e=432345 nsres=28.5 ewres=28.5 #教材の表示範囲である. d.frame -e #frameの設定をリセットする. d.frame bg at=0,100,0,100 #frame名 "bg" を作成する. d.frame ndvi at=15,98,10,85 #frame名 "ndvi" を作成する. d.frame color at=15,60,86,99 #frame名 "color" を作成する. d.frame -s ndvi #frame名"ndvi" を選択. d.rast NDVI d.barscale at=15,97 # 投影法がlat-lonの場合は, 代わりにd.gridやd.rhumbline, d.text.freetypeを用いる. d.frame -s color #frame名"color" を選択. d.legend NDVI range=0,1 at=5,95,5,40
※grass7.0.3ではd.monsize,d.frameコマンドが無くなっている模様。(追記:2018/02/12 菊島)
図3 d.frameを用いたデータの表示例
モニタ上に表示したデータは,d.out.png を用いてPNG形式の画像として出力できる.
d.out.png NDVI
※現在はd.out.file (2018/10/18 菊島)
Keyword(s):
References:[GIS入門]