流向ラスターの作成 (Flow Direction) (ラスター解析)

サマリー

D8、DINF (D-Infinity)、MFD (Multiple Flow Direction) のいずれかの方法を使用して、各セルから下降傾斜の近傍 (複数可) への流れの方向を計算します。

流向ラスターの作成ツールの図

使用法

  • このラスター解析ポータル ツールは、Raster Analytics 用に構成された ArcGIS Image Server を備えた ArcGIS Enterprise にサインインすると使用できます。 このツールを実行すると、ArcGIS Pro がクライアントとしてサービスを提供し、ArcGIS Enterprise とフェデレートされているサーバーで処理が発生します。 ポータル ツールがポータルからレイヤーを入力として受け取り、ポータルに出力を作成します。

    入力ラスター レイヤーは、ポータルからのレイヤー、イメージ サーバーの URI または URL、もしくは Image Server レイヤーの作成 (Make Image Server Layer) ツールからの出力をサポートしています。 このツールはローカルのラスター データもレイヤーもサポートしていません。

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

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

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

    流向ラスターの作成のコード

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

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

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

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

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

    平らなエリアで降下率ラスターを計算する場合、対角線上の隣接セルへの距離 (1.41421 * cell size) は、性能を改善するために 1.4 * cell size で近似されます。

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

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

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

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

  • 参考文献:

    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; Image Service; String
出力流向名

出力流向ラスター サービスの名前。

デフォルトの名前は、ツール名と入力レイヤー名に基づいて設定されます。 レイヤー名がすでに存在する場合は、別の名前を指定するよう求められます。

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

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

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

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

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

出力降下率ラスター サービスの名前。

デフォルトの名前は、ツール名と入力レイヤー名に基づいて設定されます。 レイヤー名がすでに存在する場合は、別の名前を指定するよう求められます。

String

派生した出力

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

出力流向ラスター。

Raster Layer
出力降下率ラスター

出力降下率ラスター。

Raster Layer

arcpy.ra.FlowDirection(inputSurfaceRaster, outputFlowDirectionName, {forceFlow}, {flowDirectionType}, outputDropName)
名前説明データ タイプ
inputSurfaceRaster

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

Raster Layer; Image Service; String
outputFlowDirectionName

出力流向ラスター サービスの名前。

デフォルトの名前は、ツール名と入力レイヤー名に基づいて設定されます。 レイヤー名がすでに存在する場合は、別の名前を指定するよう求められます。

String
forceFlow
(オプション)

入力ラスター内の NoData 値が、マスク ラスターで定義されたエリアをニブルすることを許可するかどうかを定義するキーワード。

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

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

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

出力降下率ラスター サービスの名前。

デフォルトの名前は、ツール名と入力レイヤー名に基づいて設定されます。 レイヤー名がすでに存在する場合は、別の名前を指定するよう求められます。

String

派生した出力

名前説明データ タイプ
outputFlowDirectionRaster

出力流向ラスター。

Raster Layer
outputDropRaster

出力降下率ラスター。

Raster Layer

コードのサンプル

FlowDirection の例 1 (Python ウィンドウ)

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

import arcpy
arcpy.ra.FlowDirection("https://myserver/rest/services/elevation/ImageServer","outD8FlowDir1")
FlowDirection の例 2 (スタンドアロン スクリプト)

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

#---------------------------------------------------------------------------
# Name: FlowDirection_example02.py
# Requirements: ArcGIS Image Server

# Import system modules
import arcpy

# Set local variables
inSurface = "https://myserver/rest/services/elevation_filled/ImageServer"
outputFlowDirection = "outD8FlowDir2"
forceFlow = "NORMAL"
flowDirectionType = "D8"

# Execute Flow Direction raster analysis tool
arcpy.ra.FlowDirection(inSurface, outputFlowDirection, forceFlow, flowDirectionType)

ライセンス情報

  • Basic: 次のものが必要 ArcGIS Image Server
  • Standard: 次のものが必要 ArcGIS Image Server
  • Advanced: 次のものが必要 ArcGIS Image Server

関連トピック