26.6. バッチ処理インターフェイス

26.6.1. はじめに

すべてのアルゴリズム(モデルを含む)はバッチ処理として実行できます。つまりアルゴリズムは、必要な回数を繰り返し実行することで、一つの入力セットだけでなく複数の入力セットを使用して実行できます。大量のデータを処理する際にツールボックスからアルゴリズムを何回も起動する必要がないので、これは便利です。

アルゴリズムをバッチ処理として実行する場合は、ツールボックスの名前を右クリックして表示されるポップアップメニューで、 バッチプロセスで実行 を選択して下さい。

../../../_images/batch_processing_right_click.png

図 26.30 右クリックからバッチ処理

そのアルゴリズムの実行ダイアログボックスが開いている場合は、バッチプロセスで実行... ボタンをクリックすると、そこからもバッチ処理インターフェイスを起動できます。

../../../_images/parameters_dialog.png

図 26.31 アルゴリズムダイアログからバッチ処理

26.6.2. パラメータテーブル

バッチ処理の実行は、アルゴリズムの一回の実行に似ています。パラメータ値を定義しなければなりませんが、この場合は各パラメータにひとつの値ではなく、アルゴリズムが実行されるたびに一組ずつ使われる、パラメータのセットが必要になります。値は次に示すように、行が反復であり、列がアルゴリズムのパラメータである表を使います。

../../../_images/batch_processing.png

図 26.32 バッチ処理

トップツールバーから:

  • symbologyAdd行を追加: 設定に新しい処理項目を追加します

  • symbologyRemove 行を削除: テーブルから選択した行を削除します。行の選択は左側の数字をクリックすることで行われ、キーボードとの組み合わせ で複数選択することができます。

  • バッチ処理設定ファイルを fileOpen 開く

  • バッチ処理の設定を .JSON ファイルに fileSave 保存 して後で実行できるようにします

表はデフォルトで2行だけを含みます:

  • 最初の行には、各セルに オートフィル... ► ドロップダウンメニューが表示され、 オプション を使って下のセルを素早く埋めることができます。利用可能なオプションはパラメータの種類によって異なります。

  • 2行目(およびそれ以降の各行)はアルゴリズムの1回の実行を表し、各セルはパラメータの1つの値を格納します。これは、ツールボックスからアルゴリズムを実行するときに表示されるパラメータダイアログに似ていますが、配置が異なります。

テーブルの下部では、checkbox 完了時にレイヤを読み込む かどうかを設定できます。

テーブルのサイズが設定されると適切な値で埋められます.

26.6.3. パラメータテーブルの入力

ほとんどのパラメータでは値の設定は簡単です。単独のプロセスダイアログ と同じ適切なウィジェットが提供され、パラメータタイプに応じて、単に値を打ち込むか、可能な値のリストから選択することができます。互換性がある場合には、データ定義ウィジェットも含まれます。

バッチ処理の定義を自動化し、表をセルごとに埋めるのを避けるために、パラメータの オートフィル... メニューをドロップして以下のオプションのいずれかを選択し、列の値を置き換えることができます:

  • フィルダウン は最初のプロセスの入力を受け取り、他の全てのプロセスに入力します。

  • calculateField式による計算... を使うと、その列内のすべての既存の値を更新するために使用する新しいQGIS式を作成することができます。既存のパラメータ値(他の列のものも含む)は variables によって式の内部で使用することができます。例.各レイヤのバッファ距離に基づいてセグメント数を設定する:

    CASE WHEN @DISTANCE > 20 THEN 12 ELSE 8 END
    
  • 式で値を追加... は、配列を返す式の値を使って新しい行を追加します(既存の行に対してのみ動作する 式による計算... とは対照的です)。使用例としては、バッチダイアログに複雑な数値列を入力することを想定しています。例えば、距離パラメータに generate_series(100, 1000, 50) という式を使ってバッチバッファに行を追加すると、値100, 150, 200, .... 1000を持った新しい行になります。

  • ファイルやレイヤのパラメータを設定する場合、より多くのオプションが提供されます:

    • パターンによるファイル追加...: 対象 フォルダ内の ファイルパターン にマッチするファイルのためにテーブルに新しい行を追加します。例えば、*.shp はフォルダ内の全ての SHP ファイルをリストに追加します。checkbox 下位フォルダも検索 をチェックすると、サブフォルダも参照することができます。

    • 個別にディスク上の ファイル選択...

    • ディレクトリの全ファイルを追加...

    • アクティブなプロジェクトの レイヤから選択...

出力データパラメータは、アルゴリズムを単一プロセスとして実行するときと同じ機能を公開します。アルゴリズムによって、出力は以下のようになります:

  • セルが空のままならスキップされます

  • 一時的なレイヤーとして保存されます: セルを TEMPORARY_OUTPUT で埋め、 checkbox 完了時にレイヤを読み込む チェックボックスにチェックを入れることを忘れないでください。

  • プレインファイル(.SHP, .GPKG, .XML, .PDF, .JPG,...)として保存され、そのパスはあらかじめ公開されている オートフィル オプションで設定することができます。例えば、式による計算... を使用して、出力ファイル名を次のような複雑な式に設定することができます:

    '/home/me/stuff/buffer_' || left(@INPUT, 30) || '_' || @DISTANCE || '.shp'
    

    ファイルパスを直接入力することもできますし、付属の ... ボタンをクリックすると表示されるファイル選択ダイアログを使うこともできます。ファイルを選択すると、新しいダイアログが表示され、同じ列(同じパラメータ)の他のセルを自動入力することができます。

    ../../../_images/batch_processing_save.png

    図 26.33 バッチ処理を保存

    もしデフォルトの値(オートフィルしない)が選ばれた場合は、パラメータテーブルから選択されたセルの中の選択されたファイル名が選ばれます。もし、その他のオプションが選ばれた場合は、以下 の選択された全てのセルは定義された条件に基づいて自動的に入力されます。

    • Fill with numbers: ファイル名に数値を加算します

    • Fill with parameter values: パラメータを選択して同じ行の値をファイル名に付加することができます。これは特に入力データオブジェクトに応じて出力データオブジェクトの名前を付けるのに便利です。

  • データベースコンテナ内のレイヤとして保存する:

    # Indicate a layer within a GeoPackage file
    ogr:dbname='C:/Path/To/Geopackage.gpkg' table="New_Table" (geom)
    
    # Use the "Calculate By Expression" to output to different layers in a GeoPackage
    'ogr:dbname=\'' || @project_folder || '/Buffers.gpkg\' table="' || @INPUT || '_' || @DISTANCE || '" (geom)'
    

26.6.4. バッチ処理を実行する

必要な値をすべて導入したら、バッチ処理を実行するには 実行 をクリックするだけです。ログ パネルがアクティブになり、実行プロセスの詳細とステップが表示されます。グローバルバッチタスクの進行状況は、ダイアログ下部のプログレスバーに表示されます。