2015-07-12

ラスターの統合 - バンド結合

ラスターの統合には2種類あります。ひとつは、異なる領域の複数のラスターを結合してひとつの大きなラスターに変換すること(モザイク)、もうひとつは、同一の領域の複数のラスターのバンドを結合してひとつのラスターに変換すること(バンド結合)です。ここでは、バンド結合を行うワークスペース例を掲げます。
FME 2015.1.0.3 build 15485
# モザイク処理については「ラスターの統合- モザイク」を参照してください。

=====
産業技術総合研究所 QuiQuake - 地震動マップ即時推定システム - で公開されている「地震動マップ(確定)/QuakeMap」 Geotiff 形式ラスターデータ(PGA, PGV, INT 3種類、各1バンド)について、観測時刻ごとに3つのラスターデータをバンド結合してひとつの Geotiff データ(3バンド)に統合する。
統合後のラスターデータのバンド順は PGA, PGV, INT とする。

ソースデータ
地震動マップ(確定)/QuakeMap からダウンロードした Geotiff 形式ラスターデータファイル。観測時刻ごとに次の3種類のデータファイルがあり、ファイル名によってデータの種類、観測時刻が識別できる。
- PGA: 最大加速度
- PGV: 最大地動速度
- INT: 計測震度
各値は1バイト符号なし整数(0~255, 255は計算できない地域を示す)に正規化された画素値として記録されている。測地系はWGS84、画素のサイズは緯度方向7.5秒、経度方向11.25秒(1/4細分メッシュ区画に相当)。
その他詳細は上記サイトの「ファイルフォーマット」ページ参照。

ダウンロードファイル名: "sc*****.tiff" (PGA), "so*****.tiff" (PGV), "si*****.tiff" (INT)
データの種類はプレフィクス(sc, so, si)で識別でき、同一観測時刻のデータについて ***** の部分は共通。
=====

FMEワークスペース例1

















[GEOTIFF] リーダー: ソースデータを読み込む。
StringSearcher: ソースデータファイル名をプレフィクスと観測時刻等の部分に分割する。
AttributeRenamer: プレフィクスと観測時刻等を格納する属性名を変更する。
AttributeCreator: プレフィクス(データの種類)に基づいてバンドの結合順を決定するための属性を作成する。
Sorter: ラスターフィーチャーを観測時刻等とバンドの結合順でソートする。
RasterBandCombiner: 観測時刻別にラスターバンドを結合する。
RasterBandNodataSetter: Nodata 値を定義する。
[GEOTIFF] ライター: 観測時刻別のファイルに出力する。

StringSearcher を使うと、正規表現によって文字列を分割してリスト属性に格納することができます。この例では、ソースデータファイル名(リーダーが作成する fme_basename 属性の値)を、データの種類を表すプレフィクス(先頭2文字)と観測時刻等を表す部分(その他)に分割しています。AttributeRenamer は必須ではありませんが、この例では、プレフィクスと観測時刻等を格納する属性名を分かり易い名前に変更しました。
AttributeCreator では、Conditional Value 設定の方法によって、データの種類に応じたバンドの結合順を表す属性(連番)を作成し、Sorter によってフィーチャーを並べ替えています。これにより、次の RasterBandCmobiner で要件どおりに PGA, PGV, INT の順でバンドが結合できます。

RasterBandCombiner は、入力ラスターのバンドを入力順で結合してひとつのラスターに統合します。Group By パラメーターにソースデータファイル名のうち観測時刻を識別できる部分を格納した属性 "_basename" を指定することにより、観測時刻別にバンド結合を行うようにしています。
[GEOTIFF] ライターフィーチャータイププロパティ設定画面の出力先フィーチャータイプ名(Raster File Name)フィールドで "_basename" を選択することにより、出力先ファイル名も "_basename" の値に等しくなります。












このワークスペースによって作成した Geotiff データを、1バイト符号なし整数3バンドの画素値をRGBカラー値として解釈するソフトウェアで表示すると次のようになります(Esri ArcMap 表示例 2011年3月11日14:46分)。
















しかし、この結果を画像として表示することにはあまり意味がありません。この統合ラスターは、空間的な位置関係によって特定のエリアのデータを抽出するためのコンパクトな「データベース」として利用価値があります。
次のワークスペース例は、この統合ラスターを利用して、Shape 形式のファイルに格納されている地域(例えばひとつの県)をカバーする領域について PGA, PGV, INT 各値を属性として持つベクターデータ(メッシュポリゴン)を作成するものです。

FMEワークスペース例2

















Reprojector: 入力フィーチャーの座標系を WGS84(緯度経度)に変換して統合ラスターの座標系と合わせる。
Bufferer: 入力フィーチャーを若干拡大したバッファ領域に変換する。
BoundingBoxAccumulator: 全ての入力フィーチャーをカバーする領域のバウンディングボックスを作成する。
Clipper: 統合ラスターをバウンディングボックスでクリップする。
RasterCellCoercer: クリップされたラスターの各セルを矩形ポリゴン(メッシュ区画)に変換する。
AttributeRenamer: 各バンドの画素値を格納する属性名を変更する。

Clipper は、ベクター、ラスター両方のクリッピングに使用できます。
RasterCellCoercer は、ラスターの各セル(画素)をベクター(矩形ポリゴンまたは中心ポイント)に変換するとともに、各バンドの画素値をリスト属性 "_band{}.value" に格納します。

結果: M県をカバーする領域内のメッシュ(FME Data Inspector による一部拡大表示)
2011年3月11日14:46分

















データダウンロードサイトの「ファイルフォーマット」ページでは、ピクセル値(1バイト符号なし整数)から最大加速度、最大地動速度、計測震度を求めるための計算式も示されているので、必要に応じて AttributeCreator 等によって PGA, PGV, INT の値から正規化前の値を求め、それらを格納する属性を追加することができます。
また、ベクター(メッシュポリゴン)よりもラスターの方が使い易いという場合には、RasterExpressionEvaluator によってバンドごとの画素値を正規化前の値に置き換えることによって、クリップした領域について浮動小数点数3バンドのラスターを作成することもできます。

0 件のコメント:

コメントを投稿