26.5. モデルデザイナー
モデルデザイナー ではシンプルで使いやすいインターフェースを利用して複雑なモデルを作ることができます. GISで作業をするときにほとんどの解析作業は単独で存在するのではなく一連の操作の一部として存在します. グラフィカルモデラーを使うと一連の操作を単一のプロセスにまとめることができ,後で異なるデータセットを入力として実行するときに便利です. 多くのステップや異なるアルゴリズムを含んでいてもモデルは単一のアルゴリズムとして実行されるので時間と労力を節約できます.
モデルデザイナーはプロセシングメニュー (
) から開けます.26.5.1. モデルデザイナーのインタフェース
モデラーはその主要部分にモデルの構造やワークフローを構築するための作業用キャンバスが用意されています。
ダイアログの上部には、さまざまなメニューと ナビゲーション ツールバーがあり、さまざまなツールにアクセスすることができます。
26.5.1.4. パネル
ウィンドウの左側は、モデルに新しい要素を追加するために使用できる5つのパネルがあるセクションです:
モデルのプロパティ: モデルの名前(必須)と、 プロセシングツールボックス に表示するグループを指定します
入力: モデルを形作るすべての 入力パラメータ
アルゴリズム: 利用可能な プロセシングアルゴリズム
変数: モデルには、そのモデルだけが利用できる固有の 変数 を含めることができます。これらの変数は、モデル内で使用されるあらゆる式でアクセスすることができます。この変数は、モデル内でアルゴリズムを制御したり、1つの変数を変更することでモデルの複数の側面を制御するのに便利です。変数は 変数 パネルで確認・変更することができます。
編集履歴: このパネルは、モデラーで起こったすべてのことを登録し、間違ったことを簡単に取り消すことができるようにするものです。
26.5.1.5. 利用可能なアルゴリズムについて
ツールボックスから実行できるアルゴリズムの中には、モデルを設計する際に利用可能なアルゴリズムのリストに表示されないものがあります。モデルに含めるには、アルゴリズムが正しいセマンティクスを持っている必要があります。もしアルゴリズムがそのような明確なセマンティクスを持っていない場合(例えば、出力レイヤの数を事前に知ることができない場合)、モデル内で使用することはできず、モデラーダイアログにあるアルゴリズムのリストには表示されません。一方、いくつかのアルゴリズムはモデラーに固有のものです。これらのアルゴリズムは、モデラーツール グループにあります。
26.5.2. モデルを作成する
モデルの作成には、基本的に2つのステップがあります:
必要な入力の定義。これらの入力はパラメータウィンドウに追加され、ユーザーはモデルを実行する際にその値を設定することができます。モデル自体はアルゴリズムなので、プロセシングフレームワークで利用可能なすべてのアルゴリズムと同様に、パラメータウィンドウは自動的に生成されます。
ワークフロー の定義。ワークフローは、モデルの入力データを用い、アルゴリズムを追加し、定義された入力やモデル内の他のアルゴリズムによって生成された出力をどのように使用するかを選択することによって、定義されます。
26.5.2.1. 入力の定義
最初のステップは、モデルの入力を定義することです。以下の要素は、モデラーウィンドウの左側にある 入力 パネルにあります:
注釈
入力の上にマウスカーソルを置くと、追加情報を示すツールチップが表示されます。
要素をダブルクリックすると、その特性を定義するためのダイアログが表示されます。パラメータによって、ダイアログには少なくとも1つの要素(説明文、ユーザーがモデルを実行するときに表示されるもの)が含まれます。例えば、数値を追加する場合、次図のように、パラメータの説明に加えて、デフォルト値や有効な値の範囲を設定する必要があります。
チェックボックス| 必須
をチェックすることで、モデルに必須の入力として定義でき、チェックボックス| 詳細設定
をチェックすることで、入力を 詳細設定
セクション内に設定することができます。これは、モデルに多くのパラメータがあり、そのうちのいくつかは些細なものではないが、それでも選択したい場合に特に有効です。
入力が追加されるごとに、モデラーキャンバスに新しい要素が追加されます。
また、リストから入力タイプをドラッグして、モデラーキャンバスの必要な位置にドロップすることで、入力を追加することができます。既存の入力のパラメータを変更したい場合は、その入力をダブルクリックすれば、同じダイアログが表示されます。
他のモデルの中でモデルを使用する場合、必要な入力と出力がキャンバスに表示されます。
26.5.2.2. ワークフローの定義
次の例では、2つの入力と2つのアルゴリズムを追加します。このモデルの目的は、Drape
アルゴリズムを用いてDEMラスタレイヤからラインレイヤに標高値をコピーし、Climb Along Line
アルゴリズムを用いてラインレイヤの合計上昇量を計算することです。
入力 タブで、2つの入力として、ラインには ベクタレイヤ
、DEMには ラスタレイヤ
を選択します。これで、ワークフローにアルゴリズムを追加する準備ができました。
アルゴリズムは アルゴリズム パネルにあり、プロセシングツールボックスにあるのと同じようにグループ化されています。
アルゴリズムをモデルに追加するには、入力と同様に、その名前をダブルクリックするか、ドラッグ&ドロップします。入力の場合と同様に、アルゴリズムの説明を変更したり、コメントを追加したりすることができます。アルゴリズムを追加すると、ツールボックスからアルゴリズムを実行するときに表示される実行パネルと同じような内容の実行ダイアログが表示されます。次の図は、ドレープ(ラスタ値をZ値に代入)
と 線に沿った上昇下降量
の両方のアルゴリズムダイアログを示しています。
ご覧のように、いくつかの違いがあります。各パラメータの横にドロップダウンメニューがあり、ワークフロー中にどのように処理されるかをコントロールすることができます:
値: パラメータに静的な値を割り当てることができます。パラメータタイプに応じて、ウィジェットは数値(
5.0
)、文字列(mytext
)を入力したり、QGISプロジェクトまたはフォルダからレイヤーを選択したり、リストから項目を選択したりすることができます。事前計算済値: 式ビルダ ダイアログを開き、パラメータを埋める式を定義します。モデル入力と他のレイヤの統計情報は 変数 として利用でき、式ビルダーの検索ダイアログの上部にリストされます。式は子アルゴリズムが実行される前に一度評価され、そのアルゴリズムの実行中に使用されます。
モデル入力: はモデルに追加された入力をパラメータとして使用することができます。このオプションをクリックすると、パラメータに適した入力がすべてリストアップされます。
アルゴリズム出力: は、別のアルゴリズムの出力を、現在のアルゴリズムの入力として使用することができます。モデル入力と同様に、このオプションはパラメータに適した入力をすべてリストアップします。
出力パラメータ にも、ドロップダウンメニューに上記のオプションがあります:
子アルゴリズムに静的出力を追加する。例えば、子アルゴリズムの出力を定義済みのgeopackageやpostgresレイヤに常に保存する
子アルゴリズムに式を基にした出力値を使う。例えば、今日の日付に基づいて自動ファイル名を生成し、そのファイルに出力を保存する
モデル入力を使う。例えば、ファイル/フォルダ モデル入力を使って、出力ファイルまたはフォルダを指定する
別のアルゴリズム出力を使う。例えば、(モデラーツール の)*ディレクトリを作成* アルゴリズムの出力
追加の モデル出力 オプションは、アルゴリズムの出力をモデルで利用できるようにします。アルゴリズムによって生成されたレイヤが他のアルゴリズムの入力としてのみ使用される場合は、このテキストボックスを編集しないでください。
次の図では、
モデル入力
として定義された2つの入力パラメータと、一時的な出力レイヤを見ることができます:
また、ツールボックスからアルゴリズムを呼び出すときには利用できない Dependencies という追加のパラメータがあります。このパラメータにより、あるアルゴリズムを現在のアルゴリズムの 親 として明示的に定義することで、アルゴリズムの実行順序を定義することができます。これにより、現在のアルゴリズムの前に 親 アルゴリズムが実行されます。
直前のアルゴリズムの出力を自分のアルゴリズムの入力として使用する場合、暗黙的に直前のアルゴリズムが現在のアルゴリズムの親として設定されます(そしてモデラーキャンバスに対応する矢印が配置されます)。しかし、あるアルゴリズムが、その出力オブジェクトを使用していなくても、別のアルゴリズムに依存している場合があります(例えば、PostGISデータベース上でSQL文を実行するアルゴリズムと、その同じデータベースにレイヤをインポートする別のアルゴリズム)。その場合、Dependencies パラメータで前のアルゴリズムを選択するだけで、正しい順序で実行されます。
すべてのパラメータに有効な値が代入されたら、 OK をクリックしてアルゴリズムをキャンバスに追加します。これは、アルゴリズムの入力として使用されるオブジェクトを提供するキャンバスの要素(アルゴリズムまたは入力)にリンクされます。
要素は、 アイテムを選択/移動 ツールを使ってキャンバス上の別の位置にドラッグすることができます。これはモデルの構造をより明確に、より直感的にするのに便利です。また、要素の境界をつかんでサイズを変更することもできます。これは入力やアルゴリズムの説明が長い場合に特に便利です。 オプションをチェックすると、アイテムのサイズ変更や移動が仮想的なグリッドに拘束され、より視覚的に構造化されたアルゴリズム設計が可能になります。
要素間のリンクは自動的に更新され、各アルゴリズムの上部と下部に +
ボタンが表示されます。ボタンをクリックすると、そのアルゴリズムのすべての入力と出力が一覧表示されるので、概要を素早く把握することができます。
ツールを使用すると、キャンバスにドラッグ可能な ボックス を追加することができます。この機能は、大きなモデルで関連する要素をモデラーキャンバス内でグループ化し、ワークフローをすっきりさせるのに非常に便利です。例えば、例のすべての入力をグループ化することができます:
ボックスの名前と色は変更できます。グループボックスは
ツールと一緒に使うと非常に便利で、モデルの特定の部分にズームインすることができます。また、マウスホイールを使って拡大、縮小することもできます。入力の順番を変更したり、メインのモデルダイアログにどのように入力が表示されるかを変更したい場 合があるかもしれません。入力
パネルの一番下に ``モデル入力の並べ替え... `` というボタンがあり、これをクリックすると新しいダイアログがポップアップ表示され、入力の順番を変更することができます:
コメントはモデラーにある入力やアルゴリズムに追加することもできます。これはアイテムの コメント タブを開くか、右クリックすることで行えます。同じタブで、個々のモデルコメントに対して手動で色を設定することができます。コメントはモデラーキャンバスのみに表示され、最終アルゴリズムダイアログには表示されません。 を無効にすることで非表示にすることができます。
モデルを実行 ボタンをクリックすることで、いつでもアルゴリズムを実行することができます。モデルを実行するためにエディタを使用するとき、デフォルト以外の値は入力に保存されます。これは、後でエディタからモデルを実行すると、ダイアログにそれらの値が事前に入力されることを意味します。
ツールボックスのアルゴリズムを使用するには、保存してモデラーダイアログを閉じ、ツールボックスの内容を更新する必要があります。
26.5.2.3. モデルを文書化する
モデルを文書化する必要がありますが、これはモデラー自身から行うことができます。 モデルのヘルプを編集 ボタンをクリックすると、次に示すようなダイアログが表示されます。
右側には、単純なHTMLページが表示されます、モデルまたはその作者の一般的な説明のようないくつかの追加のアイテムと一緒に、アルゴリズムの入力パラメーターと出力の記述を使用して作成しました。ヘルプエディタを初めて開いたときには、これらすべての記述が空になっているが、ダイアログの左側にある要素を使用して編集できます。上部の要素を選択し、下のテキストボックスにその説明を記述します。
モデルヘルプはモデル自体の一部として保存されます。
26.5.3. モデルを保存したりロードする
26.5.3.1. モデルを保存する
現在のモデルを保存するには モデルを保存 ボタンを、以前に保存したモデルを開くには モデルを開く ボタンを使用します。モデルは .model3
という拡張子で保存されます。モデルがすでにモデラーウィンドウから保存されている場合、ファイル名を入力するプロンプトは表示されません。モデルにはすでにファイルが関連付けられているため、以降の保存にはそのファイルが使用されます。
モデルを保存する前に、ウィンドウ上部のテキストボックスに名前とグループを入力する必要があります。
models
フォルダ(モデルを保存するためのファイル名を入力するプロンプトが表示されたときのデフォルトのフォルダ)に保存されたモデルは、対応するブランチのツールボックスに表示されます。ツールボックスが起動されると、 models
フォルダから .model3
という拡張子のファイルを探し、その中に含まれるモデルをロードします。モデルはそれ自体がアルゴリズムなので、他のアルゴリズムと同じようにツールボックスに追加することができます。
また、 モデルをプロジェクトに保存 ボタンを使ってプロジェクトファイル内にモデルを保存することもできます。この方法で保存されたモデルはディスク上に .model3
ファイルとして書き出されるのではなく、プロジェクトファイルに埋め込まれます。
プロジェクトモデルはツールボックスの Project models メニューと メニュー項目で利用できます。
モデルフォルダは モデラー グループ下、処理設定ダイアログから設定できます。
models
フォルダからロードされたモデルはツールボックスだけでなく、モデラーウィンドウの アルゴリズム タブにあるアルゴリズムツリーにも表示されます。つまり、他のアルゴリズムと同じように、より大きなモデルの一部としてモデルを組み込むことができるのです。
モデルは ブラウザ パネルに表示され、そこから実行することができます。
26.5.3.2. Pythonスクリプトとしてモデルを出力する
後の章で説明するように、プロセシングアルゴリズムはQGIS Pythonコンソールから呼び出すことができ、Pythonを使って新しいプロセシングアルゴリズムを作成することができます。このようなPythonスクリプトを作成する簡単な方法は、モデルを作成し、それをPythonファイルとしてエクスポートすることです。
これを行うには、モデラーキャンバスで スクリプトアルゴリズムとして出力... をクリックするか、プロセシングツールボックスでモデルの名前を右クリックして Pythonアルゴリズムとしてモデルを出力... を選択します。
26.5.3.3. モデルを画像、PDF又はSVGとしてエクスポートする
画像として出力、 PDFとして出力、 SVGとして出力 をクリックすると、モデルを画像、SVG、PDF(図解用)としてエクスポートすることもできます。
26.5.4. モデルを編集する
現在作成中のモデルを編集し、ワークフローや、モデルを定義するアルゴリズムと入力の関係を再定義することができます。
キャンバス内のアルゴリズムを右クリックすると、次に示すようなコンテキストメニューが表示されます:
削除 オプションを選択すると選択されているアルゴリズムを削除できます。アルゴリズムは他のアルゴリズムからの依存がなければ削除できます。つまり、アルゴリズムからの出力が別のアルゴリズムの入力として使用されていない場合。他のアルゴリズムからの依存があるアルゴリズムを削除しようとすると、以下のような警告メッセージが表示されます:
編集... オプションを選択すると、アルゴリズムのパラメータダイアログが表示され、入力やパラメータの値を変更することができます。モデルで利用可能なすべての入力要素が利用可能な入力として表示されるわけではありません。モデルで定義されたワークフローのより高度なステップで生成されたレイヤや値は、循環依存関係を引き起こす場合には利用できません。
新しい値を選択し、通常通り OK ボタンをクリックします。モデル要素間の接続は、それに応じてモデラーキャンバスで変更されます。
コメントを追加... を使うと、アルゴリズムにコメントを追加して動作をより分かりやすく説明することができます。
モデルを部分的に実行するには、いくつかのアルゴリズムを非アクティブにします。これを行うには、アルゴリズム要素を右クリックしたときに表示されるコンテキストメニューの 無効化 オプションを選択します。選択されたアルゴリズムと、それに依存するモデル内のすべてのアルゴリズムが灰色で表示され、モデルの一部として実行されなくなります。
アクティブでないアルゴリズムを右クリックすると、 有効化 メニューオプションが表示されます。