グラフィカルモデラー では、シンプルで使いやすいインターフェイスを使用して複雑なモデルを作成できます。GISで作業する場合、ほとんどの分析操作は孤立ではなく、むしろ業務のチェーンの一部です。グラフィカル・モデラーを使用して、プロセスの鎖は、1つのプロセスに巻き付けることができるので、入力の異なるセットに単一のプロセス後のように実行することがより便利通りです。それがどんなに多くの手順と異なるアルゴリズムを含もうと、モデルは単一のアルゴリズムとして実行され、従って、大きなモデルについては特に、時間と労力の節約になります。
プロセッシングメニューからモデラーは開けます.
モデラーにはモデルの構造とワークフローを表現するワーキングキャンバスがあります.ウィンドウの左のパートには2つのタブを持つパネルがありモデルに新しいエレメントを加えるために使われます.
Figure Processing 17:
モデルの作成には2つのステップが含まれます:
必須入力項目の定義. これらの入力はパラメータウィンドウに追加されます, ですからユーザはモデルの実行時にそれらの値を入力できます. モデル自身はアルゴリズムですからパラメータウィンドウはプロセッシングフレームワークの全てのアルゴリズムで入力が必要になった時に自動的に生成されます.
ワークフローの定義. モデルの入力データを使ってアルゴリズムの追加と入力をどう使いすでにモデルにあるアルゴリズムを使って出力をどう作るかを指定したりすることでワークフロウを定義します
モデル作成の最初の一歩は必要な入力を定義することです. モデラーウィンドウの左にある Inputs タブには以下のエレメントがあります:
ラスタレイヤ
ベクタレイヤ
文字列
テーブルフィールド
テーブル
領域
数値
真偽値
ファイル
これらの要素のいずれかをダブルクリックすると、ダイアログがその特性を定義することが示されています。パラメータ自体によっては、ダイアログはただ一つの基本要素(モデルを実行するときにユーザが見るもので説明)、またはそれらの多くが含まれていてもよいです。別にパラメータの記述から、次の図に見られるように、たとえば数値を追加する場合、デフォルト値と有効な値の範囲を設定する必要があります。
Figure Processing 18:
それぞれの入力が追加されるとモデラーキャンバスに新しいエレメントが追加されます.
Figure Processing 19:
また、それを配置したい位置で、リストから入力タイプをドラッグし、モデラーのキャンバス上にドロップすることにより、入力を追加できます。
入力の定義が行われた後にそれらに適用するアルゴリズムの定義を行います. アルゴリズムは Algorithms タブで見つけることができツールボックスと同じようにグループ分けされています.
Figure Processing 20:
モデルにアルゴリズムを追加するには、その名前またはドラッグをダブルクリックして入力を追加する際にそれが行われたばかりのように、それをドロップします。実行ダイアログはツールボックスからアルゴリズムを実行時に表示される実行パネルに見られるものと同様の内容で表示されます。次示されるものは、SAGA「集中度」アルゴリズムに相当します。
Figure Processing 21:
ご覧になれるように、いくつかの違いが存在します。代わりに、出力レイヤーとテーブルのファイルパスを設定するために使用されたファイルの出力ボックスの、単純なテキストボックスには、ここで使用されます。アルゴリズムによって作成されたレイヤーは、別のアルゴリズムの入力として使用され、最終結果として保持すべきではない単なる一時的な結果である場合は、単にそのテキストボックスを編集しないでください。それに何かを入力すると、結果は最終的なもので、提供するテキストは、モデルの実行時にユーザーに表示される出力でしょう、出力に対する説明であることを意味します。
モデラーのコンテキストと、ツールボックスとの間の重要な違いがあるため、各パラメータの値を選択することも少し異なっています。のは、パラメータの種類ごとに値を導入する方法を見てみましょう。
レイヤ(ラスターおよびベクトル)とテーブル。これらは、リストから選択されるが、この場合には、可能な値は、現在QGISにロードレイヤーまたはテーブルではなく、モデルに対応するタイプの入力、またはアルゴリズムによって生成された他のレイヤまたはテーブルのリストが既にモデルに追加されます。
数値。リテラル値は、テキストボックスに直接導入することができます。しかし、このテキストボックスには、モデルの数値入力のいずれかを選択するために使用することができるリストです。この場合、パラメータは、モデルを実行するときにユーザによって導入された値を取ります。
文字列。数値の場合のように、リテラル文字列を入力、または入力文字列を選択できます。
テーブルのフィールド。それらはユーザの選択にモデルが実行されるたびに依存するため、親テーブルまたはレイヤのフィールドは、設計時に知ることができません。、このパラメータの値を設定し、テキストボックスに直接フィールドの名前を入力するか、すでにモデルに追加されたテーブルのフィールドの入力を選択するには、リストを使用します。選択したフィールドの妥当性は、実行時にチェックされます。
すべての場合において、ツールボックスから、アルゴリズムを呼び出すときに使用できない 親アルゴリズム という名前の追加のパラメータがあることに気づくでしょう。このパラメータを使用するには、アルゴリズムが明示的に現在の1の前に実行されるように、親アルゴリズムを強制的に現在の1の親のように、1つのアルゴリズムを定義することによって実行される順序を定義できます。
アルゴリズムの入力として前のアルゴリズムの出力を使用する場合、それは暗黙的に以前のアルゴリズムを現在のアルゴリズムの親として設定します(そしてモデラーのキャンバスに対応する矢印を配置します)。しかし、いくつかのケースでは、アルゴリズムは、それがそこから任意の出力オブジェクトを使用しない場合であっても別のアルゴリズムに依存する可能性があります(例えば、PostGISのデータベースと同じデータベースにレイヤをインポートするもう一つのSQL文を実行するアルゴリズム)。その場合には、単に 親アルゴリズム パラメータで前アルゴリズムを選択すれば、2つのステップが正しい順序で実行されます。
すべてのパラメータが有効な値を割り当てられると、 [OK] をクリックすると、アルゴリズムは、キャンバスに追加されます。オブジェクトを提供アルゴリズムまたは入力は、そのアルゴリズムのための入力として使用されるかどうかを、キャンバス内のすべての他の要素に連結されます。
要素はモジュール構造の表示方法を変更し、それがより明確かつ直感的にするために、キャンバス内の別の位置にドラッグできます。要素間のリンクが自動的に更新されます。マウスのホイールを使ってズームイン、ズームアウトできます。
[ファイル名を指定して実行]ボタン をクリックして、アルゴリズムの任意の時間を実行できます。ただし、ツールボックスからアルゴリズムを使用するためには、保存する必要があり、モデラー]ダイアログボックスは、ツールボックスには、その内容を更新できるようにするために、閉じました。
[保存] 現行モデルと [開く]を保存するためのボタン 以前に保存されたすべてのモデルを開くためのボタンを使用してください。モデルは .model 拡張子で保存されます。モデルは以前モデラーウィンドウから保存されている場合は、ファイル名の入力を求められません。そのモデルに関連付けられたファイルが既に存在するため、同一のファイルがその後のどの保存でも使用されます。
モデルの保存を行う前にウィンドウの上部にあるテキストボックスを使って名前とグループを入力しなければいけません.
保存されたモデル models フォルダ(モデルを保存するファイル名を求めるプロンプトが表示され、デフォルトのフォルダ)は、対応するブランチにツールボックスに表示されます。を持つファイルを models フォルダツールボックスが起動されると、それは検索 .model 拡張およびそれらに含まれるモデルをロードします。モデルは、アルゴリズム自体であるため、それだけで、他のアルゴリズムのようなツールボックスに追加できます。
モデルフォルダは Modeler グループ下、処理設定ダイアログから設定できます。
モデルは models フォルダーからロードされツールボックスだけではなく モデラーウィンドウの Algorithms タブのアルゴリズムツリーにも表示されます. これは他の任意のモデルを追加するのと同じようにモデルを大きなモデルの一部として取り込むことが可能であることを意味します.
作成中のモデルは編集できます, ワークフローやアルゴリズム間のリレーションシップの再定義がや入力の再定義をモデル内で行えます.
キャンバスに表示しているモデルのアルゴリズムをマウス右ボタンでクリックすると次のようなコンテキストメニューが表示されます:
Figure Processing 22:
Remove オプションを選択すると選択されているアルゴリズムを削除できます. アルゴリズムは他のアルゴリズムに依存されていなければ削除できます. アルゴリズムから出力が無い場合別のものの入力になっています. もし他のアルゴリズムの依存があるアルゴリズムを削除しようとすると以下のような警告メッセージが表示されます:
Figure Processing 23:
Edit オプションはアルゴリズムのパラメータ]ダイアログボックスが表示されますので、入力し、パラメータ値を変更できます選択します。モデルでは使用できませんすべての入力要素は、利用可能な入力として、この場合に表示されます。それらは循環依存が発生した場合、モデルによって定義されたワークフローで、より高度なステップで生成されたレイヤーまたは値は使用できません。
新しい値を選択して、いつものように [OK] ボタンをクリックします。モデル要素間の接続はモデラーキャンバスに応じて変化します。
モデルは、そのアルゴリズムの一部を不活性化することで、部分的に実行できます。アルゴリズムの要素にする場合右クリックし表示されるコンテキストメニューの Deactivate オプションそれを行うには、選択します。それに依存して選択されたアルゴリズム、およびモデル内のすべてのものは灰色で表示され、モデルの一部として実行されません。
Figure Processing 24:
アクティブでないアルゴリズムの上で右クリックすると、Activate メニューオプションが代わりに表示され、それをアクティブに戻すために使用できます。
あなたは、モデラー自体から、あなたのモデルを文書化することができます。 [Edit model help] ボタンをクリックするだけで、そして、次に示すようなダイアログが表示されます。
Figure Processing 25:
右側には、単純なHTMLページが表示されます、モデルまたはその作者の一般的な説明のようないくつかの追加のアイテムと一緒に、アルゴリズムの入力パラメータと出力の記述を使用して作成しました。助けエディタを初めて開いたときには、これらすべての記述が空になっているが、ダイアログの左側にある要素を使用して編集できます。上部の要素を選択し、下のテキストボックスにその説明を記述します。
モデルヘルプはモデル自体の一部として保存されます。
私たちは、後の章で見るように、処理アルゴリズムは、QGIS Pythonのコンソールから呼び出すことができ、かつ新しい処理アルゴリズムは、Pythonを使っても作成することができます。このようPythonスクリプトを作成するための簡単な方法は、モデルを作成し、その後、Pythonのファイルとしてエクスポートすることです。
これを行うには、 Pythonのscriptとしてエクスポート ボタンをクリックしてください。ファイル選択ダイアログで出力ファイルを選択し、処理はそれで現在のモデルで定義された同じ操作を実行するPythonコマンドを記述します。
モデルを設計する際にツールボックスから実行することができるいくつかのアルゴリズムが使用可能なアルゴリズムのリストに表示されていないことに気づくかもしれません。モデルに含まれるように、適切なワークフローで他の人にリンクするように、アルゴリズムは、正しいセマンティックを持っている必要があります。アルゴリズムは、明確に定義されたセマンティックを有していない場合(例えば、出力レイヤの数を事前に知ることができない場合、)、モデル内で使用することは不可能であり、したがって、それはモデラーダイアログで見つけることができるアルゴリズムの一覧に表示されません。
また、ツールボックスには見られないモデラーでいくつかのアルゴリズムが表示されます。これらのアルゴリズムは、モデルの一部としてのみ使用されることを意味し、そしてそれらは異なる文脈で興味のないされています。「電卓」のアルゴリズムは、その一例です。それは数値(ユーザーが入力したか、他のいくつかのアルゴリズムによって生成される)を変更するために使用できるだけの単純な算術計算機です。このツールは、モデル内で、本当に便利ですが、そのコンテキストの外で、それはあまり意味がありません。