河川をラインとして生成 (Derive Stream As Line) (Spatial Analyst)

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

サマリー

事前にシンクや窪地を平滑化する必要なしで入力サーフェス ラスターから河川ライン フィーチャを生成します。

使用法

  • 入力サーフェス ラスターには、事前のシンクの平滑化がないデジタル標高モデル (DEM) または水文学的に調整された DEM を使用できます。 このツールは、フローが終了する場合、陥没またはシンクとして機能するサーフェス ラスターのエラーによる影響を受けません。シンクまたは陥没の平滑化は必要ありません。

  • [出力河川フィーチャ] パラメーターを使用すると、オプションの [累積の閾値] (Python では accumulation_threshold) パラメーターに指定された累積の閾値を満たしている河川ラインを表す出力ポリライン フィーチャが生成されます。 [累積の閾値] の値が指定されていない場合、このツールでは、デフォルトで入力サーフェス ラスター サイズ (セルの合計数の 0.2 パーセント) を基準にしてエリア閾値が計算されます。河川を取得するために内部で算出された流向と累積流量は出力されません。 [連続フローの作成 (Derive Continuous Flow)] ツールを使用すると、同じ手法で累積流量ラスターと流向ラスターを取得できます。

  • 入力サーフェス ラスターがサーフェス ラスター内にある実際の陥没を含む場合、その陥没を [入力ラスターまたはフィーチャ陥没データ] (Python では in_depressions_data) で指定し、水が流入するが外側に流出しないセルを考慮に入れる必要があります。 窪地エリアの情報は、ラスターまたはフィーチャクラスです。 フィーチャクラスは、ポイント、ポリライン、またはポリゴンです。

  • [入力累積加重ラスター] (Python では in_weight_raster) の値を指定すると、累積の導出時に各セルに加重を適用できます。これは中間ステップです。 加重ラスターを適用する場合、[累積の閾値] (Python では accumulation_threshold) に適切な累積流量の閾値を選択します。

  • 分析範囲内のテレインの複雑度を反映する、または選択した集水域のサイズに一致する [累積の閾値] (Python では accumulation_threshold) の値を指定します。 たとえば、閾値が 20 ヘクタールの場合、上流方向のフローが 20 ヘクタール以上のセルだけが河川ラスターを定義します。

  • [入力ラスターまたはフィーチャ窪地データ] パラメーター、[入力累積加重ラスター] パラメーター、または環境設定を適用するためのデータを使用した場合は、入力データの共通領域に基づいてデフォルトの [累積の閾値] の値が再計算されます。 ただし、[累積の閾値] パラメーターの値を指定すると、入力選択の変更に合わせて値が再計算されなくなります。 [入力サーフェス ラスター] の値をバッチ パラメーターとして使用して、このツールをバッチ モードで実行した場合にも、同じ状況が発生することがあります。この場合、[累積の閾値] の値は最初の入力データに基づいて計算され、他のラスター レイヤーがバッチ モードで処理されても変更されません。

  • 交点間の河川セクションの個別値または順序を割り当てるには、[河川指定方法] パラメーターを使用します。 [定数] オプションがデフォルト値であり、すべての河川に同じ値 1 が割り当てられます。 [個別値] を指定すると、交点間の各河川セクションに個別値が割り当てられます。 その他の順序付け方法には、[Strahler][Shreve]、および [Hack] があります。 [Strahler] 法では、同じ次数を持つ河川が交差すると河川の次数が増加します。 [Shreve] 法は、等級に基づいて河川に次数を割り当てます。 支流のないすべてのリンクに、1 という等級 (次数) が割り当てられます。 等級は、下り方向で加算されます。 2 つのリンクが交差する場合、その等級が加算され、下り方向のリンクに割り当てられます。 [Hack] 法では、流出先の河川の次数を基準にして、河川の次数が 1 つ増えます。 主流の河川には 1 の強度が割り当てられ、そこに流出するすべての河川には 2 などが割り当てられます。

  • [フィーチャの単純化] パラメーター (Python では simplify) がオンになっている場合、許容値を sqrt(0.5) * セル サイズとして Douglas-Peucker アルゴリズムを使用して頂点を削除することによって、出力河川フィーチャ ラインが単純化されます。 このアルゴリズムでは、相対的に不要な頂点を識別して削除することによって、重要なポイントが保持されます。

  • NoData はノイズと見なされ、定義上、関連付けられた値がありません。 ツールは、最小勾配の上り近傍の方向を識別するとき、およびフロー方向と累積流量の特定でこれらのセルを無視します。

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

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

  • 参考文献:

    • Douglas, David H., and Thomas K. Peucker. 1973. "Algorithms for the Reduction of the Number of Points Required to Represent a Digitised Line or its Caricature." The Canadian Cartographer, 10(2): 112–122.

    • Ehlschlaeger, C. R. 1989. "Using the AT Search Algorithm to Develop Hydrologic Models from Digital Elevation Data." International Geographic Information Systems (IGIS) Symposium 89: 275-281.

    • Hack, J. T. 1957. "Studies of Longitudinal Stream Profiles in Virginia and Maryland." Geological Survey Professional Paper 294: 45-95.

    • Jenson, S. K., and Domingue, J. O. 1988. "Extracting Topographic Structure from Digital Elevation Data for Geographic Information System Analysis." Photogrammetric Engineering and Remote Sensing 54 (11): 1593-1600.

    • Metz, M., Mitasova, H., & Harmon, R. S. 2011. "Efficient extraction of drainage networks from massive, radar-based elevation models with least cost path search." Hydrology and Earth System Sciences 15(2): 667-678.

    • Shreve, R. 1966. "Statistical Law of Stream Numbers" Journal of Geology.74: 17-35

    • Strahler, A. N. 1957. "Quantitative analysis of watershed geomorphology" Transactions of the American Geophysical Union8 (6): 913-920

パラメーター

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

入力サーフェス ラスター。

Raster Layer
出力ポリライン フィーチャ

特定された河川が含まれる出力フィーチャクラス。

Feature Class
入力ラスターまたはフィーチャ陥没データ
(オプション)

実際の陥没を定義するオプションのデータセット。

陥没は、ラスターまたはフィーチャ レイヤーを使用して定義できます。

入力がラスターの場合、陥没セルは有効な値 (0 を含む) を取る必要があり、陥没以外のエリアは NoData である必要があります。

Composite Geodataset
入力累積加重ラスター
(オプション)

各セルの累積流量に寄与するフローの比率を定義するオプションの入力ラスター データセット。

加重は累積流量にのみ適用されます。

累積加重ラスターが指定されていない場合、デフォルトの加重 1 が各セルに適用されます。

Raster Layer
累積の閾値
(オプション)

合計面積について特定のセルがそのセルに流れ込む河川に含まれるかどうかを決定する閾値。

Areal Unit
河川指定方法
(オプション)

出力属性テーブル内での河川の個別値または次数を指定します。

  • 定数出力河川セグメントはいずれも 1 になります。 これがデフォルトです。
  • 一意の値出力の交点間で河川ごとに一意の ID が割り当てられます。
  • Strahler同じ次数を持つ河川が交差した場合にのみ河川の次数が増加する Strahler 法が使用されます。 1 番目と 2 番目のリンクが交差しても、3 番目のリンクは作成されず、2 番目のリンクが残ります。
  • Shreve河川の次数が等級別に割り当てられる Shreve 法が使用されます。 支流のないすべてのリンクに、1 という等級 (次数) が割り当てられます。 等級は、下り方向で加算されます。 2 つのリンクが交差する場合、その等級が加算され、下り方向のリンクに割り当てられます。
  • Hack各河川セグメントに流出先の河川よりも大きい次数が割り当てられる Hack 法が使用されます。 たとえば、主流の河川に次数 1 が割り当てられ、その河川に流出するすべての河川セグメントに次数 2 が割り当てられ、次数 2 の河川に流出するすべての河川セグメントに次数 3 が割り当てられ、以下同様に続きます。
  • すべて出力属性テーブルには、すべての方法に基づく各河川セグメント指定が表示されます。
String
フィーチャの単純化
(オプション)

出力河川ラインを単純な形状にスムージングするかどうかを指定します。

  • オン - 許容値を sqrt(0.5) * セル サイズとして Douglas-Peucker アルゴリズムを使用して、出力河川フィーチャ ラインが単純化されます。 これがデフォルトです。
  • オフ - 河川フィーチャ ラインがスムージングされません。
Boolean

DeriveStreamAsLine(in_surface_raster, out_stream_features, {in_depressions_data}, {in_weight_raster}, {accumulation_threshold}, {stream_designation_method}, {simplify})
名前説明データ タイプ
in_surface_raster

入力サーフェス ラスター。

Raster Layer
out_stream_features

特定された河川が含まれる出力フィーチャクラス。

Feature Class
in_depressions_data
(オプション)

実際の陥没を定義するオプションのデータセット。

陥没は、ラスターまたはフィーチャ レイヤーを使用して定義できます。

入力がラスターの場合、陥没セルは有効な値 (0 を含む) を取る必要があり、陥没以外のエリアは NoData である必要があります。

Composite Geodataset
in_weight_raster
(オプション)

各セルの累積流量に寄与するフローの比率を定義するオプションの入力ラスター データセット。

加重は累積流量にのみ適用されます。

累積加重ラスターが指定されていない場合、デフォルトの加重 1 が各セルに適用されます。

Raster Layer
accumulation_threshold
(オプション)

合計面積について特定のセルがそのセルに流れ込む河川に含まれるかどうかを決定する閾値。

Areal Unit
stream_designation_method
(オプション)

出力属性テーブル内での河川の個別値または次数を指定します。

  • CONSTANT出力河川セグメントはいずれも 1 になります。 これがデフォルトです。
  • UNIQUE出力の交点間で河川ごとに一意の ID が割り当てられます。
  • STRAHLER同じ次数を持つ河川が交差した場合にのみ河川の次数が増加する Strahler 法が使用されます。 1 番目と 2 番目のリンクが交差しても、3 番目のリンクは作成されず、2 番目のリンクが残ります。
  • SHREVE河川の次数が等級別に割り当てられる Shreve 法が使用されます。 支流のないすべてのリンクに、1 という等級 (次数) が割り当てられます。 等級は、下り方向で加算されます。 2 つのリンクが交差する場合、その等級が加算され、下り方向のリンクに割り当てられます。
  • HACK各河川セグメントに流出先の河川よりも大きい次数が割り当てられる Hack 法が使用されます。 たとえば、主流の河川に次数 1 が割り当てられ、その河川に流出するすべての河川セグメントに次数 2 が割り当てられ、次数 2 の河川に流出するすべての河川セグメントに次数 3 が割り当てられ、以下同様に続きます。
  • ALL出力属性テーブルには、すべての方法に基づく各河川セグメント指定が表示されます。
String
simplify
(オプション)

出力河川ラインを単純な形状にスムージングするかどうかを指定します。

  • NO_SIMPLIFY河川フィーチャ ラインがスムージングされません。
  • SIMPLIFY許容値を sqrt(0.5) * セル サイズとして Douglas-Peucker アルゴリズムを使用して、出力河川フィーチャ ラインが単純化されます。 これがデフォルトです。
Boolean

コードのサンプル

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

この例には、DeriveStreamAsLine を使用して、事前にシンクを平滑化せずに、入力サーフェス ラスターから河川ライン フィーチャを生成する方法が示されています。

from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapy/examples/data" 
DeriveStreamAsLine("surface.tif", "C:/sapyexamples/output/streams.shp", "", "", "", "")
DeriveStreamAsLine の例 2 (スタンドアロン スクリプト)

この例では、事前にシンクも実際の窪地も平滑化せずに、入力サーフェスから河川ライン フィーチャを生成します。 これらの河川の始点は、面積が 2 ヘクタール以上のエリアから累積流量が収集される場所になります。

# Name: DeriveStreamAsLine_standalone.py
# Description: Generates stream lines from an input surface raster without prior sink filling. 
#              The streams start from locations where the accumulated flow is collected from an area 
#              larger or equal to 2 Hectares considering depressions (polygons).
# Requirements: Spatial Analyst Extension

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

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Set the analysis environments
env.workspace = "C:/sapyexamples/data"

# Set the local variables
in_surface_raster = "surface.tif"
in_depressions_data = "depressions.shp"
in_weight_raster = ""
out_streams = "C:/sapyexamples/output/streams.shp"
area_threshold = "2 Hectares"
stream_designation_method = "CONSTANT"

# Execute
DeriveStreamAsLine(in_surface_raster, out_streams, in_depressions_data, 
                   in_weight_raster, area_threshold, stream_designation_method)

関連トピック