地形が与えられた場合、河川の流路を描く方法は?


23

私が地形を持っていると仮定すると、通常、地形には尾根、小川、そして実際の生活マップで見つけることができるすべての特徴があります。水は山の頂上から下のエリアに流れます。水が流れる経路は、ストリーム流路と呼ばれます。

地形は、各点p(x、y)がz値を持つ三角不規則ネットワーク(TIN)で与えられます。この情報を使用してストリームフローパスを構築する方法は?この背後にある物理学は何ですか?

私の知る限り、最急降下法を使用してこの問題を解決できます。独自のストリームフローアルゴリズムを記述することを考えているので、既存のツールを使用するよりも理論的な背景に興味があります。

回答:


26

さまざまな実装方法がありますが、ほとんどの手順はTINではなくグリッドから開始されます。

最も単純な方法は、おそらくD8手順です。水が流れる方向を計算します。中央のグリッドセルの隣にある8つのセルの8つの可能性があります。セルの接続方法よりも、最初にこれらの方向を計算し、最後に線を引くことができます)。SAGAには簡単な実装があり、ほとんど擬似コードとして読み取られます:http : //saga-gis.svn.sourceforge.net/viewvc/saga-gis/trunk/saga-gis/src/modules_terrain_analysis/terrain_analysis/ta_channels/D8_Flow_Analysis。 cpp?revision = 911&view = markup

非常に簡単ですが、これはあまり現実的ではありません。すべてのセルで開始するストリームはありません。より高度なアルゴリズムは通常、最初にピットを閉じ(特に詳細なDEMがある場合)、セルごとの集水域、つまり特定のセルに水を供給するセルの数を計算し、次にしきい値を使用してストリームを決定します存在します。

SAGA GISはこれらの集水域メソッドの多くを実装しています。これらの説明は、このマニュアルhttp://sourceforge.net/settings/mirror_choices?projectname=saga-gis&filename=SAGA%20-%20Documentation/SAGA%20Documents/に記載されています。SagaManual.pdf

古いバージョンのSAGA GIS向けに作成されましたが、アルゴリズムの説明はまだかなり正確です。クイックリファレンス(これは120ページ前後です)のためにここにコピーします。コードを見て実装の詳細を確認します。

  • 決定論的8(D8):古典的。フローは、セルの中心から周囲のセルの1つ(そして1つだけ)の中心に流れます。したがって、フローの方向は45oの倍数に制限されます。これが、この方法の欠点のほとんどの主な理由です。(O'Callaghan&Mark 1984)。
  • Rho8:上記と同じですが、それを改善する必要がある確率論的なコンポーネントがあります。フローの方向は、アスペクトと隣接する2つの隣接セルの方向との違いに依存するランダムな引数によって決定されます。あまり役に立たない。。。(フェアフィールド&レイマリー1991)。
  • 確定的無限(D∞):フローは1つのセルから隣接する2つの隣接セルに移動するため、2次元フローを考慮し、D8メソッドの欠点を克服します。(Tarboton 1998)。
  • Braunschweiger Digitales Reliefmodell:別の複数フロー方向アルゴリズム。流れは、中央のセルのアスペクトに最も近い方向の周囲のセルと、隣接する2つのセルの間で分割されます。(Bauer、Bork&Rohdenburg 1985)。
  • FD8(SAGAでは単に複数フロー方向として検出):D8から派生した2次元フロールーティングアルゴリズム。(Quinn et al 1991)。
  • キネマティックルーティングアルゴリズム(KRA)。一次元フロートレースアルゴリズム。フローは、ボールの位置をセルの中心に制限することなく、DEMを転がるボールのように動作します。(Lea 1992)。
  • Digital Elevation Model Network(DEMON):最も複雑なもの。二次元フロートレースアルゴリズム。かなり時間がかかります。(Costa-Cabral&Burgess 1994)。

さらに多くのモデルが最近追加されました:

  • Triangular Multiple Flow Direction- Seibert、J. / McGlynn、B.(2007):「グリッド付きデジタル標高モデルから上り坂面積を計算するための新しい三角形の複数フロー方向アルゴリズム」、Water Resources Research、Vol。43、W04501。TINで直接機能する可能性があるため、これは興味深いかもしれません
  • Gruber and Peckham(2008)によって提案された、DEMベースの流れの蓄積の計算のためのMass-Flux Method(MFM)。Gruber、S.、Peckham、S.(2008):水文学における陸面パラメータとオブジェクト。In:Hengl、T.およびReuter、HI [編集]:地形計測:コンセプト、ソフトウェア、アプリケーション。土壌科学の発展、エルゼビア、Bd.33、S.293-308。
  • サイドアルゴリズム:http : //watershed.montana.edu/Hydrology/Home_files/2010WR009296.pdfおよび彼のコードは彼のWebサイトにもあります:http : //thomasgrabs.com/side-algorithm/

5

オリジナルのアプローチは、このペーパーで提案されているものです。

Fisher、P.、J。Wood、およびT. Cheng(2004)。Helvellynはどこですか?マルチスケール景観形態計測のあいまいさ。Institute of British Geographers 29、106-128のトランザクション。

ファジィおよびマルチスケール表現に基づく方法を提案します。確かではありませんが、このメソッドはLandSerfで実装されたものかもしれません。

ここに画像の説明を入力してください


上記のペーパーリンクにはアクセスできなくなりました
Graviton

@Graviton:リンクが修正されました!
ジュリアン

4

ArcGISのSpatial Analystにアクセスできる場合、ストリームパスを計算するための一連のツールがあります。完全なワークフローは、 ESRI基準に設けられた、典型的なワークフローが含まれます。

  1. TINを標高ラスターに変換します。
  2. 流れの方向を計算します。
  3. 小さなシンクを埋めます。
  4. 累積流量の計算
  5. しきい値を使用して、特定のフロー量のセルのみを選択します。
  6. Stream to Featureツールを使用して、ストリームをベクターシェープファイルにエクスポートします。

もちろん、さまざまな方法を説明する多数の学術論文がありますが、この方法はSpatial Analystにアクセスできるすべての人にとって簡単です。


コードを最初から記述する必要があるため、このソフトウェアパッケージを使用できません。
グラビトン

さて、これはほとんどのGISパッケージで使用される手順のようです。TerraFlowはオープンソースオプションですが、私は使用したことがありません。TINの処理に何を使用する予定ですか?
パトリック

1
私はあなたが言及したソフトウェアパッケージは、私には適用されない理由である私自身のストリームフローアルゴリズムを、書くことについて考えています
グラビトン

2
はい。「これを実行する方法についてはあまりわかりません」と言ったとき、私はあなたがこれを行う方法について実用的なアドバイスを望んでいると思いました。おそらく、これらのソフトウェアパッケージで使用されるワークフローは、アルゴリズムの全体的な構造へのガイドになる可能性があります。そこから、詳細について学術文献を参照することをお勧めします。たとえば、1997年のTarbotonは、フロー方向アルゴリズムの検索で何度も参照されました。
パトリック

3

グリッドベースのデジタル標高モデルでは、D8-LTDメソッドにより、勾配線の信頼できる決定が提供されます。

Orlandini、S。、およびG. Moretti(2009)、グリッド付き標高データからの表面流路の決定、Water Resour。Res。、45(3)、W03417、doi:10.1029 / 2008WR007099。

Orlandini、S.、G。Moretti、M。Franchini、B。Aldighieri、およびB. Testa(2003)、グリッドベースのデジタル標高モデルにおける非分散排水方向を決定するための経路ベースの方法、Water Resour。Res。、39(6)、1144、doi:10.1029 / 2002WR001639。

等高線ベースのデジタル標高モデルでは、次のペーパーで説明する(複雑な)モデルを使用して複雑な地形構造を解くことにより、傾斜線を自動的に決定できます。

Moretti、G。、およびS. Orlandini(2008)、スケルトン構築技術を使用した輪郭標高データからの流域の自動描写、Water Resour。Res。、44(5)、W05403、doi:10.1029 / 2007WR006309。


1

これは、ツールをゼロから作成するのに非常に役立つと思われます。ESRIは何十年もの間これに取り組んできましたが、まだ正しくありません。

AutoCAD(Civil 3D)は、TINを使用してこれを実行できます。舞台裏で何が起こっているのかは知りませんが、ArcGISでは、ストリームネットワークの識別はラスター解析によって処理されます。

簡単に言えば、入力DEMラスター(各セルにX、Y、Z値がある)が入力として使用され、アルゴリズムは、入力ラスターの各下り坂セルに流入するすべてのセルの「累積流量(累積重量として)」の引用を 計算ます。 」 製品は、各セルにフロー累積値があるラスタです。ストリームネットワークを特定するには、「集中フロー」の領域である高フローのセルを分離します。オプションの重み係数、水文学的に正しい入力DEMなど、その他の考慮事項があります。

このようなアルゴリズムの「メカニズム」に関しては、かなり単純なものになると思います。再帰的に各セルについて、周囲のすべてのセルの位置と標高を決定し、その標高に基づいてセルに流入するセルの数を合計します。TINについては、おそらく各三角形の2つのポイント(最高および最低の頂点)から線を構築し、これらすべてをネットワークに結合できます。


1
シンクや平坦なエリアを扱う際に問題が発生します。極端な例として、山の湖を表すDEMを考えてみましょう。これにより、DEMのほとんどが完全に平らになります。再帰的実装は、正確にどのようにして湖へのすべての流入をその流出ポイントにルーティングしますか?
whuber
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.