Spatial Analyst のライセンスで利用可能。
[拡張 (Expand)] および [縮小 (Shrink)] ツールを使用し、ラスターをジェネラライズまたは単純化することができます。 [大多数フィルター (Majority Filter)] や [境界のスムージング (Boundary Clean)] ツールとは異なり、[拡張 (Expand)] および [縮小 (Shrink)] を使用すると、ジェネラライズの対象を特定のゾーンに絞り込むことができます。 使用するツールに応じて、特定のゾーンを拡大または縮小できます。 実行するジェネラライズの度合いを制御することもできます。
いずれのツールも 2 つの方法を選択できます。 1 つ目は数理形態学的なアプローチです。 2 つ目は距離ベースのアプローチです。
拡張と縮小の比較
いずれのツールも、特定のゾーンで他のゾーンのセルを置換できるようにして実行されます。
拡張
[拡張 (Expand)] ツールでは、選択したゾーンを他のゾーンに拡張することでサイズを増やします。 概念的には、選択した [ゾーン値] はフォアグラウンド ゾーン、他の値はバックグラウンド ゾーンと見なされます。 フォアグラウンド ゾーンが、バックグラウンド ゾーンに拡大できます。
縮小
[縮小 (Shrink)] ツールでは、選択したゾーンに他のゾーンのセルが拡張することにより、ゾーンが拡大または縮小されます。 概念的には、選択した [ゾーン値] はフォアグラウンド ゾーン、残りのゾーン値はバックグラウンド ゾーンと見なされます。 このツールを使用するとフォアグラウンド ゾーンをバックグラウンド ゾーンのセルで置換できます。
ゾーンと境界線を共有しているように見えるゾーン内の細い島も、置換できます。
ジェネラライズの度合い
ジェネラライズの度合いは [セル数] パラメーターで制御できます。 デフォルトでは、この値は 1 です。これは、使用しているツールに応じて、選択したゾーンが 1 つのセル サイズに対応する量だけ拡大または縮小されることを意味します。 ジェネラライズの度合いを上げるには、このパラメーターに大きな値を指定します。 概念的には、直前の実行結果を入力として、指定した数だけツールを繰り返し実行することと同じです。
手法
[拡張 (Expand)] および [縮小 (Shrink)] ツールを使用してラスターをジェネラライズする際、数理形態学および距離ベースの 2 つの方法が利用できます。
数理形態学
数理形態学的アプローチは、構造化要素をラスターに適用し、ラスターから情報を抽出します。 いくつかの形状が考えられますが、最も一般的なものは単純な 3 セル x 3 セルの正方形です。 演算中、処理されているラスターの各セルが選択したゾーン セットに含まれているか除外されているかがチェックされます (Matheron, 1967, and Sera, 1982)。 アルゴリズムは、画像処理の初期のバイナリ画像の処理から発展し、複数のゾーン値と選択可能な構造化要素サイズを含む入力に適用されています。 この方法では、拡張および縮小ツールは 3 x 3 の正方形の構造化要素を使用します。
距離ベース
距離ベースのアプローチでは、選択した入力ゾーン値のセルがソースになります。 入力ラスター内の各セルは、最も近いソース セルまでの距離と関連して考慮されます。 距離は、入力ラスターのセル解像度の整数倍のユークリッド距離に制限されています。
次の条件を評価して、この距離内の特定のセルの最終的な出力値が決定されます。 説明は [拡張 (Expand)] ツールに関するものですが、同じ原則が [縮小 (Shrink)] ツールにも当てはまります。
- セルが許容距離の範囲内で 1 つのタイプのゾーン ソース セルしか見つけられない場合、そのセルはそのゾーン値で拡張されます。
- セルの許容距離内に複数のタイプのゾーン値が存在する場合、そのセルは最も近いゾーンの値によって拡張されます。
- セルの許容距離内に複数のタイプのソース セルが存在し、2 つ以上のソース セルが同じ距離である場合 (タイ)、アルゴリズムでは最初に各ソース ゾーンの寄与を計算します。 全体的な寄与が最も高いゾーンがそのセルの出力値として使用されます。
- それでもタイが残っている場合は、2 つ以上のソース ゾーンの寄与が最も近く等しい寄与であることを意味しています。 この場合、そのセルはセル値が最小のソースによって展開されます。
例
以下に、Expand および Shrink メソッドの各パラメーターをデフォルトの Morphological オプションに設定したツールを使用した例を示します。
Expand の例
以下の図では、入力ラスターに [拡張 (Expand)] ツールが適用され、ゾーン 5 が 1 セルだけ拡大します。 ゾーン 5 が右下の NoData の値を持つセルに拡大しています。
Shrink の例
以下の図では、入力ラスターに [縮小 (Shrink)] ツールが適用され、ゾーン 5 が 1 セルだけ縮小されます。 ゾーン 5 はエリア内に 3 セル以上の幅がないので、5 の値を持つセルはすべて、近傍の最頻値に置換されます。 NoData が右下の 2 つの位置に侵入していますが、これはその 2 つの位置の最頻値が NoData だからです。
以下の図では、入力ラスターに Shrink が適用され、ゾーン 4 と 6 が 1 セルだけ縮小されます。 左上のコーナーでは、1 セルよりも深いので値 4 が保持されます。
Python で複数のゾーン値を指定するには、角括弧を使用して複数値リストを定義します。
参照先
Matheron, G., Elements pour une Theorie del Milieux Poreux, Masson, Paris, 1967
Serra, J. Image Analysis and Mathematical Morphology, Academic Press, London 1982