2015-08-19

CSVに基づくラスターの作成 - 500mメッシュ地形分類

「文字列で記述された位置情報に基づくジオメトリの作成」では文字列で記述された座標値に基づいて矩形ポリゴンを作成するワークスペース例、「メッシュデータのラスター化 - 土地利用細分メッシュ」ではベクター (ポリゴン) データをラスターに変換するワークスペース例を掲載しましたが、それらで使用したトランスフォーマー (2DBoxReplacer, 3DForcer, NumricRasterizer) を組み合わせると、文字列で記述された位置情報からラスターを作成することも可能になります。
ここでは、防災科学技術研究所ウェブサイトで公開されている「500mメッシュ地形分類データ」 (CSV) に基づいてラスターを作成するワークスペース例を掲げます。
FME 2015.1.1.0 build 15515

=====
防災科学技術研究所ウェブサイトで公開されている「500mメッシュ地形分類」 データ (CSV) に基づき、地形分類番号、増幅率の値を画素値とするラスターを作成し、1次メッシュ区画単位の Geotiff 形式ファイルに出力する。

ソースデータ:
防災科学技術研究所 > 地震災害関連ページで公開されている「500mメッシュ地形分類データ」 (CSV形式)
500mメッシュ (1/2細分メッシュ) 区画ごとに、位置座標 (メッシュ区画左下、右上の座標)、標高、地形分類番号、増幅率が記述されている。
データは1次メッシュ区画ごとの CSV ファイルに格納されており、ファイル名先頭4文字が1次メッシュコードである。
CSV テーブルにヘッダ (列名を記述した行) はなく、各列の意味、及び、地形分類番号についてはダウンロードファイル同梱のフォーマット説明文書 (pdf) に記載されている。
=====

FMEワークスペース例
















[CSV] リーダー: 500mメッシュ地形分類データ CSV データを読み込む。
AttributeRenamer: 属性名を変更する (必須ではないが分かり易くするため)。
SubstringExtractor: ソースファイル名 (fme_basename) から1次メッシュコードを抽出する。
2DBoxReplacer: メッシュ区画の左下、右上座標から矩形ポリゴンを作成する。

3DForcer: 地形分類番号をZ値とする3Dポリゴンに変換する。
NumericRasterizer: 3Dポリゴンに基づいてラスターを作成する。
[GEOTIFF] ライター (1): 地形分類番号ラスターを Geotiff ファイルに出力する。

3DForcer_2: 増幅率をZ値とする3Dポリゴンに変換する。
NumericRasterizer_2: 3Dポリゴンに基づいてラスターを作成する。
[GEOTIFF] ライター (2): 増幅率ラスターを Geotiff ファイルに出力する。

結果: FME Data Inspector による表示 (1次メッシュ 5339, 5340, 5439, 5440 区画をモザイク)
左: 地形分類番号 (作成したデータは色情報を持ちませんが、表示する際にパレットを設定して色をつけました)
右: 増幅率 (濃 < 淡)














「500mメッシュ地形分類」 CSVテーブルにはヘッダ (列名の行) がないため、[CSV] リーダーでは1行目からデータを読み込んでいます。ヘッダがない場合、[CSV] リーダーは各列にデフォルトの属性名 (col0, col1, ...) を与えます。また、ファイル名から1次メッシュコードを抽出する都合上、フォーマット属性のひとつ "fme_basename" (拡張子を除くファイル名が格納される) を現しておきました。 
AttributeRenamer は必須ではありませんが、分かり易い属性名に変更しておいた方が何かと便利です。
SubstringExtractor では、ファイル名の先頭4文字 = 1次メッシュコードを抽出して "_primaryMesh" 属性に格納しました。

データにはメッシュ区画の左下、右上の座標 (経度、緯度) が記録されているので、2DBoxReplacer によってメッシュ区画を現す矩形ポリゴンを作成することができます。
その後、データフローを2方向に分岐し、それぞれのフローで 3DForcer によってラスターの画素値とすべき値 (地形分類番号: 0~8 の整数値、増幅率: 実数値) をZ値とする3Dポリゴンに変換したうえで、NumericRasterizer によってラスターを作成します。

NumericRasterizer パラメーター設定画面
左: 地形分類番号、右: 増幅率
























Interpretation Type パラメーターで画素のビット深度を、地形分類番号については 8bit 符号なし整数 (UInt8)、増幅率については 64bit 浮動小数点数 (Real64) に設定したことを除き、2つの NumericRasterizer のパラメーター設定は同じです。
Group By パラメーターに1次メッシュコードを格納した "_primaryMesh" 属性を指定することにより、1次メッシュ区画ごとにラスターを作成することができます。

最後に2つの [GEOTIFF] ライターを追加し、地形分類番号、増幅率別のフォルダにラスターをファイルに出力します。
ライターフィーチャータイププロパティ画面で出力先フィーチャータイプ名 (Raster File Name) に "_primaryMesh" 属性を指定することで、出力先のファイル名が1次メッシュコードになります。

[GEOTIFF] ライターフィーチャータイププロパティ画面 (地形分類番号フォルダ)















煩雑になるのでワークスペース例からは省きましたが、標高を画素値とするラスターも同様に作成することができます。また、ベクター (ポリゴン) データをサポートするGISフォーマット用のライターを追加し、2DBoxReplacer にそのライターフィーチャータイプを接続すれば、メッシュポリゴンをGISデータファイルに出力することもできます。

0 件のコメント:

コメントを投稿