【QGIS】単バンドのGeoTiff画像に色を埋め込む
単バンドの画像をGISソフトに表示させるとグレースケールの画像が表示されますよね?
これを一つ一つプロパティからシンボル設定を開いて色設定をするのは非常にめんどくさい・・・
そこで、今回はグレースケールの画像に色を埋め込む設定を紹介します。
いわゆるインデックスカラー設定です。
この方法では画像の値が1なら赤色というように、直接色設定を埋め込むため、GISソフトにレイヤを追加しても常にその色設定が反映されます。
■使用したデータ
今回使用するデータはJAXAの公開する「高解像度土地利用土地被覆図」です。
地球観測衛星だいち(ALOS)の観測データを元に、日本全国の土地利用を約10mメッシュ単位で分類したものを無償公開するという大変ありがたいデータです。
高解像度土地利用土地被覆図ホームページ – JAXA 第一宇宙技術部門 Earth-graphy
※今回紹介するデータには、JAXAのデータ利用条件に基づき「データ元:高解像度土地利用土地被覆図/JAXA」として、出典を記載しています。
研究データ等の利用条件 – JAXA 第一宇宙技術部門 Earth-graphy
■手順
では、TIFF画像への色の埋め込み方法を紹介していきます。
まずダウンロードした「高解像度土地利用土地被覆図」はすでに色の埋め込みがされているので、今回は色の埋め込みを一旦解除したデータを使用します。
手順1:「OSGeo4W Shell」の起動
こちらはQGISをインストールしたものの中に含まれており、GDAL系コマンドの実行に便利です。
手順2:vtrファイルの作成
gdal_transelateを使用し、仮想ラスタに一度変換します。
記載方法は、
gdal_transelate -of VRT [input] [output]
です。OSGeo4W Shellのコマンドラインで実行します。
~ gdal_translate -of VRT D:¥test.tif D:¥test.vrt ~
手順3:vtrファイルの編集
作成したvrtファイルをテキストエディタなどで開きます。
9行目に<ColorInterp>Gray</ColorInterp>
という記載がありますね。これは、「データをグレースケールで表示する」という意味です。この記載を書き換えることで、色を自由に設定することができます。
記載内容の変更方法は単純です。
まず、
<ColorInterp>Gray</ColorInterp>
の部分を
<ColorInterp>Pallete</ColorInterp>
に書き換えます。
そしてその下に<ColorTable>を作成し、値ごとに色を設定していきます。
<ColorTable>
<Entry c1 = "0" c2 = "0" c3 = "0" c4 = "255">
<Entry c1 = "0" c2 = "0" c3 = "204" c4 = "255">
・
・
</ColorTable>
この<Entry 〜>の部分が画像の値ごとの色情報になります。
上から順番に値が0の時、値が1の時というふうに一行が一つの値をしています。
c1〜c3の数値がRGBの値になるので全て0にすると黒色、全て255にすると白色となります。
このルールに従い、画像の値ごとにRGBの値を指定することで色を埋め込むことができます。
手順4:GeoTiff画像への色埋め込み
設定したvrtファイルをTiff画像へ適用することで、色の埋め込みが完了します。
先程と同様にgdal_transelateを使用し、ラスタに再変換します。
記載方法は、
gdal_transelate [input] [output]
です。
~ gdal_translate -of VRT D:¥test.vrt D:¥Color.tif ~
■作成したデータ
今回作成したデータをQGISで表示してみました。
右下にGISでの凡例を表示しています。RGB表示でなく、値ごとに色が割り当てられていることが確認できます。
マップへの追加段階でこの色表示になるので、よく使う画像は色設定をしておくと何かと便利です。
■今回使用したソフト
QGIS 3.16
終わりに
これまでに作成した地図などをSUZURIで販売しています。
興味を持った方は是非、見に来てください!