[フォーカル フロー (Focal Flow)] ツールは、各セル周囲の直近の 3 x 3 の近傍を使用して、8 つの近傍のうちのどれがセルに流入するかを判断します。 フローは、処理セルよりも大きい値を持つ近傍内のセルにより決定します。 多くの場合、標高サーフェスや傾斜角サーフェス上を移動する水などの流体の移動を値で表しますが、フローは、汚染物質がより低濃度の場所に移動する動きなど、ユーザーが定義する任意の移動することもできます。 [フォーカル フロー (Focal Flow)] は、「移動ウィンドウ」アプローチを使用してデータセットを処理します。これは、[フォーカル統計 (Focal Statistics)] ツールと類似する仕組みです。 ただし、出力値が計算される方法は異なります。
特定の近傍セルが処理セルに流入するかどうかを調べるには、各隣接セルの値を処理セルの値から引きます。 結果が正なら、近傍セルは処理セルに流入しません。負なら、流入します。 処理セルに流入するセルがない場合、この位置の値は 0 になります。 閾値を入力している場合、近傍セルの値から処理セルの値を引いて得られた差が閾値よりも大きくい場合のみ流入が起きます。 そうでない場合は、近傍セルからの流入は発生しません。
複数の近傍セルから 1 つの処理セルへの流入の組み合わせを管理するには、処理セルのバイナリ表現を使用します。 処理セルのバイナリ表現の各ビットが近傍セルの位置に関連付けられています。 処理セルの右横のセルには値 1、右下のセルには 2、真下のセルには 4、というように、右上の最後の近傍セルで値が 128 (バイナリ表現のため、2 の累乗) に達するまで順次値が設定されます。
近傍セルが処理セルに流入する場合、その近傍位置を表すビット (上図参照) がオンになります。つまり 1 が割り当てられます。 近傍セルが処理セルに流入しない場合、その位置を表すビットがオフになります。つまり値 0 が割り当てられます。 すべての近傍位置の流入を調べたら、0、1 つ、数個、またはすべてのビットをオンにする (1 を割り当てる) ことができます。 すべてのビットは 10 進数に変換されます。 その後、この 10 進数値が処理セルに割り当てられます。 このエンコーディングでは、上流の数字の組み合わせごとに一意の数値を割り当てます。 処理セルへの流入の組み合わせは、全部で 255 通りになります。
例
次に、出力値の取得方法を示した例をいくつか挙げます。
- 左上の隣接セルから流入を受けるセル
左上の隣接セルからの流入は、近傍ビット位置の 6 に相当します (上のフォーカル フロー方向のエンコーディングの図参照)。 このビット位置に対応する 10 進数値は 32 です。
- 複数のセルが流入するセル
次の図では、処理セルよりも値が大きい隣接セルが 3 つあります。 処理セルの右隣のセル (1 ビットの位置)、左下のセル (4 ビットの位置)、および真上のセル (7 ビットの位置) です。 したがって、1、4、7 ビットがオン (1) になります。 このビット パターンは 10 進数で 73 になり、出力ラスターの処理セルの位置に 73 が書き込まれます。
- 周囲の 8 つのセルのすべてが流入するセル
すべての隣接セルが流入するセルを考えます。 出力値は、1 ~ 128 までのすべてのビット位置の値の合計になります。 結果として得られる値は、128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255 です。