境界のスムージング (Boundary Clean) および大多数フィルター (Majority Filter) を使用したゾーン エッジのスムージング

Spatial Analyst のライセンスで利用可能。

[境界のスムージング (Boundary Clean)] ツールと [大多数フィルター (Majority Filter)] ツールを使用して、ラスター内のゾーンのエッジをジェネラライズします。各位置の近傍内にある値に基づいて、境界を拡大/縮小するか、ゾーンを拡大/縮小することにより、エッジがスムージングされます。

境界のスムージング (Boundary Clean)

[境界のスムージング (Boundary Clean)] ツールは、主にゾーン間の不規則なエッジを整理するために使用されます。比較的大きいスケールで境界線を整理する拡大/縮小法が使用されます。はじめに、優先度の高いゾーンが、近接する優先度の低いゾーンに、8 方向すべてに 1 セルだけ侵入します。次に、侵入したゾーンは、8 方向すべてが同じ値のセルに囲まれていないセルに戻ります。内部セルでないセル (8 方向すべてが同じ値のセルに囲まれていないセル) が置換できます。サイズでソートしないデフォルトの方法 ([ソートしない]) では、値が大きいほど優先度が高くなります。

ゾーンと境界線を共有しているように見えるゾーン内の細い島も、置換できます。保持できる最小サイズのリージョンは、3 x 3 のサイズのセルのブロックです。したがって、細いリージョンを置換できます。たとえば、幅が 2 セル、長さが 10 セルのリージョンは、縮小後に復旧できないので削除されます。

以下の図では、ゾーンがソートされていない入力ラスターに [境界のスムージング (Boundary Clean)] が適用されています。ゾーンの値が大きいほど、小さい値を持つゾーンに拡大する優先度が高くなります。値 7 を持つセルが、それよりも小さい値を持つセルに拡大します。

境界のスムージング (Boundary Clean) の図 1
OutRas = BoundaryClean(InRas1)

以下の図では、入力ラスターに [境界のスムージング (Boundary Clean)] が適用され、ゾーンがサイズの昇順でソートされています。ゾーンの総面積が小さいほど、総面積が大きいゾーンに拡大する優先度が高くなります。面積が小さいゾーンが、面積の大きいゾーンに拡大しています。

境界のスムージング (Boundary Clean) の図 2
OutRas = BoundaryClean(InRas1, ascend)

大多数フィルター (Majority Filter)

[大多数フィルター (Majority Filter)] ツールは、連続する近傍の最頻値に基づいてセルを置換します。このツールには、置換を行うために満たす必要のある条件が 2 つあります。はじめに、同じ値を持つ隣接セルの個数が最頻値となるほど十分に大きい必要があります。または、少なくとも半分の数のセルが、同じ値を持つ必要があります (指定したパラメーターに基づく)。つまり、隣接するセル 4 個のうち 3 個、または 8 個のうち 5 個が最頻値のパラメーターと同じ値を持ち、半分のパラメーターの場合はセル 4 個のうち 2 個、または 8 個のうち 4 個が最頻値のパラメーターと同じ値を持つ必要があります。次に、それらのセルは、指定フィルターの中心と連続している必要があります (例: 4 個のセルのうち 3 個が同じ値)。セルの空間接続性に関する 2 番目の条件により、セルによる空間パターンの改変が最小になります。これらの条件が満たされない場合、置換は行われず、セルの値が保持されます。

以下の図では、最も近い 4 個のセルのフィルターを使用して、入力ラスターに [大多数フィルター (Majority Filter)] が適用されています。このフィルターは 4 個の隣接する直交セルで、セルの値を変更するには最頻値 (4 個のセルのうち 3 個) が同じ必要があります。同じ値を持つ 3 つ以上の (直交) セルに囲まれるセルのみが変更されます。

大多数フィルター (Majority Filter) の図 1
OutRas = MajorityFilter(InRas1)

以下の図の [大多数フィルター (Majority Filter)] の適用では、隣接する 8 個のセルをフィルターとして使用し、セルの値を変更するには、少なくとも半分の値 (8 個のセルのうち 4 個) が同じ値である必要があります。スムージング効果が大きいことに注意してください。

大多数フィルター (Majority Filter) の図 2
OutRas = MajorityFilter(InRas1, eight, half)

関連トピック