重要
翻訳は あなたが参加できる コミュニティの取り組みです。このページは現在 96.25% 翻訳されています。
23.5. モデルデザイナー
モデルデザイナー ではシンプルで使いやすいインターフェースを利用して複雑なモデルを作ることができます. GISで作業をするときにほとんどの解析作業は単独で存在するのではなく一連の操作の一部として存在します. グラフィカルモデラーを使うと一連の操作を単一のプロセスにまとめることができ,後で異なるデータセットを入力として実行するときに便利です. 多くのステップや異なるアルゴリズムを含んでいてもモデルは単一のアルゴリズムとして実行されるので時間と労力を節約できます.
モデルデザイナーはプロセシングメニュー(
)から開けます。23.5.1. モデルデザイナーのインタフェース

図 23.18 モデルデザイナー
モデラーはその主要部分にモデルの構造やワークフローを構築するための作業用キャンバスが用意されています。
ダイアログの上部には、さまざまなメニューと ナビゲーション ツールバーがあり、さまざまなツールにアクセスすることができます。
23.5.1.4. パネル
ウィンドウの左側は、モデルに新しい要素を追加するために使用できる5つのパネルがあるセクションです:
モデルのプロパティ: モデルの名前(必須)と、 プロセシングツールボックス に表示するグループを指定します
入力: モデルを形作るすべての 入力パラメータ
アルゴリズム: 利用可能な プロセシングアルゴリズム
変数: モデルには、そのモデルだけが利用できる固有の 変数 を含めることができます。これらの変数は、モデル内で使用されるあらゆる式でアクセスすることができます。この変数は、モデル内でアルゴリズムを制御したり、1つの変数を変更することでモデルの複数の側面を制御するのに便利です。変数は 変数 パネルで確認・変更することができます。
編集履歴: このパネルは、モデラーで起こったすべてのことを登録し、間違ったことを簡単に取り消すことができるようにするものです。
23.5.1.5. 利用可能なアルゴリズムについて
ツールボックスから実行できるアルゴリズムの中には、モデルを設計する際に利用可能なアルゴリズムのリストに表示されないものがあります。モデルに含めるには、アルゴリズムが正しいセマンティクスを持っている必要があります。もしアルゴリズムがそのような明確なセマンティクスを持っていない場合(例えば、出力レイヤの数を事前に知ることができない場合)、モデル内で使用することはできず、モデラーダイアログにあるアルゴリズムのリストには表示されません。一方、いくつかのアルゴリズムはモデラーに固有のものです。これらのアルゴリズムは、モデラーツール グループにあります。
23.5.2. モデルを作成する
モデルの作成には、基本的に2つのステップがあります:
必要な入力の定義。これらの入力はパラメータウィンドウに追加され、ユーザーはモデルを実行する際にその値を設定することができます。モデル自体はアルゴリズムなので、プロセシングフレームワークで利用可能なすべてのアルゴリズムと同様に、パラメータウィンドウは自動的に生成されます。
ワークフロー の定義。ワークフローは、モデルの入力データを用い、アルゴリズムを追加し、定義された入力やモデル内の他のアルゴリズムによって生成された出力をどのように使用するかを選択することによって、定義されます。
23.5.2.1. 入力の定義
最初のステップはモデルの入力を定義することです。それらはモデラーウィンドウの左側にある 入力 パネルにあります。入力の上にマウスカーソルを置くと、ツールチップに追加情報が表示されます。モデラーで利用可能なパラメータの完全なリストとスクリプトの対応については プロセシングアルゴリズムのための入力と出力の型 を参照してください。
要素をダブルクリックすると、その特性を定義するためのダイアログが表示されます。パラメータによって、ダイアログには少なくとも1つの要素(説明文、ユーザーがモデルを実行するときに表示されるもの)が含まれます。例えば、数値を追加する場合、次図のように、パラメータの説明に加えて、デフォルト値や有効な値の範囲を設定する必要があります。

図 23.19 モデルパラメータ定義
必須
オプションをチェックすることで、モデルに必須の入力として定義でき、
詳細設定
チェックボックスをチェックすることで、入力を 詳細設定
セクション内に設定することができます。これは、モデルに多くのパラメータがあり、そのうちのいくつかは些細なものではないが、それでも選択したい場合に特に有効です。
入力が追加されるごとに、モデラーキャンバスに新しい要素が追加されます。

図 23.20 モデルパラメータ
また、リストから入力タイプをドラッグして、モデラーキャンバスの必要な位置にドロップすることで、入力を追加することができます。既存の入力のパラメータを変更したい場合は、その入力をダブルクリックすれば、同じダイアログが表示されます。
他のモデルの中でモデルを使用する場合、必要な入力と出力がキャンバスに表示されます。
23.5.2.2. ワークフローの定義
次の例では、2つの入力と2つのアルゴリズムを追加します。このモデルの目的は、ドレープ
アルゴリズムを用いてDEMラスタレイヤからラインレイヤに標高値をコピーし、線に沿った上昇下降量
アルゴリズムを用いてラインレイヤの合計上昇量を計算することです。
入力 タブで、2つの入力として、ラインには ベクタレイヤ
、DEMには ラスタレイヤ
を選択します。これで、ワークフローにアルゴリズムを追加する準備ができました。
アルゴリズムは アルゴリズム パネルにあり、プロセシングツールボックスにあるのと同じようにグループ化されています。

図 23.21 モデル入力
アルゴリズムをモデルに追加するには、入力と同様に、その名前をダブルクリックするか、ドラッグ&ドロップします。入力の場合と同様に、アルゴリズムの説明を変更したり、コメントを追加したりすることができます。アルゴリズムを追加すると、ツールボックスからアルゴリズムを実行するときに表示される実行パネルと同じような内容の実行ダイアログが表示されます。次の図は、ドレープ(ラスタ値をZ値に代入)
と 線に沿った上昇下降量
の両方のアルゴリズムダイアログを示しています。

図 23.22 モデルアルゴリズムパラメータ
しかしご覧のように、いくつかの違いがあります。各パラメータの横にはドロップダウンメニューがあり、ワークフロー中にどのように処理されるかを制御することができます:
値: パラメータに静的な値を割り当てることができます。パラメータタイプに応じて、ウィジェットは数値(
5.0
)、文字列(mytext
)を入力したり、QGISプロジェクトまたはフォルダからレイヤーを選択したり、リストから項目を選択したりすることができます。事前計算済値: 式ビルダ ダイアログを開き、パラメータを埋める式を定義します。モデル入力と他のレイヤの統計情報は 変数 として利用でき、式ビルダーの検索ダイアログの上部にリストされます。式は子アルゴリズムが実行される前に一度評価され、そのアルゴリズムの実行中に使用されます。
モデル入力: はモデルに追加された入力をパラメータとして使用することができます。このオプションをクリックすると、パラメータに適した入力がすべてリストアップされます。
アルゴリズム出力: は、別のアルゴリズムの出力を、現在のアルゴリズムの入力として使用することができます。モデル入力と同様に、このオプションはパラメータに適した入力をすべてリストアップします。
出力パラメータ にも、ドロップダウンメニューに上記のオプションがあります:
子アルゴリズムに静的出力を追加する。例えば、子アルゴリズムの出力を定義済みのgeopackageやpostgresレイヤに常に保存する
子アルゴリズムに式を基にした出力値を使う。例えば、今日の日付に基づいて自動ファイル名を生成し、そのファイルに出力を保存する
モデル入力を使う。例えば、ファイル/フォルダ モデル入力を使って、出力ファイルまたはフォルダを指定する
別のアルゴリズム出力を使う。例えば、(モデラーツール の) ディレクトリを作成 アルゴリズムの出力
追加の
モデル出力 オプションは、アルゴリズムの出力をモデルで利用できるようにします。アルゴリズムによって生成されたレイヤが他のアルゴリズムの入力としてのみ使用される場合は、このテキストボックスを編集しないでください。
次の図では、
モデル入力
として定義された2つの入力パラメータと、一時的な出力レイヤを見ることができます:図 23.23 アルゴリズム入力と出力パラメータ
また、ツールボックスからアルゴリズムを呼び出すときには利用できない Dependencies という追加のパラメータがあります。このパラメータにより、あるアルゴリズムを現在のアルゴリズムの 親 として明示的に定義することで、アルゴリズムの実行順序を定義することができます。これにより、現在のアルゴリズムの前に 親 アルゴリズムが実行されます。
直前のアルゴリズムの出力を自分のアルゴリズムの入力として使用する場合、暗黙的に直前のアルゴリズムが現在のアルゴリズムの親として設定されます(そしてモデラーキャンバスに対応する矢印が配置されます)。しかし、あるアルゴリズムが、その出力オブジェクトを使用していなくても、別のアルゴリズムに依存している場合があります(例えば、PostGISデータベース上でSQL文を実行するアルゴリズムと、その同じデータベースにレイヤをインポートする別のアルゴリズム)。その場合、Dependencies パラメータで前のアルゴリズムを選択するだけで、正しい順序で実行されます。
全てのパラメータに有効な値が代入されたら、 OK をクリックしてアルゴリズムをキャンバスに追加します。これは、アルゴリズムの入力として使用されるオブジェクトを提供するキャンバスの要素(アルゴリズムまたは入力)にリンクされます。
要素は、 アイテムを選択/移動 ツールを使ってキャンバス上の別の位置にドラッグすることができます。これはモデルの構造をより明確に、より直感的にするのに便利です。また、要素の境界をつかんでサイズを変更することもできます。これは入力やアルゴリズムの説明が長い場合に特に便利です。 オプションをチェックすると、アイテムのサイズ変更や移動が仮想的なグリッドに拘束され、より視覚的に構造化されたアルゴリズム設計が可能になります。
要素間のリンクは自動的に更新され、各アルゴリズムの上部と下部に +
ボタンが表示されます。ボタンをクリックすると、そのアルゴリズムのすべての入力と出力が一覧表示されるので、概要を素早く把握することができます。

図 23.24 完成したモデル
ツールを使用すると、キャンバスにドラッグ可能な ボックス を追加することができます。この機能は、大きなモデルで関連する要素をモデラーキャンバス内でグループ化し、ワークフローをすっきりさせるのに非常に便利です。例えば、例のすべての入力をグループ化することができます:

図 23.25 モデルグループボックス
ボックスの名前と色は変更できます。グループボックスは
ツールと一緒に使うと非常に便利で、モデルの特定の部分にズームインすることができます。また、マウスホイールを使って拡大、縮小することもできます。入力の順番を変更したり、メインのモデルダイアログにどのように入力が表示されるかを変更したい場合があるかもしれません。入力
パネルの一番下に モデル入力の並べ替え...
というボタンがあり、これをクリックすると新しいダイアログがポップアップ表示され、入力の順番を変更することができます:

図 23.26 モデル入力の並べ替え
また、結果をプロジェクトに読み込む際に、モデルからの出力が使用しなければならない特定の順序を設定することもできます。これはモデル作成者に、モデルを実行する際にキャンバス上でレイヤが論理的に順序付けられることを保証する手段を与えます。例えば、ラスタレイヤ出力の上にベクタレイヤ出力を配置したり、ポリゴンレイヤの上にポイントレイヤを配置したりすることができます。モデル作成者は出力にオプションの「グループ名」を設定することもでき、新しいグループ名を使用して出力をレイヤツリー内で自動的にグループ化するか、既存のグループに追加することができます。モデル
メニューの中に 出力レイヤを並べ替え...
という項目があり、これをクリックすると新しいダイアログがポップアップし、出力レイヤの順序を変更することができます:

図 23.27 出力レイヤを並べ替え
モデラー内の入力やアルゴリズムにコメントを追加することもできます。これはアイテムの コメント タブを開くか、右クリックすることで行えます。同じタブで、個々のモデルコメントに対して手動で色を設定することができます。コメントはモデラーキャンバスのみに表示され、最終アルゴリズムダイアログには表示されません。 を無効にすることで非表示にすることができます。
Your model can be run in various ways:
You can run the whole model by clicking on
Run Model... from the toolbar or
: when using the editor to execute a model, any non-default values will be saved in the inputs. This means that executing the model at a later time from the editor will have the dialog prefilled with those values on any subsequent run.
You can select elements of the model and run only that subset of the model: press the
Run Selected Steps... option from the menu or from the contextual menu of a selected algorithm. The initial state will be taken from any previous executions of the model through the editor, so results from previous steps in the model are available for the selected steps. This makes it possible to fix parts of a large model, without having to constantly run the entire model to test. Especially useful when earlier steps in the model are time consuming.
You can run a subset of the model, starting from a specific algorithm: right-click the algorithm and select
Run from Here.... Likewise, values are taken from previous executions.
In order to use the algorithm from the Processing Toolbox, it has to be saved and the modeler dialog closed, to allow the toolbox to refresh its contents.
23.5.2.3. モデルを文書化する
モデルを文書化する必要がありますが、これはモデラー自身から行うことができます。 モデルのヘルプを編集 ボタンをクリックすると、次に示すようなダイアログが表示されます。

図 23.28 ヘルプを編集する
右側には、モデルの一般的な説明や作者のような追加項目とともに、アルゴリズムの入力パラメータと出力の説明を使って作られた単純なHTMLページが表示されます。また、モデルの使い方を説明するために、独自のカスタム例を入力できる例セクションもあります。ヘルプエディタを初めて開いたときは、これらの説明はすべて空ですが、ダイアログの左側の要素を使って編集することができます。上部の要素を選択し、下のテキストボックスにその説明を書き込みます。
モデルヘルプはモデル自体の一部として保存されます。
23.5.3. モデルの保存と読み込み
23.5.3.1. モデルを保存する
現在のモデルを保存するには モデルを保存 ボタンを、以前に保存したモデルを開くには
モデルを開く ボタンを使用します。モデルは
.model3
という拡張子で保存されます。モデルがすでにモデラーウィンドウから保存されている場合、ファイル名を入力するプロンプトは表示されません。モデルにはすでにファイルが関連付けられているため、以降の保存にはそのファイルが使用されます。
モデルを保存する前に、ウィンドウ上部のテキストボックスに名前とグループを入力する必要があります。
models
フォルダ(モデルを保存するためのファイル名を入力するプロンプトが表示されたときのデフォルトのフォルダ)に保存されたモデルは、対応するブランチのツールボックスに表示されます。ツールボックスが起動されると、 models
フォルダから .model3
という拡張子のファイルを探し、その中に含まれるモデルをロードします。モデルはそれ自体がアルゴリズムなので、他のアルゴリズムと同じようにツールボックスに追加することができます。
また、 モデルをプロジェクトに保存 ボタンを使ってプロジェクトファイル内にモデルを保存することもできます。この方法で保存されたモデルはディスク上に
.model3
ファイルとして書き出されるのではなく、プロジェクトファイルに埋め込まれます。
プロジェクトモデルはツールボックスの プロジェクトモデル メニューと メニュー項目で利用できます。
モデルフォルダは、プロセシング設定ダイアログの モデル グループ下から設定できます。
models
フォルダからロードされたモデルはツールボックスだけでなく、モデラーウィンドウの アルゴリズム タブにあるアルゴリズムツリーにも表示されます。つまり、他のアルゴリズムと同じように、より大きなモデルの一部としてモデルを組み込むことができるのです。
モデルは ブラウザ パネルに表示され、そこから実行することができます。
23.5.3.2. Pythonスクリプトとしてモデルを出力する
後の章で説明するように、プロセシングアルゴリズムはQGIS Pythonコンソールから呼び出すことができ、Pythonを使って新しいプロセシングアルゴリズムを作成することができます。このようなPythonスクリプトを作成する簡単な方法は、モデルを作成し、それをPythonファイルとしてエクスポートすることです。
これを行うには、モデラーキャンバスで スクリプトアルゴリズムとして出力... をクリックするか、プロセシングツールボックスでモデルの名前を右クリックして
Pythonアルゴリズムとしてモデルを出力... を選択します。
23.5.3.3. モデルを画像、PDF又はSVGとしてエクスポートする
画像として出力、
PDFとして出力、
SVGとして出力 をクリックすると、モデルを画像、SVG、PDF(図解用)としてエクスポートすることもできます。
23.5.4. モデルを編集する
現在作成中のモデルを編集し、ワークフローや、モデルを定義するアルゴリズムと入力の関係を再定義することができます。
キャンバス内のアルゴリズムを右クリックすると、次に示すようなコンテキストメニューが表示されます:

図 23.29 モデラー右ボタンクリック
削除 オプションを選択すると選択されているアルゴリズムを削除できます。アルゴリズムは他のアルゴリズムからの依存がなければ削除できます。つまり、アルゴリズムからの出力が別のアルゴリズムの入力として使用されていない場合。他のアルゴリズムからの依存があるアルゴリズムを削除しようとすると、以下のような警告メッセージが表示されます:

図 23.30 アルゴリズムを削除できない
編集... オプションを選択すると、アルゴリズムのパラメータダイアログが表示され、入力やパラメータの値を変更することができます。モデルで利用可能なすべての入力要素が利用可能な入力として表示されるわけではありません。モデルで定義されたワークフローのより高度なステップで生成されたレイヤや値は、循環依存関係を引き起こす場合には利用できません。
新しい値を選択し、通常通り OK ボタンをクリックします。モデル要素間の接続は、それに応じてモデラーキャンバスで変更されます。
コメントを追加... を使うと、アルゴリズムにコメントを追加して動作をより分かりやすく説明することができます。
モデルを部分的に実行するには、いくつかのアルゴリズムを非アクティブにします。これを行うには、アルゴリズム要素を右クリックしたときに表示されるコンテキストメニューの 無効化 オプションを選択します。選択されたアルゴリズムと、それに依存するモデル内のすべてのアルゴリズムが灰色で表示され、モデルの一部として実行されなくなります。

図 23.31 無効化されたアルゴリズムを持つモデル
アクティブでないアルゴリズムを右クリックすると、 有効化 メニューオプションが表示されます。