ニブル(Nibble)、縮小(Shrink)、拡張(Expand)の使用によるゾーンのジェネラライズ

ゾーンをジェネラライズするジェネラライズ(Generalization)ツールセットには、ニブル(Nibble)縮小(Shrink)、および拡張(Expand)があります。

Nibble

[ニブル(Nibble)] ツールでは、ラスタの選択したエリアに最近傍の値を割り当てることができます。データがエラーであることが分かっているラスタのエリアを編集するときに便利です。

はじめに、アルゴリズムは NoData の値を持つマスク ラスタからすべてのエリアを決定します。入力ラスタの対応するエリアが指定されます。次に、内部ユークリッド アロケーションが実行され、ユークリッド距離に基づいてマスクされたセルに値が割り当てられます。

マスク ラスタで NoData の値を持つセルに対応する入力ラスタのセルの値が、ユークリッド距離に従って最近傍の値に置換されます。

以下の図では、入力ラスタとマスク ラスタに [ニブル(Nibble)] が適用されています。[ニブル(Nibble)] は、マスク ラスタの NoData の値にのみ適用されます。マスク ラスタの NoData 以外の値を持つセルはすべて、入力ラスタの値が割り当てられます。これらのセル値と位置が使用され、マスク ラスタで指定された NoData の位置に値が割り当てられます。NoData の位置には、マスク ラスタの No Data ではないセルに最も近い、入力ラスタのセル値が割り当てられます。

Nibble の図
OutRas = Nibble(InRas1, Mask_Ras)

Shrink

[縮小(Shrink)] ツールは、近傍で頻度が最も高いセルの値に置換することにより、指定ゾーンを縮小します。[縮小(Shrink)] では、ゾーン境界のエラーを含むセルの値が、近傍の最頻値に変更されます。内部セルでないセル(8 方向すべてが同じ値のセルに囲まれていないセル)が置換できます。

ゾーンと境界線を共有しているように見えるゾーン内の細い島も、置換できます。[縮小(Shrink)] ツールで縮小するセルの数を制御できます。1 セル縮小する場合、保持できる最小サイズは 3 x 3 のセルのブロックです(エッジでは 3 x 2、コーナーでは 2 x 2)。まばらなリージョンを置換できます。

たとえば、幅が 2 セル、長さが 10 セルのリージョンは、2 方向から 1 セルずつ縮小されるので削除されます。2 セル縮小する場合、保持できる最小サイズのリージョンは、5 x 5 のサイズのセルのブロックです。

複数セルを縮小する場合、概念的には、直前の実行結果を入力として、縮小するセルの数だけツールを繰り返し実行することと同じです。

たとえば、2 セル縮小する場合、概念的に 1 セルの Shrink を入力ラスタに実行して指定ゾーンを縮小し、2 回めの縮小の入力として 1 回めの縮小結果を使用することと同じです。

以下の図では、入力ラスタに Shrink が適用され、ゾーン 5 が 1 セルだけ縮小されます。ゾーン 5 はエリア内に 3 セル以上の幅がないので、5 の値を持つセルはすべて、近傍の最頻値に置換されます。NoData が右下の 2 つの位置に侵入していますが、これはその 2 つの位置の最頻値が NoData だからです。

Shrink の図
OutRas = Shrink(InRas1, 1, [5])

以下の図では、入力ラスタに Shrink が適用され、ゾーン 4 と 6 が 1 セルだけ縮小されます。左上のコーナーでは、1 セルよりも深いので値 4 が保持されます。

Shrink の図
OutRas = Shrink(InRas1, 1, [5])

Expand

[拡張(Expand)] ツールを使用すると、あるゾーンを他のゾーンに拡大できます。概念的には、選択した値はフォアグラウンド ゾーン、他の値はバックグラウンド ゾーンとして見ることができます。フォアグラウンド ゾーンが、バックグラウンド ゾーンに拡大できます。

以下の図では、入力ラスタに [拡張(Expand)] ツールが適用され、ゾーン 5 が 1 セルだけ拡大します。ゾーン 5 が右下の NoData の値を持つセルに拡大しています。

Expand の図
OutRas = Expand(InRas1, 1, [5])

関連トピック

7/28/2014