メッシュのラスタ化する際メッシュごとラスタが作成されてしまう問題

64 views
Skip to first unread message

TJ

unread,
May 19, 2016, 10:26:34 PM5/19/16
to FMEユーザーフォーラム
FME 2016.1.0.0

FMEケーススタディでは以下の記事があります。

メッシュデータのラスター化 - 土地利用細分メッシュ


その記事の記載通り一回やってみました。そのとき全て記事の記載通りうまくいきました。最終的に4個の TIFF ファイルを生成しました。


そのやり方を参考して、手元にある250mメッシュもラスタ化してとしています。

最後の GeoTIFF を書き出すところで少し問題がありました。


GeoTIFF ライダーは以下のように、出力ファイル名を固定名 「RasteTest」 に設定しています。


しかし、出力ファイルは以下のようにメッシュごとの TIFF ファイルが出力されます。


出力結果を Inspector で確認すると以下のように1つのデータセットになっています。



RasterMosaicker で結合すれば1つの TIFF ファイルになりますが、参考記事の場合、特にそのような処理がしていませんので、メッシュごとの TIFF ファイルが生成される原因は何でしょうか?

Auto Generated Inline Image 1
Auto Generated Inline Image 2
Auto Generated Inline Image 3

Takashi Iijima

unread,
May 19, 2016, 10:38:27 PM5/19/16
to FMEユーザーフォーラム
ラスターフォーマット用のライターはベクターと異なって、ライターフィーチャータイプでファイル名を指定しても、入力されたフィーチャーごとにファイルを作成し、複数あった場合はファイル名に自動的に番号を付加します。
ケーススタディの場合は、NumericRasterizer の Group By パラメーターに1次メッシュコードを格納する属性を指定することにより、1次メッシュ区画ごとにラスターを作成するとともに、1次メッシュコードをファイル名にしています。

NumericRasterizer の Group By はどのように設定していますか?

TJ

unread,
May 19, 2016, 10:58:47 PM5/19/16
to FMEユーザーフォーラム
>ケーススタディの場合は、NumericRasterizer の Group By パラメーターに1次メッシュコードを格納する属性を指定することにより、1次メッシュ区画ごとにラスターを作成するとともに、1次メッシュコードをファイル名にしています。
そういうことですか、私はGroup By を設定していませんでした。今回愛知県全体を1つのラスタを作成したいので、Group By を fme_feature_type に設定したら、問題なく1つの TIFF ファイルとして出力されました。

今回 NumericRasterizer ではなく、ImageRasterizer を使っています。
NumericRasterizer のヘルプを見ますと、以下のように記載されています。今回のメッシュデータはz値持っていませんので、ImageRasterizer を使いました。z値扱えるかどうかはこの2つのトランスフォーマーの主な違いでしょうか?また、ケーススタディでは NumericRasterizer を使っていますが、何か特別な理由がありますでしょうか?
This transformer is intended for producing elevation rasters. For producing color images, use the ImageRasterizer instead.

Takashi Iijima

unread,
May 19, 2016, 11:24:29 PM5/19/16
to fm...@googlegroups.com
私は次のように理解しています。
ImageRasterizer: 入力ベクターフィーチャーを描画した画像ラスター(1~4バンド、色情報あり)を作成する。
NumericRasterizer: 入力ベクターフィーチャーのZ値をセル値とする数値ラスター(1バンド、色情報なし)を作成する。

ラスターのファイルサイズは、同じ解像度(縦横のピクセル数)であっても1画素あたりのビット数によって変わります。
フルカラー画像では、1画素あたり最低でも 8ビット x RGB3バンド = 24ビットが必要ですが、UINT8数値ラスターならば8ビットです。
フォーマットによっては圧縮するものあるので、ファイルサイズが画素あたりのビット数と完全に比例するわけではありませんが、相対的には明らかな差がでます。

ケーススタディはカラー画像を得るのが主目的ではなく、元のデータを損なわずに軽量なデータとして保持することを目的としているので、NumericRasterizer で UINT8 数値ラスターにしました。
土地利用種別数はせいぜい10数種類しかないので、色は、必要に応じてパレットで定義すれば良いという考え方です。

カラー画像を作るのが目的である場合でも、色数が限られているならば(UINT8なら256色, UINT16なら65536色まで)、数値ラスターにして色はパレットで定義した方が、ファイルサイズを小さくできます。
ただし、パレットをサポートしないラスターフォーマットもあるので、できるかどうかは出力先のフォーマットにも依存します。

追記: RGBまたはRGBA画像ラスターからパレットを自動的に生成する RasterPaletteGenerator という便利なトランスフォーマーもあります。

TJ

unread,
May 20, 2016, 12:24:42 AM5/20/16
to FMEユーザーフォーラム
>ケーススタディはカラー画像を得るのが主目的ではなく、元のデータを損なわずに軽量なデータとして保持することを目的としているので、NumericRasterizer で UINT8 数値ラスターにしました。
色数が少ない場合でも、ImageRasterizer を使った場合、画像ラスター自体に色情報を持つ必要があるのに対し、NumericRasterizer を使った場合、画像ラスター自体に色情報を持ったないため、画像のサイズが抑えられるということですね。
パレットは色定義で、画像自体色情報を持つ必要がなく、表示時パレット参照して、指定の色で表示するようなイメージで正しいでしょうか。

Takashi Iijima

unread,
May 20, 2016, 12:41:47 AM5/20/16
to FMEユーザーフォーラム
> パレットは色定義で、画像自体色情報を持つ必要がなく、表示時パレット参照して、指定の色で表示する
そうです。
画像ラスターが色を表現する方法として、
・セルごとに色の情報を持つ仕組み
・セルは色を参照するためのキー値だけを持ち、アプリケーションが表示するときにパレットを参照して、キー値に対応する色で表示する仕組み
の2種類があるということです。

TJ

unread,
May 20, 2016, 12:44:56 AM5/20/16
to FMEユーザーフォーラム
やっとパレットの意味が理解しました。

ラスタの知識結構深いですね。いろいろ教えていただいてありがとうございました。
Reply all
Reply to author
Forward
0 new messages