窪地のない DEM の作成
流向の過程を表す入力データとしては、窪地のないデジタル標高モデル(DEM)を使用することを推奨します。窪地があると、流向ラスタにエラーが含まれることがあります。場合によっては、データ内の窪地が正当な場合もあります。地形の形状を十分理解して、地表の実際の窪地を表すフィーチャと、データ上の単なるエラーであるフィーチャを見分けることが重要です。ArcGIS Spatial Analyst エクステンションの [水文解析] ツールセットに含まれるツールは、窪地のない標高モデルを準備する際に役立ちます。
窪地の抽出
窪地は、[窪地の抽出(Sink)] ツールを使用して見つけることができます。このツールには、[流向ラスタの作成(Flow Direction)] ツールで作成した方向ラスタが必要です。ツールの結果は、データに存在する窪地を示すラスタです。結果によって、窪地を埋めたり、出力データを使用して平滑化の制限値を決定したりできます。窪地は、[サーフェスの平滑化 (Fill)] ツールを使用して埋めることができます。[窪地の抽出(Sink)] ツールからの出力データを使用して平滑化の制限値を決定する方法については、このトピック内の「窪地の深さの検出」(後述)をご参照ください。
窪地の平滑化
[サーフェスの平滑化 (Fill)] ツールは、前述の水文解析ツールをはじめとする Spatial Analyst のさまざまなツールを使用して、窪地のない DEM を作成します。このツールには、入力サーフェス、平滑化の制限値、および出力ラスタが必要です。窪地を平滑化するときには、流出点、集水域の境界に沿った最小の標高まで平滑化されます。
窪地のない DEM を作成する際に窪地を特定して除去する操作は、反復的なプロセスです。窪地が平滑化されると、平滑化された領域の境界でさらに新しい窪地が作成されることがあり、この窪地も平滑化する必要があります。データの容量が大きい DEM や窪地を多数持つ DEM では、この処理に数分から数時間掛かることがあります。
窪地の深さの検出
1 つの窪地、または窪地のグループの深さを知っておくと便利です。この情報があれば、[サーフェスの平滑化 (Fill)] ツールの適切な Z 制限値の決定、データに存在するエラーの種類の理解、および窪地が正当な地表面の形状であるかどうかの判断が可能になります。以下のステップで、窪地の深さを検出する一般的なプロセスの概要を示します。
- [サーフェスの平滑化 (Fill)] ツールを実行して窪地の深さの値を持つラスタを作成し、ラスタ内の窪地を見つけます。
- [集水域ラスタの作成(Watershed)] ツールで、流出点の入力データとして標高ラスタの流向、および [サーフェスの平滑化 (Fill)] ツールの出力データを使用して、各窪地に影響するエリアのラスタを作成します。
- Python の [マップ代数演算] で、[最小値] オプションを指定して [ゾーン統計(Zonal Statistics)] ツールを使用し、各窪地の集水域での最小標高値を持つラスタを作成します。
sink_min = ZonalStatistics(sink_areas, "Value", elev_ras, "Minimum")
sink_areas 入力は、[集水域ラスタの作成(Watershed)] ツールの出力です。 - [ゾーン フィル(Zonal Fill)] ツールで、集水域ごとの境界ごとに最も低い標高値を持つラスタを作成します(これは、周縁の高さにまで平滑化されると、流れが流域から流出する標高に相当します)。
sink_max = ZonalFill(sink_areas, elev_ras)
- [Minus] ツールを使用して、最大値から最小値を減算して、深さを再び調べます。
sink_depth = Minus(sink_max, sink_min)
上記の手順は、[窪地の抽出(Sink)]、[集水域ラスタの作成(Watershed)]、[ゾーン統計(Zonal Statistics)]、[ゾーン フィル(Zonal Fill)]、および [Minus] のジオプロセシング ツールを使用しても実行できます。