` `

外部アプリケーションの設定

The processing framework can be extended using additional applications. Currently, SAGA, GRASS, OTB (Orfeo Toolbox) and R are supported, along with some other command-line applications that provide spatial data analysis functionalities. Algorithms relying on an external applications are managed by their own algorithm provider.

This section will show you how to configure the processing framework to include these additional applications, and it will explain some particular features of the algorithms based on them. Once you have correctly configured the system, you will be able to execute external algorithms from any component like the toolbox or the graphical modeler, just like you do with any other geoalgorithm.

デフォルトでは、QGISに同梱されていない外部アプリケーションに依存している全てのアルゴリズムが有効になっていません。それらは設定ダイアログで有効にできます。対応するアプリケーションがすでにシステムにインストールされていることを確認してください。

Windowsユーザーへの注意点

If you are not an advanced user and you are running QGIS on Windows, you might not be interested in reading the rest of this chapter. Make sure you install QGIS in your system using the standalone installer. That will automatically install SAGA, GRASS and OTB in your system and configure them so they can be run from QGIS. All the algorithms from these providers will be ready to be run without needing any further configuration. If installing through OSGeo4W application, make sure you select for installation SAGA, GRASS and OTB as well.

If you want to know more about how these providers work, or if you want to use some algorithms not included in the simplified toolbox (such as R scripts), keep on reading.

ファイルフォーマットに関する注意点

外部ソフトウェアを使用する場合は、QGISでファイルを開くと、それを開いて、他のソフトウェアでも同様に処理できることを意味するものではありません。ほとんどの場合、他のソフトウェアを使用すると、QGISで開かれているものを読むことができますが、いくつかのケースでは、それは本当ではないかもしれません。ラスターまたはベクターレイヤーのために、問題が生じる可能性があるかどうか、データベースや珍しいのファイル形式を使用している場合。それが起こっている場合は、両方のプログラムによって理解されていると確信しているよく知られているファイルフォーマットを使用するようにして、何が間違っているかについての詳細を知るために(履歴とログダイアログの中で)コンソール出力を確認してください。

GRASSラスターレイヤーを使用すると、たとえば、問題が発生し、入力などのレイヤーを使用して外部アルゴリズムを呼び出すと作業を完了できない場合があります。このため、これらのレイヤーはアルゴリズムで使用できるようには見えません。

You should, however, find no problems at all with vector layers, since QGIS automatically converts from the original file format to one accepted by the external application before passing the layer to it. This adds extra processing time, which might be significant if the layer has a large size, so do not be surprised if it takes more time to process a layer from a DB connection than it does to process one of a similar size stored in a shapefile.

外部アプリケーションを使用していないプロバイダーはQGISで開けるレイヤーはどれも処理できます。なぜならそれらはQGISを通じて分析のためにそれを開いているので。

出力形式に関しては、ラスターレイヤーとベクターレイヤーのどちらについても、出力としてQGISでサポートされているすべての形式が使用できます。プロバイダーによっては特定の形式をサポートしていないものもありますが、すべては後で自動的にQGISによって変換される共通のフォーマットにエクスポートできます。入力レイヤーの場合のように、この変換が必要な場合は、処理時間が増加する可能性があります。

ベクターレイヤー選択に関する注意点

外部アプリケーションがQGIS内でベクターレイヤーに存在する選択を知らされることもできます。しかし、それにはそれらが元から外部アプリケーションでサポートされていない形式であったかのように、すべての入力ベクターレイヤーを書き換えることが必要です。選択が存在しないか、 選択された地物のみを使用 オプションが処理の一般設定で有効になっていない場合にのみ、レイヤーは外部アプリケーションに直接渡すことができます。

他の場合、選択した地物のみをエクスポートするには長い実行時間を必要とします。

SAGA: System for Automated Geoscientific Analyses、自動化地球科学的分析システム

お使いのシステムにSAGAがインストールされていて、SAGA実行可能ファイルを検索できるように適切にプロセシングフレームワークを構成した場合、QGISからSAGAアルゴリズムを実行できます。特に、SAGAコマンドライン実行可能ファイルはSAGAアルゴリズムを実行するために必要とされます。

Windowsを実行している場合は、スタンドアロンのインストーラとOSGeo4Wインストーラの両方がQGISと一緒にSAGAが含まれ、パスが自動的に設定されているので、他に何もする必要はありません。

ご自分でSAGAをインストールしてそれがQGISのインストーラに含まれていなかった場合は、SAGAの実行可能ファイルへのパスを設定する必要があります。これを行うには、設定ダイアログを開きます。 SAGA ブロック中に、SAGAフォルダ という名前の設定が見つかるでしょう。SAGAがインストールされているフォルダへのパスを入力してください。設定ダイアログを閉じて、そして今、QGISからSAGAアルゴリズムを実行する準備ができました。

Linuxを実行している場合は、SAGAバイナリは処理には含まれていないので、ソフトウェアをご自分でダウンロードしてインストールする必要があります。詳しくはSAGAのウェブサイトをご確認ください。

この場合、SAGAの実行ファイルへのパスを設定する必要はなく、それらのフォルダのエントリは表示されないでしょう。代わりに、SAGAが正しくインストールされ、そのフォルダがPATH環境変数に追加されていることを確認する必要があります。コンソールを開いて saga_cmd と入力し、システムがSAGAのバイナリが置かれている場所を見つけることができるか確認するだけです。

SAGAグリッドシステムの制限について

複数の入力ラスターレイヤーを必要とするほとんどのSAGAアルゴリズムは、それらが同じグリッド系を持つことを必要としています。つまり、それらが同じ地理的領域をカバーして同じセルサイズを持ち、対応するグリッドが一致する必要があります。QGISからSAGAアルゴリズムを呼び出すときは、そのセルサイズと範囲に関係なく、どんなレイヤーも使用できます。複数のラスターレイヤーはSAGAアルゴリズムのための入力として使用される場合、QGISは(SAGAアルゴリズムが異なるグリッド系からのレイヤーで動作できない場合)共通のグリッド系にそれらをリサンプリングした後、SAGAに渡します。

その一般的なグリッド系の定義は、ユーザーによって制御され、そうする設定ウィンドウのSAGAグループ内のいくつかのパラメーターがあります。ターゲットグリッド系を設定する2つの方法があります。

  • 手動で設定する。次のパラメーターの値を設定することによって範囲を定義します。

    • リサンプリング最小X

    • リサンプリング最大X

    • リサンプリング最小Y

    • リサンプリング最大Y

    • リサンプリングセルサイズ

    QGISはその範囲に対して入力レイヤーを、それらがその範囲と重複していない場合でも、再サンプリングすることに注意してください。

  • 入力レイヤーから自動的に設定する。このオプションを選択するには、 リサンプリングにグリッド系の最小カバーを使用 オプションチェックするだけです。他のすべての設定は無視され、すべての入力レイヤーを最小でカバーする範囲が使用されます。ターゲットレイヤーのセルサイズは、入力レイヤーの全てのセルサイズの最大値です。

多重ラスターレイヤーを使用しないあるいは固有の入力グリッドシステムを必要としないアルゴリズムでは、SAGAを呼び出す前にリサンプリングは実行されませんし、これらのパラメーターは使用されません。

マルチバンドレイヤーに関する制限

QGISとは異なり、SAGAではマルチバンドレイヤーをサポートしていません。(例えばRGBまたはマルチスペクトル画像のような)マルチバンドレイヤーを使用する場合は、最初にシングルバンド化された画像に分割する必要があります。そうするためには、「SAGA/グリッドツール/RGB画像を分割」アルゴリズム(RGB画像から三つの画像を作成する)や「SAGA /グリッドツール/バンド抽出」アルゴリズム(単一バンドを抽出する)を使用できます。

セルサイズの制限

SAGAではラスターレイヤーがx軸とy軸において同じセルサイズであることを仮定しています。もし、水平方向と垂直方向でセルサイズが異なる値のレイヤーで作業するならば、予期せぬ結果を得ることになるでしょう。この場合、入力レイヤーがSAGAによって適切に処理されないであろうという警告がプロセスログに加えられることになります。

ログを記録する

QGISはSAGAを呼び出すと、それはこれにより、すべての必要な操作を実行するためにコマンドのセットを通過する、そのコマンドラインインターフェイスを使用しません。SAGAは、追加のコンテンツと共に、既に行われる処理のパーセンテージを含むコンソールに情報を書き込むことにより、その進捗状況を示しています。この出力はフィルタがかけられ、アルゴリズムの実行中に、プログレスバーを更新するために使用されます。

QGISによって送信されたコマンドとSAGAによって印刷された追加情報は、どちらも他の処理のログメッセージと一緒にログに記録でき、QGISでSAGAアルゴリズムを実行したときに何が起こっているかを詳細に追跡するのに役立つかもしれません。ログ記録機能を有効にするには2つの設定、すなわち コンソール出力をログ出力実行コマンドをログ出力 があるでしょう。

コマンドラインから外部アプリケーションを使ったり呼び込んだりするようなほとんどのほかのプロバイダーは同様なオプションを持っているので、それらはプロセシング設定リストのほかの場所でも同様に見つかるでしょう。

R. Rスクリプトを作成する

QGISでのR統合は、(いくつかの例を除いて)実行できるアルゴリズムの定義済みのセットが存在しないという点で、SAGAとは異なっています。代わりに、Rからするのと同じ様に、プロセシングスクリプト専用のセクションで見たものと非常によく似た方法で、スクリプトを書いてRコマンドを呼び出す必要があります。このセクションでは、QGISからそれらのRコマンドを呼び出すため使用する構文、およびその中でQGISオブジェクト(レイヤー、テーブル)を使用する方法を示します。

SAGAの場合で見たように、しなければならない最初の事は、Rバイナリの場所をQGISに伝えることです。これは処理設定ダイアログ中の Rフォルダ エントリを使用して実現できます。そのパラメーターを設定したら、ご自身のRスクリプトを作成し、実行を開始できます。

ノート

Windows ユーザーのために、通常はRの実行可能ファイルは C:Program FilesRR-3.2 フォルダ中にあります。フォルダだけ追加すること、バイナリは追加 しない こと!

今一度、これがLinuxでは異なるので、RフォルダがPATH環境変数に含まれているかをちゃんと確認しなければなりません。もし、お使いの環境のコンソールで R とだけタイプしてRを実行できるなら、実行する用意はできています。

R関数(または開発してQGISから利用したいと思っているより複雑なRスクリプト)を呼び出す新しいアルゴリズムを追加するには、その操作をどのように実行するかのプロセシングフレームワークとそれをするための対応するRコマンドを記したスクリプトファイルを作成する必要があります。

Rスクリプトファイルの拡張子は .rsx です、そしてR構文とRスクリプトの基本的な知識しかなくても、それらを作成することは非常に簡単です。それらは、Rのscriptsフォルダに格納する必要があります。このフォルダは(処理の設定]ダイアログボックスから入手可能) R 設定グループ、定期的に処理スクリプトのフォルダを行うだけのように、設定できます。

与えられたポリゴンレイヤー内のポリゴンの境界内にランダムなグリッドを作成するために spsample Rメソッドを呼び出すという、非常に単純なスクリプトファイルを見てみましょう。この方法は、 maptools パッケージに属します。QGISに組み込みたくなるアルゴリズムはほぼすべて空間データを使用するか作成しますので、 maptools と、特に sp のような、空間的パッケージの知識が必須です。

##polyg=vector
##numpoints=number 10
##output=output vector
##sp=group
pts=spsample(polyg,numpoints,type="random")
output=SpatialPointsDataFrame(pts, as.data.frame(pts))

ダブルPythonコメント記号( ## )で始まる最初の行は、QGISにファイルに記述されたアルゴリズムの入力と、それが作成する出力について述べます。それらはすでに見てきたプロセシングスクリプトとまったく同じ構文で動作するので、ここでは繰り返して記載しません。

ご自身でRスクリプトを書く方法について詳細な情報を持っている RイントロRの構文 トレーニングマニュアル章をご覧ください

入力パラメーターを宣言すると、QGISでは2つのことのためにその情報が使用されます。そのパラメーターの値をユーザーに依頼するユーザーインターフェイスを作成すること、後でRコマンドの入力として使用できる対応するR変数を作成すること。

上記の例では、 polyg という名前の vector のタイプの入力を宣言しています。アルゴリズムを実行する場合、QGISはRでユーザーによって選択されたレイヤーを開いても、 polyg という変数に格納されます。だから、パラメーターの名前がまた、そのパラメーターの値にアクセスするためのRで使用できる変数の名前です(したがって、パラメーター名としてRの予約語を使用しないでください)。

このようなベクターとラスターレイヤーとして空間要素が readOGR()brick() コマンドを使用して読み込まれ、 (記述ファイルにこれらのコマンドを追加することを心配する必要はありません - QGISはそれを行います) 、そしてそれらは 空間*DataFrame オブジェクトとして格納されています。テーブルのフィールドは、選択したフィールドの名前を含む文字列として保存されます。

テーブルは read.csv() コマンドを使って開かれます。ユーザーによって入力されたテーブルがCSV形式でない場合は、Rによってインポートされる前に変換されます。

加えて、ラスターファイルは ##usereadgdal を使用することによって brick() に代わって readGDAL() コマンドを使って読み込むことができます。

高度なユーザーであり、QGISレイヤーを表すオブジェクトを作成したくない方は、代わりにファイル名を指定して文字列を好むことを示すために ##passfilenames タグを使用できます。この場合は、それが含まれているデータ上の任意の操作を実行する前に、ファイルを開くかはあなた次第です。

上記の情報により、現在私たちは最初のサンプルスクリプトの一行目(行頭がPythonコメントになっていない最初の行)を理解することができます。

pts=spsample(polyg,numpoints,type="random")

変数 polygon はすでに SpatialPolygonsDataFrame オブジェクトを含んでいるので、ちょうど numpoints メソッドのように、作成されたサンプルグリッドに追加されるポイントの数を示す、 spsample メソッドを呼ぶことができます。

out と名付けられたタイプvectorの出力を宣言したので、その中に(この場合は SpatialPointsDataFrame の中に) out と名付けた変数と Spatial*DataFrame オブジェクトを作成する必要があります。最終結果を保存する変数が宣言して適切な値を含んでいる同じ名前を持つことを確認するように、あるらゆる名前を媒介変数として使用できます。

この場合、 spsample メソッドから得られる結果は SpatialPointsDataFrame オブジェクトに明示的に変換されなければなりません。なぜなら、それ自体はクラス ppp のオブジェクトであり、QGISに返されるには適切なクラスはないからです。

アルゴリズムは、ラスターレイヤーを生成した場合、それらが保存されている方法は、 ##dontuserasterpackage オプションを使用しているかどうかに依存します。それを使用している場合は、これらのレイヤーは、 writeGDAL() メソッドを使用して保存されます。そうでない場合、 raster パッケージから writeRaster() メソッドが使用されます。

##passfilenames オプションを使用している場合、出力は、それが入力に使用されていない場合でも、( writeRaster() で) raster パッケージを使用して生成されます。

もし、アルゴリズムがなんのレイヤーも作成しないで、代わりにコンソールにテキストで結果を作成するのならば、実行が終了したことを示すようにコンソールに指示をしなければなりません。このために、 > (‘より大きい’) 記号を伴った印刷を欲する結果を作成するだけのコマンドラインを開始します。すべてのほかの行の出力は表示されません。たとえば、ここにあるのはベクターレイヤーの属性として与えられたフィールド(列)の正常性テストを実行するアルゴリズムの説明ファイルです:

##layer=vector
##field=field layer
##nortest=group
library(nortest)
>lillie.test(layer[[field]])

最後の行の出力が印刷されているが、第一の出力はない(そしていずれも、他のコマンドラインからの出力は、QGISによって自動的に追加されています)。

アルゴリズムがあるグラフィックスの種類( plot() メソッドを使って)を作成する場合は次の行を加えます:

##showplots

これは、QGISはRの実行が完了した後に開かれる一時ファイルにすべてのRのグラフィック出力をリダイレクトするようになります。

グラフィックスとコンソール結果はどちらも処理結果マネージャで見えるようになります。

詳細については、加工して提供されたスクリプトファイルを確認してください。それらのほとんどはかなり単純であり、非常に独自のスクリプトを作成する方法を理解するのに役立ちます。

ノート

rgdalraster ライブラリはデフォルトでロードされていますので、対応する library() コマンドを追加する必要はありません( それら二つのパッケージがR配布にインストールされていることを確認する必要があるだけです)。しかし、必要な場合があります他の追加のライブラリは、明示的に library(ggplot2) を入力してロードする必要があります。パッケージがすでにマシンにインストールされていない場合、処理は、それをダウンロードしてインストールします。このように、パッケージには、Rスタンドアロンでも利用できるようになります。パッケージをダウンロードする必要がある場合は、最初にスクリプトを実行する時に長い時間がかかる可能性があることに ご注意 ください。

GRASS: Geographic Resources Analysis Support System、地理的資源分析支援システム

Configuring GRASS is not much different from configuring SAGA. First, the path to the GRASS folder has to be defined, but only if you are running Windows. Additionally, a shell interpreter (usually msys.exe, which can be found in most GRASS for Windows distributions) has to be defined and its path set up as well.

By default, the processing framework tries to configure its GRASS connector to use the GRASS distribution that ships along with QGIS. This should work without problems in most systems, but if you experience problems, you might have to configure the GRASS connector manually. Also, if you want to use a different GRASS installation, you can change that setting and point to the folder where the other version is installed. GRASS 6.4 is needed for algorithms to work correctly.

Linuxをご利用されている方は、GRASSが適切にインストールされているか、およびそれがコンソールから問題なく起動するかを確認するだけです。

GRASSアルゴリズムは、計算するための領域を使用します。この領域は、アルゴリズムを毎回実行するために使用されるすべての入力レイヤーを覆う最小範囲をとる、自動的SAGA構成に見られるものと同様の値を用いて、または手動で定義できます。後者のアプローチが好む動作である場合、GRASSの設定パラメーターで 最小カバー領域を使用 オプションをチェックするだけです。

GDAL

No additional configuration is needed to run GDAL algorithms. Since they are already incorporated into QGIS, the algorithms can infer their configuration from it.

Orfeo Toolbox

Orfeo Toolbox (OTB) algorithms can be run from QGIS if you have OTB installed in your system and you have configured QGIS properly, so it can find all necessary files (command-line tools and libraries).

As in the case of SAGA, OTB binaries are included in the stand-alone installer for Windows, but they are not included if you are running Linux, so you have to download and install the software yourself. Please check the OTB website for more information.

Once OTB is installed, start QGIS, open the processing configuration dialog and configure the OTB algorithm provider. In the Orfeo Toolbox (image analysis) block, you will find all settings related to OTB. First, ensure that algorithms are enabled.

Then, configure the path to the folder where OTB command-line tools and libraries are installed:

  • nix Usually OTB applications folder points to /usr/lib/otb/applications and OTB command line tools folder is /usr/bin.
  • win If you use any of the installers that include OTB, such as OSGeo4W, there is no need for further configuration. Processing will detect the path automatically and will not show the corresponding configuration entries. Otherwise, fill the OTB applications folder and OTB command line tools folder parameters with the to the corresponding values for your installation.

TauDEM

TauDEM (Terrain Analysis Using Digital Elevation Models) is a tools for the extraction and analysis of hydrological information from Digital Elevation Models (DEM). TauDEM can be used from QGIS if you have it installed in your system and configured QGIS properly, so it can find all necessary files.

There are two versions of TauDEM tools: singlefile (TauDEM 5.0.6 or 5.1.2) and multifile (TauDEM 5.2.0). The difference between these versions in the supported inputs/outputs. Single files version accepts only single raster file and write single file as output. Multifile version accepts a directory with rasters and writes directory with rasters as output. Such directory should contain rasters that will be treated as a single DEM grid.

TauDEM Processing provider supports both single- and multifile versions of TauDEM and even allows to use them simultaneously.

ノート

While TauDEM Processing provider supports TauDEM 5.0.6, 5.1.2 and 5.2.0 we recommend to use 5.1.2 and/or 5.2.0 as this versions have some new tools available, like Gage Watershed and TWI.

Installing TauDEM under Windows

Please visit the TauDEM homepage and download desired version of the precompiled binaries for your platform (32-bit or 64-bit), usually this is “Command Line Executables”. Also you need to download Microsoft HPC Pack 2012 MS-MPI. First install Microsoft HPC Pack 2012 MS-MPI by runing mpi_x64.Msi for 64-bit platforms and mpi_x86.Msi for 32-bit platforms.

ノート

If you want to use TauDEM 5.0.6

Installing TauDEM under Linux

Unfortunately there are no packages for most Linux distributions, so you should compile TauDEM by yourself. As TauDEM uses MPI it is necessary to install first any MPI implementation e.g MPICH or OpenMPI. Use your favorite package manager to install MPICH or OpenMPI.

Download TauDEM 5.2.0 source code package from GitHub repository and extract archive contents. Open terminal and cd into src directory inside extracted folder. Create build directory and cd into it

mkdir build
cd build

Configure your build (change install prefix if necessary) and compile

CXX=mpicxx cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
make

When compilation finished install TauDEM tools by running

sudo make install

ノート

Executable files will be installed into bin subdirectory inside prefix you specified at the configure stage. For example if you specified prefix /opt/taudem5.2 than binaries will be installed into /opt/taudem5.2/bin.

To use singlefile version — download source package here and perform above mentioned steps to compile and install it.

Old TauDEM 5.0.6 also available. But before compiling this version it is necessary to edit some source files.

Open the linearpart.h file, and after line

#include "mpi.h"

add a new line with

#include <stdint.h>

so you’ll get

#include "mpi.h"
#include <stdint.h>

Save the changes and close the file. Now open tiffIO.h, find line #include "stdint.h" and replace quotes ("") with <>, so you’ll get

#include <stdint.h>

Save the changes and close the file.

Now configure, compile and install TauDEM 5.0.6 using same commands as described above.

Configuring TauDEM provider

Once TauDEM is installed, start QGIS, open the Processing options dialog from Processing ‣ Options... and configure the TauDEM algorithm provider. In the Providers group find TauDEM (hydrologic analysis) block, and expand it. Here you will see all settings related to TauDEM.

First, ensure that algorithms are enabled, and activate provider if necessary.

Next step is to configure MPI. The MPICH/OpenMPI bin directory setting used to define location of the mpiexec program. In most Linux distributions you can safely leave this empty, as mpiexec available in your PATH.

The Number of MPI parallel processes to use is a second setting related to MPI. It defines number of processes that will be used to execute TauDEM commands. If you don’t know which value to use, it is better to leave this value unchanged.

Now we need to configure the path to the folder(s) where TauDEM command-line tools are installed. As we already mention TauDEM provider supports both single- and multifile TauDEM, so there are two settings for TauDEM folders:

  • TauDEM command line tools folder used to set location of the singlefile tools
  • TauDEM multifile command line tools folder used to set location of the multifile tools

If you have both TauDEM versions installed in different directories it is possible to specify both options.

The last step is to define which TauDEM version to use:

  • with Enable multifile TauDEM tools option checked you will use multifile TauDEM tools from directory, specified in the TauDEM multifile command line tools folder. Multifile tools have same name as singlefile with “(multifile)” suffix added
  • with Enable single TauDEM tools option checked you will use multifile TauDEM tools from directory, specified in the TauDEM command line tools folder.

It is possible to enable both tools simultaneously. In this case you will have two instances of each tool in toolbox and can use them in your analysis.

ノート

Be careful with developing Processing models using TauDEM!

As single- and multifile versions have different inputs, model created with singlefile algorithms will not work if only multifile algorithms are available. If you plan to share your model please specify which TauDEM version should be used or, better, provide two versions of your model: for single- and multifile TauDEM.