18.15. ラスターレイヤーをクリップしてマージする¶
注釈
このレッスンでは、現実の世界のシナリオで地理アルゴリズムを継続して使用する、空間データの準備の別の例が表示されます。
このレッスンでは、ポリゴン1つだけのベクターレイヤーによって与えられる市街地を囲む領域に対して傾斜レイヤーを計算しようとしています。ベースDEMは2つのラスターレイヤーに分割され、併せると作業したい都市の周りのものよりはるかに大きい領域をカバーしています。このレッスンに対応したプロジェクトを開くと、次のように表示されます。
これらのレイヤーには二つの問題があります。
それらは希望するよりずっと大きい領域をカバーしています(興味があるのは市内中心部の周りのより小さな領域)
それらは2つの異なるファイルにあります(市域は1つだけのラスターレイヤーに入るが、言われているように、その周りにいくつかの余分な面積が欲しい)。
それらの両方が適切な地理アルゴリズムで簡単に解決できます。
まず、望む領域を定義する矩形を作成します。これを行うには、市の面積の限界を有するレイヤーのバウンディングボックスを含むレイヤーを作成し、それから厳密に必要であるよりもう少しカバーするラスターレイヤーを有するように、それをバッファリングします。
バウンディングボックスを計算するために、 レイヤーの範囲からポリゴン アルゴリズムを使用できます
それをバッファリングするために、以下のパラメーター値で、 固定距離バッファ アルゴリズムを使用します。
警告
構文は最近のバージョンで変更されました;距離とアークの頂点の両方を0.25に設定します
これが上に示したパラメーターを用いて得られた結果のバウンディングボックスです
これは丸みを帯びた箱ですが、それに レイヤーの範囲からポリゴン アルゴリズムを実行することで、正方形の角度での同等のボックスを簡単に取得できます。最初の市域をバッファリングして、一ステップ省略し、範囲矩形を計算することもできたでしょう。
ラスターは、ベクターと別の投影を有することがわかります。したがって、 ワープ(再投影) ツールを使用して、さらに進む前にそれらを再投影する必要があります。
注釈
最近のバージョンではより複雑なインターフェイスになっています。少なくとも1つの圧縮方式が選択されていることを確認します。
入手したいラスターレイヤーのバウンディングボックスが含まれるこのレイヤーで、 ポリゴンでラスターをクリップ アルゴリズムを使用して、ラスターレイヤーの両方をトリミングできます。
レイヤーがトリミングされたら、それらはGDAL マージ アルゴリズムを使用してマージできます。
注釈
最初にマージしてからトリミングすると時間を節約でき、二回クリッピングアルゴリズムを呼び出さずにすむでしょう。しかしながら、マージする複数のレイヤーがあってそれらがかなり大きなサイズを持っている場合、それが後工程に処理が困難であるよりも大きなレイヤーになってしまいます。その場合はクリッピングアルゴリズムを数回呼び出す必要があります。時間がかかるかもしれませんが、心配しないで。その操作を自動化するためにいくつかの追加のツールがあることがすぐにわかりますから。この例では、レイヤーは2つだけなので、今それを心配することはありません。
それによって、私たちが望む最後のDEMが得られます。
では傾斜レイヤーを計算しましょう。
傾斜レイヤーは 傾斜・方向・曲率 アルゴリズムを用いて計算できますが、標高値はメート ル単位ですがセルサイズはメートルで表現されていないため、最後の工程で得られたDEMは入力として適していません(レイヤーは地理座標を持つCRS使用して)。再投影が必要とされています。ラスターレイヤーを再投影するために、ワープ(再投影) アルゴリズムを再び使用できます。単位(例えば3857)メートルでCRSに再投影、その後、正しくSAGAやGDALのいずれかで、傾きを計算できます。
新DEMでは、傾きが計算できるようになりました。
そして、これが結果の傾斜レイヤーです。
傾斜・方向・曲率 アルゴリズムによって作成される傾斜は、度またはラジアンで表現できます。度は、より実用的で一般的な単位です。ラジアンでそれを計算した場合は、 メトリック変換 アルゴリズムが変換を行うのに役立ちます(しかし、そのアルゴリズムが存在してると知らなかった場合は、すでに使用しているラスター計算機を使用できたでしょう)。
ラスターレイヤー再投影 で変換された斜面レイヤーを再投影して戻すと、望んでいた最終レイヤーが得られます。
警告
TODO:画像を追加します。
再投影プロセスでは、最初のステップの1つで計算されたバウンディングボックス外のデータを最終レイヤーが格納するようにしている可能性があります。これは、ベースDEMを得るためにしたのと同じように、それを再びクリッピングすることによって解決できます。