17.24. アルゴリズムの反復実行
注釈
このレッスンでは、アルゴリズムを繰り返し実行して入力ベクタレイヤの地物に対して反復適用するという、ベクタレイヤを使うアルゴリズムを実行する別の方法を示します。
モデルデザイナーが処理タスクを自動化する方法の一つであることは既に分かりました。しかし、状況によっては、モデラーが必要なタスクを自動化するための適切な方法ではないかもしれません。そのような状況のひとつで、異なる機能:アルゴリズムの反復適用を使った、それを簡単に解決する方法を見てみましょう。
この章に対応するデータを開きます。それは次のようになります。
前の章でお馴染みのDEMと、それから抽出された一連の流域を認識することができます。DEMをいくつかの小さなレイヤに分割し、各レイヤに単一の流域に対応する標高データだけが含まれるようにする必要があると想像してください。それは後で各流域に関連する、平均標高や高低曲線などのパラメータを計算したい場合に便利です。
これは、流域の数が多い場合は特に、長くて退屈な作業になることがあります。しかし、それはこれからご覧になるように簡単に自動化できる作業です。
ポリゴンレイヤでラスタレイヤを切り抜くために使うアルゴリズムは、Clip raster with polygons(ポリゴンでラスタをクリップ) と呼ばれ、以下のパラメータダイアログボックスを持っています。
流域レイヤーとDEMを入力として使ってそれを実行できます。そして次の結果が得られます。
ご覧のように、すべての分水界ポリゴンで覆われた領域が使用されています。
望む流域を選択し、前に行ったアルゴリズムを実行することにより、1つだけの流域で切り抜かれたDEMが得られます。
選択した地物だけが使われるので、選択されたポリゴンだけがラスタレイヤを切り抜くために使われます。
すべての流域についてこれを行えば、求めている結果が生成されますが、あまり現実的な方法とは思えません。その代わりに、その 選択と切り抜き ルーチンを自動化する方法を見てみましょう。
まず、前の選択を解除して、全てのポリゴンが再度使用されるようにします。次に、Clip raster with polygon(ポリゴンでラスタをクリップする) アルゴリズムを開き、以前と同じ入力を選択しますが、今回は、選択した集水域レイヤの右側にあるベクターレイヤの入力にあるボタンをクリックします。
このボタンを押すと、選択した入力レイヤはそこにある地物の数だけ分割され、ひとつのポリゴンを含んだレイヤに分割されます。そのため、アルゴリズムはそれぞれの単一ポリゴンレイヤに対して繰り返し呼び出されます。このアルゴリズムの場合、結果は1つのラスタレイヤではなく、アルゴリズムの実行ごとに対応する複数のラスタレイヤのセットになります。
こちらが説明したようにクリッピングアルゴリズムを実行した場合に得られる結果です。
各レイヤについて、黒と白のカラーパレット(または使用しているパレット)は、最小値から最大値まで異なるように調整されます。そのため、レイヤ間の境界線では、異なるピースと色が一致しないように見えますが、値は一致しています。
出力ファイル名を入力した場合、結果のファイルは、そのファイル名と接尾辞としてそれぞれの反復に対応する番号を使用して名前が付けられます。