流向ラスターの作成 (Flow Direction) (Spatial Analyst)

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

サマリー

各セルからその降下傾斜となる近傍セルへの流向ラスターを、D8、D-Infinity (DINF)、Multiple Flow Direction (MFD) のいずれかの方法で作成します。

[流向ラスターの作成 (Flow Direction)] ツールの詳細

D8 流向ラスターの作成の図
Flow_Dir = FlowDirection(Elev_Ras, #, #, D8)

使用法

  • [流向ラスターの作成 (Flow Direction)] ツールでは、3 つの流向モデリング アルゴリズムがサポートされています。それが、D8、MFD (Multi Flow Direction)、および DINF (D-Infinity) です。

  • D8 流向法は、各セルから最も急な降下傾斜となる近傍セルへの流向をモデル化します。

    D8 流向タイプで実行した [流向ラスターの作成 (Flow Direction)] ツールの出力は、1 ~ 255 の値を持つ整数ラスターです。中心からのそれぞれの方向の値は、次のようになります。

    [流向ラスターの作成 (Flow Direction)] のコード

    たとえば、降下傾斜が最も急な方向がある処理セルの左側である場合、フロー方向は 16 とコード化されます。

    • あるセルが 8 つの近傍セルより低い場合、そのセルには近傍セルの最低値が与えられ、フローはこのセルの方向に定義されます。複数の近傍セルが最低値を持つ場合、セルにはこの値が与えられますが、フローは以下で説明する 2 つの方法のいずれかを使用して定義されます。これは、1 セルの窪地 (シンク) をフィルターするために使用され、ノイズと見なされます。

    • セルが複数の方向で同じ Z 値の変化を持ち、そのセルが窪地 (シンク) の一部である場合、フロー方向は未定義と見なされます。このような場合、出力流向ラスターのセルの値は、それらの方向の合計となります。たとえば、Z 値の変化が右 (フロー方向 = 1) と下 (フロー方向 = 4) で同じ場合、そのセルのフロー方向は 1 + 4 = 5 になります。未定義のフロー方向を持つセルは、[窪地の抽出 (Sink)] ツールを使用して、窪地 (シンク) としてフラグを付けることができます。

    • セルが複数の方向で同じ Z 値の変化を持ち、窪地 (シンク) の一部でない場合、フロー方向は可能性が最も高い方向を定義するルックアップ テーブルを使用して割り当てられます。「Greenlee (1987) 」をご参照ください。

    • D8 出力降下率ラスターは、Z 値の差をセルの中心間のパス長で除算したもので、パーセンテージで表されます。隣接セルの場合、これは、セル間の傾斜角 (パーセント) に似ています。平らなエリアでは、距離は標高が低い最も近いセルまでの距離になります。結果は、各セルからの降下傾斜が最も急激なパスのパーセント高低差のマップになります。

  • MFD (Multiple Flow Direction) アルゴリズムは、Qin 等 (2007) によって示されたもので、セルから降下傾斜となるすべての近傍セルへのフローを分割します。フローパーティション指数は、現地のテレインの状態に基づく適応アプローチによって作成され、降下傾斜となるすべての近傍セルに流出するフローの一部を特定するために使用されます。

    注意:

    MFD 流向タイプでは、フォルダー ワークスペース内で Cloud Raster Format (CRF、flowdir1.crf など) の出力流向ラスターのみ作成できます。

    MFD 流向出力は、マップに追加されると、D8 フロー方向だけを表示します。MFD 流向では、各セルに対して複数の値が関連付けられている可能性があるため (各値は、降下傾斜となる各近傍セルへのフローの割合に対応する)、簡単に視覚化できません。ただし、MFD 流向出力ラスターは [累積流量ラスターの作成 (Flow Accumulation)] ツールによって認識されている入力であり、各セルから降下傾斜となるすべての近傍セルへのフローの割合を配分し、累積するために MFD 流向を使用します。

  • D-Infinity (DINF) 法では、8 つの三角形ファセット上の最も急な傾斜となる流向を特定します (Tarboton, 1997 年)。このファセットは、対象となるセルの中心にある 3x3 セル ウィンドウとして決定されます。流向出力は、0 (真東) から 360 (真東) まで反時計回りの角度として表される、浮動小数点のラスターです。

  • [エッジにあるセルはすべて外側に流出] パラメーターをデフォルトのオフの設定 (Python では NORMAL) にした場合、サーフェス ラスターのエッジにあるセルは、Z 値の降下率が最も高く、セルの内部に向かって流れます。降下がゼロ以下の場合、セルはサーフェス ラスターの外に流れ出ます。

  • このツールは、並列処理をサポートしています。お使いのコンピューターに、複数のプロセッサや、複数のコアを持つプロセッサが搭載されている場合は、特に対象となるデータセットが大きいときにパフォーマンスが向上します。「Spatial Analyst による並列処理」ヘルプ トピックには、この機能と設定方法の詳細が記載されています。

    並列処理を使用する場合、処理中のデータ チャンクを処理するために一時データが書き込まれます。デフォルトの一時フォルダーの場所は、ローカルの C ドライブ上です。このフォルダーの場所は、TempFolders という名前のシステム環境変数を設定し、使用するフォルダーへのパスを指定することで変更できます (例: E:\RasterCache)。コンピューター上で管理権限を持っている場合は、レジストリ キー (例: [HKEY_CURRENT_USER\SOFTWARE\ESRI\ArcGISPro\Raster]) を使用することもできます。

    デフォルトでは、このツールは使用可能なコアの 50% を使うようになっています。入力データのサイズが 5,000 x 5,000 セルより小さい場合は、使用されるコアが少なくなることがあります。並列処理ファクター環境で、ツールが使用するコアの数を制御できます。

  • このツールに適用されるジオプロセシング環境の詳細については、「解析環境と Spatial Analyst」をご参照ください。

  • 参考文献:

    Greenlee, D. D. 1987. "Raster and Vector Processing for Scanned Linework." Photogrammetric Engineering and Remote Sensing 53 (10): 1383-1387.

    Qin, C., Zhu, A. X., Pei, T., Li, B., Zhou, C., & Yang, L. 2007. "An adaptive approach to selecting a flow partition exponent for a multiple flow direction algorithm." International Journal of Geographical Information Science 21(4): 443-458.

    Tarboton, D. G. 1997. "A new method for the determination of flow directions and upslope areas in grid digital elevation models." Water Resources Research 33(2): 309-319.

パラメーター

ラベル説明データ タイプ
入力サーフェス ラスター

連続サーフェスを表す入力ラスター。

Raster Layer
エッジにあるセルはすべて外側に流出
(オプション)

エッジ セルが常に外向きに流れるか、通常のフロー規則に従うかを指定します。

  • オフ - エッジ セル内部の最大降下がゼロより大きい場合、フロー方向は通常どおりと判定されます。それ以外の場合、フロー方向はエッジ方向になります。内側に流れるべきセルは、内側に流れます。これがデフォルトです。
  • オン - サーフェス ラスターのエッジにあるすべてのセルが、サーフェス ラスターから外側に流れます。
Boolean
出力降下率ラスター
(オプション)

オプションの出力降下率ラスター。

降下率ラスターは、フロー方向の各セルの標高の最大変化と、セルの中心間のパス長の比率をパーセントで返します。

出力は浮動小数点型になります。

Raster Dataset
流向タイプ
(オプション)

流向の計算時に使用される、フロー方法のタイプを指定します。

  • D8D8 法に基づいて流向を割り当てます。この方法では、最も急な傾斜となる近傍ピクセルに流向が割り当てられます。これがデフォルトです。
  • MFDMFD フロー メソッドに基づいて、フロー方向を割り当てます。この方法では、降下傾斜となるすべての近傍セルに複数の流向が割り当てられます。
  • DINF三角形ファセットの最も急な傾斜を使用し、D-Infinity 法に基づいて流向を割り当てます。
String

戻り値

ラベル説明データ タイプ
出力流向ラスター

D8、多重流向 (MFD)、または D-Infinity (DINF) のいずれかの方法を使用し、各セルから降下傾斜となる近傍セルへの流向を示す出力ラスター。

出力は整数型になります。

Raster

FlowDirection(in_surface_raster, {force_flow}, {out_drop_raster}, {flow_direction_type})
名前説明データ タイプ
in_surface_raster

連続サーフェスを表す入力ラスター。

Raster Layer
force_flow
(オプション)

エッジ セルが常に外向きに流れるか、通常のフロー規則に従うかを指定します。

  • NORMALエッジ セルの内部の最大降下がゼロより大きい場合、通常のフロー規則に従って判定されます。それ以外の場合、フロー方向はエッジ方向になります。内側に流れるべきセルは、内側に流れます。これがデフォルトです。
  • FORCEサーフェス ラスターのエッジにあるすべてのセルが、サーフェス ラスターから外側に流れます。
Boolean
out_drop_raster
(オプション)

オプションの出力降下率ラスター。

降下率ラスターは、フロー方向の各セルの標高の最大変化と、セルの中心間のパス長の比率をパーセントで返します。

出力は浮動小数点型になります。

Raster Dataset
flow_direction_type
(オプション)

流向の計算時に使用される、フロー方法のタイプを指定します。

  • D8D8 法に基づいて流向を割り当てます。この方法では、最も急な傾斜となる近傍ピクセルに流向が割り当てられます。これがデフォルトです。
  • MFDMFD フロー メソッドに基づいて、フロー方向を割り当てます。この方法では、降下傾斜となるすべての近傍セルに複数の流向が割り当てられます。
  • DINF三角形ファセットの最も急な傾斜を使用し、D-Infinity 法に基づいて流向を割り当てます。
String

戻り値

名前説明データ タイプ
out_flow_direction_raster

D8、多重流向 (MFD)、または D-Infinity (DINF) のいずれかの方法を使用し、各セルから降下傾斜となる近傍セルへの流向を示す出力ラスター。

出力は整数型になります。

Raster

コードのサンプル

FlowDirection (流向ラスターの作成) の例 1 (Python ウィンドウ)

次の例では、入力 Grid 標高サーフェス ラスターから、D8 流向ラスターを作成しています。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outFlowDirection = FlowDirection("elevation", "NORMAL")
outFlowDirection.save("C:/sapyexamples/output/outflowdir01")
FlowDirection (流向ラスターの作成) の例 2 (スタンドアロン スクリプト)

次の例では、入力 Grid 標高サーフェス ラスターから、D8 流向ラスターを作成しています。

# Name: FlowDirection_Example.py
# Description: Creates a raster of flow direction from each cell to its
#    steepest downslope neighbor.
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Set local variables
inSurfaceRaster = "elevation"
outDropRaster = "C:/sapyexamples/output/dropraster"

# Execute FlowDirection
outFlowDirection = FlowDirection(inSurfaceRaster, "FORCE", outDropRaster)

# Save the output 
outFlowDirection.save("C:/sapyexamples/output/outflowdir02")

関連トピック