` `
グラフィカルモデラー では、シンプルで使いやすいインターフェイスを使用して複雑なモデルを作成できます。GISで作業する場合、ほとんどの分析操作は孤立したものではなく、業務の連鎖の一部です。グラフィカル・モデラーを使用すると、処理の連鎖は単一の処理に包むことができるので、後で入力の異なるセットで単一の処理として実行するためにより便利です。それがどんなに多くの手順と異なるアルゴリズムを含もうと、モデルは単一のアルゴリズムとして実行され、従って、大きなモデルについては特に、時間と労力の節約になります。
モデラーはプロセシングメニューから開けます。
モデラーにはモデルの構造とワークフローを表現する作業用キャンバスがあります。ウィンドウの左部分には2つのタブを持つパネルがあり、モデルに新しい要素を加えるために使用されます。
モデルの作成には2つのステップが含まれます:
必須入力項目の定義 。これらの入力はパラメーターウィンドウに追加されます。ですからユーザーはモデルの実行時にそれらの値を入力できます。モデル自体がアルゴリズムですから、パラメーターウィンドウはプロセッシングフレームワークの全てのアルゴリズムで入力が必要になった時に自動的に生成されます。
ワークフローの定義 。モデルの入力データを使って、アルゴリズムの追加と入力をどう使い、すでにモデルにあるアルゴリズムを使って出力をどう作るかを指定したりすることで、ワークフローが定義されます。
モデル作成の最初の一歩は必要な入力を定義することです。モデラーウィンドウの左にある 入力 タブには以下の要素があります:
ラスターレイヤー
ベクターレイヤー
文字列
テーブルフィールド
テーブル
領域
数値
真偽値
ファイル
これらの要素のいずれかをダブルクリックすると、その特性を定義するダイアログが表示されます。パラメーター自体によっては、ダイアログはただ一つの基本要素(モデルを実行するときにユーザーが見るもので説明)、またはそれらの多くが含まれていてもよいです。別にパラメーターの記述から、次の図に見られるように、たとえば数値を追加する場合、デフォルト値と有効な値の範囲を設定する必要があります。
それぞれの入力が追加されるとモデラーキャンバスに新しい要素が追加されます。
入力は、それを配置したい位置で、リストから入力タイプをドラッグし、モデラーのキャンバス上にドロップすることでも追加できます。
入力の定義が行われた後にそれらに適用するアルゴリズムの定義を行います。アルゴリズムは アルゴリズム タブで見つけることができ、ツールボックスと同じようにグループ分けされています。
モデルにアルゴリズムを追加するには、その名前またはドラッグをダブルクリックして、ちょうど入力を追加するときと同じように、それをドロップします。実行ダイアログが、ツールボックスからアルゴリズムを実行している時に表示される実行パネルに見られるものと同様の内容で表示されるでしょう。次に示されるものは、SAGA「集中度」アルゴリズムに相当します。
ご覧になれるように、いくつかの違いが存在します。代わりに、出力レイヤーとテーブルのファイルパスを設定するために使用されたファイルの出力ボックスの、単純なテキストボックスには、ここで使用されます。アルゴリズムによって作成されたレイヤーは、別のアルゴリズムの入力として使用され、最終結果として保持すべきではない単なる一時的な結果である場合は、単にそのテキストボックスを編集しないでください。それに何かを入力すると、結果は最終的なもので、提供するテキストは、モデルの実行時にユーザーに表示される出力でしょう、出力に対する説明であることを意味します。
モデラーとツールボックスのコンテキストの間には重要な違いがあるため、各パラメーターの値を選択することも少し異なっています。パラメーターの種類ごとに値を導入する方法を見てみましょう。
レイヤー(ラスターおよびベクター)とテーブル。これらは、リストから選択されるが、この場合には、可能な値は、現在QGISにロードレイヤーまたはテーブルではなく、モデルに対応するタイプの入力、またはアルゴリズムによって生成された他のレイヤーまたはテーブルのリストが既にモデルに追加されます。
テーブルのフィールド。それらはユーザーの選択にモデルが実行されるたびに依存するため、親テーブルまたはレイヤーのフィールドは、設計時に知ることができません。このパラメーターの値を設定し、テキストボックスに直接フィールドの名前を入力するか、すでにモデルに追加されたテーブルのフィールドの入力を選択するには、リストを使用します。選択したフィールドの妥当性は、実行時にチェックされます。
すべての場合において、ツールボックスからアルゴリズムを呼び出すときには使用できない 親アルゴリズム という名前の追加のパラメーターがあることに気づくでしょう。このパラメーターでは、あるアルゴリズムを現在のアルゴリズムの親として明示的に定義することによってアルゴリズムが実行される順序を定義し、親アルゴリズムを現在のアルゴリズムの前に強制的に実行させることができます。
アルゴリズムの入力として以前のアルゴリズムの出力を使用する場合、それは暗黙のうちに以前のアルゴリズムを現在のアルゴリズムの親として設定します(そしてモデラーのキャンバスに対応する矢印を配置します)。しかし、アルゴリズムは、別のアルゴリズムの出力オブジェクトを何も使用しない場合でも別のアルゴリズムに依存している場合があります(例えば、PostGISデータベースでSQL文を実行するアルゴリズムと、その同じデータベースにレイヤーをインポートするもう一つのアルゴリズム)。その場合、 親アルゴリズム パラメーターで前のアルゴリズムを選択するだけで、2つのステップが正しい順序で実行されます。
Once all the parameters have been assigned valid values, click on [OK] and the algorithm will be added to the canvas. It will be linked to all the other elements in the canvas, whether algorithms or inputs, that provide objects that are used as inputs for that algorithm.
要素は、モジュール構造が表示される方法を変更してそれをより明確かつ直感的にするように、キャンバス内の別の位置にドラッグできます。要素間のリンクは自動的に更新されます。マウスのホイールを使ってズームイン、ズームアウトできます。
You can run your algorithm any time by clicking on the [Run] button. However, in order to use the algorithm from the toolbox, it has to be saved and the modeler dialog closed, to allow the toolbox to refresh its contents.
Use the [Save] button to save the current model and the [Open] button to open any model previously saved. Models are saved with the .model extension. If the model has been previously saved from the modeler window, you will not be prompted for a filename. Since there is already a file associated with that model, the same file will be used for any subsequent saves.
モデルの保存を行う前に、ウィンドウの上部にあるテキストボックスを使って名前とグループを入力しなければいけません。
models フォルダ(モデルを保存するファイル名を求めるプロンプトが表示されるときのデフォルトのフォルダ)に保存されたモデルは、対応するブランチ中のツールボックスに表示されます。ツールボックスが起動されると、それは .model 拡張子を持つファイルを models フォルダで検索し、それらに含まれるモデルをロードします。モデルはそれ自体アルゴリズムなので、他のアルゴリズムとまったく同じようにツールボックスに追加できます。
モデルフォルダは モデラー グループ下、処理設定ダイアログから設定できます。
モデルは models フォルダからロードされツールボックスだけではなく、モデラーウィンドウの アルゴリズム タブのアルゴリズムツリーにも表示されます。これは他の任意のモデルを追加するのと同じようにモデルを大きなモデルの一部として取り込むことが可能であることを意味します。
現在作成しているモデルを編集し、ワークフロー、およびモデル自体を定義するアルゴリズムと入力の関係を再定義できます。
キャンバスに表示しているモデルのアルゴリズムをマウス右ボタンでクリックすると次のようなコンテキストメニューが表示されます:
削除 オプションを選択すると選択されているアルゴリズムを削除できます。アルゴリズムは他のアルゴリズムからの依存がなければ削除できます。つまり、アルゴリズムからの出力が別のアルゴリズムの入力として使用されていない場合。他のアルゴリズムからの依存があるアルゴリズムを削除しようとすると、以下のような警告メッセージが表示されます:
編集 オプションを選択するとアルゴリズムのパラメーター]ダイアログボックスが表示されますので、入力し、パラメーター値を変更できます。モデルで使用できるすべての入力要素が、この場合に利用可能な入力として表示されるわけではありません。それらは循環依存が発生した場合、モデルによって定義されたワークフローで、より高度なステップで生成されたレイヤーまたは値は使用できません。
Select the new values and then click on the [OK] button as usual. The connections between the model elements will change accordingly in the modeler canvas.
モデルは、そのアルゴリズムの一部を無効化することで、部分的に実行できます。それを行うには、アルゴリズムの要素を右クリックし、表示されるコンテキストメニューで 無効化 オプションを選択します。選択されたアルゴリズム、およびそれに依存しているモデル内のすべてのものは灰色で表示され、モデルの一部として実行されなくなるでしょう。
有効でないアルゴリズムの上で右クリックすると、有効化 メニューオプションが代わりに表示され、それを有効に戻すために使用できます。
You can document your models from the modeler itself. Just click on the [Edit model help] button and a dialog like the one shown next will appear.
右側には、単純なHTMLページが表示されます、モデルまたはその作者の一般的な説明のようないくつかの追加のアイテムと一緒に、アルゴリズムの入力パラメーターと出力の記述を使用して作成しました。ヘルプエディタを初めて開いたときには、これらすべての記述が空になっているが、ダイアログの左側にある要素を使用して編集できます。上部の要素を選択し、下のテキストボックスにその説明を記述します。
モデルヘルプはモデル自体の一部として保存されます。
As we will see in a later chapter, Processing algorithms can be called from the QGIS Python console, and new Processing algorithms can be created as well using Python. A quick way of creating such a Python script is to create a model and then to export is as a Python file.
To do so, click on the Export as Python script button. Select the output file in the file chooser dialog, and Processing will write in it the Python commands that perform the same operations defined in the current model.
モデルを設計する際に、ツールボックスから実行できるいくつかのアルゴリズムが使用可能なアルゴリズムのリストに表示されていないことに気づくかもしれません。アルゴリズムは、モデルに含めるためには、適切なワークフローで他の人にリンクするように、正しい意味規則を持っている必要があります。アルゴリズムは、明確に定義された意味規則を持っていない場合(例えば、出力レイヤーの数を事前に知ることができない場合)、モデル内で使用することは不可能であり、したがってモデラーダイアログで検索できるアルゴリズムの一覧には表示されません。
Additionally, you will see some algorithms in the modeler that are not found in the toolbox. These algorithms are meant to be used exclusively as part of a model, and they are of no interest in a different context. The ‘Calculator’ algorithm is an example of that. It is just a simple arithmetic calculator that you can use to modify numerical values (entered by the user or generated by some other algorithm). This tool is really useful within a model, but outside of that context, it doesn’t make too much sense.