この目標を達成することはGISのいくらか基本的なタスクですが、QGISの方法は簡単ではないかもしれません。最良の可能性は、GRASSのr.walk
関数を使用することです。この関数は、異方性コストサーフェスを作成します(dem + slope +その他の要素)。
まず、への入力として摩擦サーフェスを作成する必要がありますr.walk
。あなたのケースでは、DEMの範囲に一致する単一値のラスター(1.0)にすることができます。次r.mapcalculator
の式で作成できます:A*0+1
AはDEMです。
次に、CSVから一連の開始点を選択する必要があります。これらはポイントであり、累積コストサーフェスはそこから計算されます。すべての開始点から個別の原価面を作成する必要があります。このステップのすべての開始ポイントに関連付けられている終了ポイントを(コース外の個々のレイヤーで)定義する方が賢明な場合があります。その後、r.walk
作成した入力で実行できます。開始点は単一のレイヤーにすることができ、ダイアログボックスの緑の矢印を使用して開始点を繰り返すことができます。
理想的なケースでは、コストサーフェスとすべてのコストサーフェスの終点があります。理論的には、で最小コストのパスを見つけることができましたr.drain
が、私にとってはエラーになりました(PythonはQgisRasterライブラリをインポートできませんでした)。同じ問題が発生する場合は、SAGAの「最小コストパス」アルゴリズムを使用できます。コストサーフェスのあるすべての終点にポイントとラインレイヤーが作成されます(繰り返しボタンをもう一度使用します)。すべてのラインを取得したら、SAGAの「シェイプレイヤーのマージ」ツールを使用して、ラインを1つのシェープファイルにマージできます。
このメソッドは、ポイントの増加により非常に遅くなる可能性があるため、ポイントが多い場合は、Pythonでメソッドを自動化しようとする場合があります。計算にはまだ時間がかかりますが(特にコストサーフェス)、大量の終点レイヤーを手動で作成する必要はありません。