26.5. モデルデザイナー

モデルデザイナー ではシンプルで使いやすいインターフェースを利用して複雑なモデルを作ることができます. GISで作業をするときにほとんどの解析作業は単独で存在するのではなく一連の操作の一部として存在します. グラフィカルモデラーを使うと一連の操作を単一のプロセスにまとめることができ,後で異なるデータセットを入力として実行するときに便利です. 多くのステップや異なるアルゴリズムを含んでいてもモデルは単一のアルゴリズムとして実行されるので時間と労力を節約できます.

モデルデザイナーはプロセシングメニュー (プロセシング ► グラフィカルモデラー) から開けます.

26.5.1. モデルデザイナーのインタフェース

../../../_images/modeler_canvas.png

図 26.17 モデルデザイナー

モデラーはその主要部分にモデルの構造やワークフローを構築するための作業用キャンバスが用意されています。

ダイアログの上部には、さまざまなメニューと ナビゲーション ツールバーがあり、さまざまなツールにアクセスすることができます。

26.5.1.1. モデルメニュー

ラベル

ショートカット

ナビゲーションツールバー

説明

success モデルを有効化

モデルで使用するアルゴリズムや入力が存在するかどうかをチェックします。モデルをリリースする前に便利です。

play モデルを実行...

F5

checkbox

モデルを実行します

モデル入力の並び替え...

アルゴリズムダイアログでユーザーに提示される入力の順番を設定します。

fileOpen モデルを開く...

Ctrl+O

checkbox

編集または実行のために .model3 ファイルを開く

fileSave モデルを保存

Ctrl+S

checkbox

モデルをディスクに .model3 ファイルとして保存する

fileSaveAs モデルを別名で保存...

Ctrl+Shift+S

checkbox

モデルを新しい .model3 ファイルとしてディスクに保存する

fileSave モデルをプロジェクトに保存

checkbox

モデルファイルをプロジェクトファイルに埋め込み、プロジェクトファイルを共有する際に利用できるようにします。

helpContents モデルのヘルプを編集...

checkbox

モデル、アルゴリズム、パラメータ、出力、さらに作者やバージョン管理などを文書化するインターフェース

エクスポート ►

saveMapAsImage ► 画像としてエクスポート...

checkbox

モデルのグラフィカルデザインをイメージファイル形式で保存します(図解用)

saveAsPDF► PDFとして出力...

モデルのグラフィカルデザインを PDF ファイル形式で保存します(図解用)

saveAsSVG► SVGとして出力...

モデルのグラフィカルデザインを SVG ファイル形式で保存します(図解用)

fileSave► Pythonスクリプトとして出力...

checkbox

モデルの説明書を含むpythonスクリプトファイルを生成します

26.5.1.2. 編集メニュー

ラベル

ショートカット

ナビゲーションツールバー

説明

selectAll すべて選択

Ctrl+A

デザイナーのすべてのモデルコンポーネントを選択します

選択したコンポーネントをグリッドにスナップ

要素をグリッドにスナップし揃えます

redo やり直す

Ctrl+Y

checkbox

最後に取り消されたアクションをロールバックします。元に戻す/やり直す パネルも参照すること。

undo 元に戻す

Ctrl+Z

checkbox

直前の変更を取り消す。元に戻す/やり直す パネルも参照すること。

editCut 切り取り

Ctrl+X

モデルから選択されたコンポーネントを切り取る。

editCopy コピー

Ctrl+C

モデルから選択したコンポーネントをコピーする。

editPaste 貼り付け

Ctrl+V

切り取りまたはコピーされたコンポーネントの選択部分を、モデルから別のモデル、または同じモデル内に貼り付けます。選択されたコンポーネントは、元のプロパティとコメントを保持します。

deleteSelected 選択したコンポーネントを削除

Del

モデルからコンポーネントを削除します。

グループボックスを追加

関連するコンポーネントを視覚的にグループ化するために、関連するコンポーネントの背景にボックスを追加します。特に大きなモデルで、ワークフローをすっきりさせるのに便利です。

26.5.1.3. ビューメニュー

ラベル

ショートカット

ナビゲーションツールバー

説明

対象ズーム ►

選択したグループボックスの範囲にズームする

zoomIn 拡大

Ctrl++

checkbox

zoomOut 縮小

Ctrl+-

checkbox

zoomActual 100%にズーム

Ctrl+1

checkbox

zoomFullExtent 全域表示

Ctrl+0

checkbox

デザイナーの現在のキャンバスにあるすべてのコンポーネントを表示します

checkbox コメントを表示

グラフィカルデザイナーの各アルゴリズムや入力に関連するコメントを表示する

unchecked スナップの有効化

unchecked パネル表示切り替え

Ctrl+Tab

デザイナーの パネル をONやOFFにします

26.5.1.4. パネル

ウィンドウの左側は、モデルに新しい要素を追加するために使用できる5つのパネルがあるセクションです:

  1. モデルのプロパティ: モデルの名前(必須)と、 プロセシングツールボックス に表示するグループを指定します

  2. 入力: モデルを形作るすべての 入力パラメータ

  3. アルゴリズム: 利用可能な プロセシングアルゴリズム

  4. 変数: モデルには、そのモデルだけが利用できる固有の 変数 を含めることができます。これらの変数は、モデル内で使用されるあらゆる式でアクセスすることができます。この変数は、モデル内でアルゴリズムを制御したり、1つの変数を変更することでモデルの複数の側面を制御するのに便利です。変数は 変数 パネルで確認・変更することができます。

  5. 編集履歴: このパネルは、モデラーで起こったすべてのことを登録し、間違ったことを簡単に取り消すことができるようにするものです。

26.5.1.5. 利用可能なアルゴリズムについて

ツールボックスから実行できるアルゴリズムの中には、モデルを設計する際に利用可能なアルゴリズムのリストに表示されないものがあります。モデルに含めるには、アルゴリズムが正しいセマンティクスを持っている必要があります。もしアルゴリズムがそのような明確なセマンティクスを持っていない場合(例えば、出力レイヤの数を事前に知ることができない場合)、モデル内で使用することはできず、モデラーダイアログにあるアルゴリズムのリストには表示されません。一方、いくつかのアルゴリズムはモデラーに固有のものです。これらのアルゴリズムは、モデラーツール グループにあります。

26.5.2. モデルを作成する

モデルの作成には、基本的に2つのステップがあります:

  1. 必要な入力の定義。これらの入力はパラメータウィンドウに追加され、ユーザーはモデルを実行する際にその値を設定することができます。モデル自体はアルゴリズムなので、プロセシングフレームワークで利用可能なすべてのアルゴリズムと同様に、パラメータウィンドウは自動的に生成されます。

  2. ワークフロー の定義。ワークフローは、モデルの入力データを用い、アルゴリズムを追加し、定義された入力やモデル内の他のアルゴリズムによって生成された出力をどのように使用するかを選択することによって、定義されます。

26.5.2.1. 入力の定義

最初のステップは、モデルの入力を定義することです。以下の要素は、モデラーウィンドウの左側にある 入力 パネルにあります:

表 26.1 モデル構築のためのパラメータタイプの一覧

注記レイヤ

認証の構成

ブール値

接続名

座標演算

座標参照系(CRS)

データベーススキーマ

データベーステーブル

日付時刻

距離

継続時間

DXFレイヤ

列挙

領域

属性によるグループ化(集約)

属性の対応関係

ファイル/フォルダ

ジオメトリ

地図レイヤ

地図テーマ

行列

メッシュデータセットグループ

メッシュデータセット時間

メッシュレイヤ

複数入力

数値

点群レイヤ

印刷レイアウト

印刷レイアウトアイテム

範囲 (Range)

ラスタバンド

ラスタレイヤ

スケール

文字列 (String)

TIN作成レイヤ

ベクタ地物

ベクタフィールド

ベクタレイヤ

ベクタタイル書き出しレイヤ

注釈

入力の上にマウスカーソルを置くと、追加情報を示すツールチップが表示されます。

要素をダブルクリックすると、その特性を定義するためのダイアログが表示されます。パラメータによって、ダイアログには少なくとも1つの要素(説明文、ユーザーがモデルを実行するときに表示されるもの)が含まれます。例えば、数値を追加する場合、次図のように、パラメータの説明に加えて、デフォルト値や有効な値の範囲を設定する必要があります。

../../../_images/models_parameters.png

図 26.18 モデルパラメーター定義

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

入力が追加されるごとに、モデラーキャンバスに新しい要素が追加されます。

../../../_images/models_parameters2.png

図 26.19 モデルパラメータ

また、リストから入力タイプをドラッグして、モデラーキャンバスの必要な位置にドロップすることで、入力を追加することができます。既存の入力のパラメータを変更したい場合は、その入力をダブルクリックすれば、同じダイアログが表示されます。

他のモデルの中でモデルを使用する場合、必要な入力と出力がキャンバスに表示されます。

26.5.2.2. ワークフローの定義

次の例では、2つの入力と2つのアルゴリズムを追加します。このモデルの目的は、Drape アルゴリズムを用いてDEMラスタレイヤからラインレイヤに標高値をコピーし、Climb Along Line アルゴリズムを用いてラインレイヤの合計上昇量を計算することです。

入力 タブで、2つの入力として、ラインには ベクタレイヤ、DEMには ラスタレイヤ を選択します。これで、ワークフローにアルゴリズムを追加する準備ができました。

アルゴリズムは アルゴリズム パネルにあり、プロセシングツールボックスにあるのと同じようにグループ化されています。

../../../_images/models_parameters3.png

図 26.20 モデル入力

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

../../../_images/models_parameters4.png

図 26.21 モデルアルゴリズムパラメーター

ご覧のように、いくつかの違いがあります。各パラメータの横にドロップダウンメニューがあり、ワークフロー中にどのように処理されるかをコントロールすることができます:

  • fieldInteger : パラメータに静的な値を割り当てることができます。パラメータタイプに応じて、ウィジェットは数値(5.0)、文字列(mytext)を入力したり、QGISプロジェクトまたはフォルダからレイヤーを選択したり、リストから項目を選択したりすることができます。

  • expression 事前計算済値: 式ビルダ ダイアログを開き、パラメータを埋める式を定義します。モデル入力と他のレイヤの統計情報は 変数 として利用でき、式ビルダーの検索ダイアログの上部にリストされます。式は子アルゴリズムが実行される前に一度評価され、そのアルゴリズムの実行中に使用されます。

  • processingModel モデル入力: はモデルに追加された入力をパラメータとして使用することができます。このオプションをクリックすると、パラメータに適した入力がすべてリストアップされます。

  • processingAlgorithm アルゴリズム出力: は、別のアルゴリズムの出力を、現在のアルゴリズムの入力として使用することができます。モデル入力と同様に、このオプションはパラメータに適した入力をすべてリストアップします。

  • 出力パラメータ にも、ドロップダウンメニューに上記のオプションがあります:

    • 子アルゴリズムに静的出力を追加する。例えば、子アルゴリズムの出力を定義済みのgeopackageやpostgresレイヤに常に保存する

    • 子アルゴリズムに式を基にした出力値を使う。例えば、今日の日付に基づいて自動ファイル名を生成し、そのファイルに出力を保存する

    • モデル入力を使う。例えば、ファイル/フォルダ モデル入力を使って、出力ファイルまたはフォルダを指定する

    • 別のアルゴリズム出力を使う。例えば、(モデラーツール の)*ディレクトリを作成* アルゴリズムの出力

    • 追加の modelOutput モデル出力 オプションは、アルゴリズムの出力をモデルで利用できるようにします。アルゴリズムによって生成されたレイヤが他のアルゴリズムの入力としてのみ使用される場合は、このテキストボックスを編集しないでください。

    次の図では、モデル入力 として定義された2つの入力パラメータと、一時的な出力レイヤを見ることができます:

    ../../../_images/models_parameters5.png

    図 26.22 アルゴリズム入力と出力パラメータ

また、ツールボックスからアルゴリズムを呼び出すときには利用できない Dependencies という追加のパラメータがあります。このパラメータにより、あるアルゴリズムを現在のアルゴリズムの として明示的に定義することで、アルゴリズムの実行順序を定義することができます。これにより、現在のアルゴリズムの前に アルゴリズムが実行されます。

直前のアルゴリズムの出力を自分のアルゴリズムの入力として使用する場合、暗黙的に直前のアルゴリズムが現在のアルゴリズムの親として設定されます(そしてモデラーキャンバスに対応する矢印が配置されます)。しかし、あるアルゴリズムが、その出力オブジェクトを使用していなくても、別のアルゴリズムに依存している場合があります(例えば、PostGISデータベース上でSQL文を実行するアルゴリズムと、その同じデータベースにレイヤをインポートする別のアルゴリズム)。その場合、Dependencies パラメータで前のアルゴリズムを選択するだけで、正しい順序で実行されます。

すべてのパラメータに有効な値が代入されたら、 OK をクリックしてアルゴリズムをキャンバスに追加します。これは、アルゴリズムの入力として使用されるオブジェクトを提供するキャンバスの要素(アルゴリズムまたは入力)にリンクされます。

要素は、select アイテムを選択/移動 ツールを使ってキャンバス上の別の位置にドラッグすることができます。これはモデルの構造をより明確に、より直感的にするのに便利です。また、要素の境界をつかんでサイズを変更することもできます。これは入力やアルゴリズムの説明が長い場合に特に便利です。ビュー ► スナップの有効化 オプションをチェックすると、アイテムのサイズ変更や移動が仮想的なグリッドに拘束され、より視覚的に構造化されたアルゴリズム設計が可能になります。

要素間のリンクは自動的に更新され、各アルゴリズムの上部と下部に + ボタンが表示されます。ボタンをクリックすると、そのアルゴリズムのすべての入力と出力が一覧表示されるので、概要を素早く把握することができます。

../../../_images/models_model.png

図 26.23 完成したモデル

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

../../../_images/model_group_box.png

図 26.24 モデルグループボックス

ボックスの名前と色は変更できます。グループボックスは ビュー ► 対象ズーム ► ツールと一緒に使うと非常に便利で、モデルの特定の部分にズームインすることができます。また、マウスホイールを使って拡大、縮小することもできます。

入力の順番を変更したり、メインのモデルダイアログにどのように入力が表示されるかを変更したい場 合があるかもしれません。入力 パネルの一番下に ``モデル入力の並べ替え... `` というボタンがあり、これをクリックすると新しいダイアログがポップアップ表示され、入力の順番を変更することができます:

../../../_images/model_reorder_inputs.png

図 26.25 モデル入力の並べ替え

コメントはモデラーにある入力やアルゴリズムに追加することもできます。これはアイテムの コメント タブを開くか、右クリックすることで行えます。同じタブで、個々のモデルコメントに対して手動で色を設定することができます。コメントはモデラーキャンバスのみに表示され、最終アルゴリズムダイアログには表示されません。 ビュー ► コメントを表示 を無効にすることで非表示にすることができます。

start モデルを実行 ボタンをクリックすることで、いつでもアルゴリズムを実行することができます。モデルを実行するためにエディタを使用するとき、デフォルト以外の値は入力に保存されます。これは、後でエディタからモデルを実行すると、ダイアログにそれらの値が事前に入力されることを意味します。

ツールボックスのアルゴリズムを使用するには、保存してモデラーダイアログを閉じ、ツールボックスの内容を更新する必要があります。

26.5.2.3. モデルを文書化する

モデルを文書化する必要がありますが、これはモデラー自身から行うことができます。editHelpContent モデルのヘルプを編集 ボタンをクリックすると、次に示すようなダイアログが表示されます。

../../../_images/help_edition.png

図 26.26 ヘルプを編集する

右側には、単純なHTMLページが表示されます、モデルまたはその作者の一般的な説明のようないくつかの追加のアイテムと一緒に、アルゴリズムの入力パラメーターと出力の記述を使用して作成しました。ヘルプエディタを初めて開いたときには、これらすべての記述が空になっているが、ダイアログの左側にある要素を使用して編集できます。上部の要素を選択し、下のテキストボックスにその説明を記述します。

モデルヘルプはモデル自体の一部として保存されます。

26.5.3. モデルを保存したりロードする

26.5.3.1. モデルを保存する

現在のモデルを保存するには fileSave モデルを保存 ボタンを、以前に保存したモデルを開くには fileOpen モデルを開く ボタンを使用します。モデルは .model3 という拡張子で保存されます。モデルがすでにモデラーウィンドウから保存されている場合、ファイル名を入力するプロンプトは表示されません。モデルにはすでにファイルが関連付けられているため、以降の保存にはそのファイルが使用されます。

モデルを保存する前に、ウィンドウ上部のテキストボックスに名前とグループを入力する必要があります。

models フォルダ(モデルを保存するためのファイル名を入力するプロンプトが表示されたときのデフォルトのフォルダ)に保存されたモデルは、対応するブランチのツールボックスに表示されます。ツールボックスが起動されると、 models フォルダから .model3 という拡張子のファイルを探し、その中に含まれるモデルをロードします。モデルはそれ自体がアルゴリズムなので、他のアルゴリズムと同じようにツールボックスに追加することができます。

また、addToProject モデルをプロジェクトに保存 ボタンを使ってプロジェクトファイル内にモデルを保存することもできます。この方法で保存されたモデルはディスク上に .model3 ファイルとして書き出されるのではなく、プロジェクトファイルに埋め込まれます。

プロジェクトモデルはツールボックスの qgsProjectFile Project models メニューと プロジェクト ► モデル メニュー項目で利用できます。

モデルフォルダは モデラー グループ下、処理設定ダイアログから設定できます。

models フォルダからロードされたモデルはツールボックスだけでなく、モデラーウィンドウの アルゴリズム タブにあるアルゴリズムツリーにも表示されます。つまり、他のアルゴリズムと同じように、より大きなモデルの一部としてモデルを組み込むことができるのです。

モデルは ブラウザ パネルに表示され、そこから実行することができます。

26.5.3.2. Pythonスクリプトとしてモデルを出力する

後の章で説明するように、プロセシングアルゴリズムはQGIS Pythonコンソールから呼び出すことができ、Pythonを使って新しいプロセシングアルゴリズムを作成することができます。このようなPythonスクリプトを作成する簡単な方法は、モデルを作成し、それをPythonファイルとしてエクスポートすることです。

これを行うには、モデラーキャンバスで saveAsPython スクリプトアルゴリズムとして出力... をクリックするか、プロセシングツールボックスでモデルの名前を右クリックして saveAsPython Pythonアルゴリズムとしてモデルを出力... を選択します。

26.5.3.3. モデルを画像、PDF又はSVGとしてエクスポートする

saveMapAsImage 画像として出力saveAsPDFPDFとして出力saveAsSVGSVGとして出力 をクリックすると、モデルを画像、SVG、PDF(図解用)としてエクスポートすることもできます。

26.5.4. モデルを編集する

現在作成中のモデルを編集し、ワークフローや、モデルを定義するアルゴリズムと入力の関係を再定義することができます。

キャンバス内のアルゴリズムを右クリックすると、次に示すようなコンテキストメニューが表示されます:

../../../_images/modeler_right_click.png

図 26.27 モデラー右ボタンクリック

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

../../../_images/cannot_delete_alg.png

図 26.28 アルゴリズムを削除できない

編集... オプションを選択すると、アルゴリズムのパラメータダイアログが表示され、入力やパラメータの値を変更することができます。モデルで利用可能なすべての入力要素が利用可能な入力として表示されるわけではありません。モデルで定義されたワークフローのより高度なステップで生成されたレイヤや値は、循環依存関係を引き起こす場合には利用できません。

新しい値を選択し、通常通り OK ボタンをクリックします。モデル要素間の接続は、それに応じてモデラーキャンバスで変更されます。

コメントを追加... を使うと、アルゴリズムにコメントを追加して動作をより分かりやすく説明することができます。

モデルを部分的に実行するには、いくつかのアルゴリズムを非アクティブにします。これを行うには、アルゴリズム要素を右クリックしたときに表示されるコンテキストメニューの 無効化 オプションを選択します。選択されたアルゴリズムと、それに依存するモデル内のすべてのアルゴリズムが灰色で表示され、モデルの一部として実行されなくなります。

../../../_images/deactivated.png

図 26.29 無効化されたアルゴリズムを持つモデル

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