Outdated version of the documentation. Find the latest one here.

18.8. 外部のアルゴリズムを実行する

ノート

このレッスンではサードパーティのアプリケーション、特に主要なアルゴリズムプロバイダーの一つであるSAGAに依存するアルゴリズムを使用する方法について説明します。

これまでに実行したすべてのアルゴリズムは、処理フレームワークの一部です。すなわち、それらはプラグイン中に実装された ネイティブ アルゴリズムであり、ちょうどプラグイン自体が実行されるようにQGISによって実行されます。しかし、処理フレームワークの最大の特徴の一つは、外部のアプリケーションからのアルゴリズムを使用して、それらのアプリケーションの可能性を拡張できることです。このようなアルゴリズムはツールボックスに包んで含まれていますので、QGISから簡単にそれらを使用でき、またそれらを実行するためにQGISデータを使用できます。

単純化されたビューに表示されるアルゴリズムには、サードパーティ製のアプリケーションがシステムにインストールされていることが必要なものがあります。特別な関心の一つのアルゴリズムプロバイダーは、SAGA(自動地理空間分析のためのシステム)です。まず、QGISから正しくSAGAを呼び出せるように、すべてのものを設定する必要があります。これは難しいことではありませんが、それがどのように動作するかを理解することが重要です。それぞれの外部アプリケーションは独自の構成を有しており、この後の同じマニュアルでは他のもののいくつかについて話しますが、SAGAは当社の主要なバックエンドになるだろうので、ここではそれを説明します。

Windowsである場合は、外部のアルゴリズムで作業するための最良の方法は、スタンドアロンのインストーラを使用してQGISをインストールすることです。それはSAGAを含むすべての必要な依存関係のインストールをしてくれますので、それを使用した場合は、他に何も行うことはありません。設定ダイアログを開き、 プロバイダー/SAGA グループに行くことができます。

../../../_images/saga_config.png

SAGAパスは既に設定され、SAGAがインストールされているフォルダを指しているようにしてください

スタンドアロンインストーラを使用していないQGISをインストールしている場合は、そこ(個別にインストールされている必要があります)SAGAのインストールへのパスを入力する必要があります。必要なバージョンは、SAGA 2.1 [これはSAGAのリリースに応じて変化している]です。

Linuxを使用しているケースでは、処理構成でSAGAのインストールへのパスを設定する必要はありません。代わりに、SAGAをインストールし、それが(ちょうどコンソールを開いて、それをチェックするために saga_cmd を入力)コンソールから呼び出すことができるようSAGAフォルダが、PATHにあることを確認する必要があります。Linuxでは、SAGAのターゲットバージョンも2.1ですが、(そのようOSGEOライブDVDなど)一部のインストールでは、だけ2.0.8利用できる可能性があります。2.1のパッケージには使用可能なものもありますが、それらは一般的にインストールされていないといくつかの問題があるかもしれないので、より一般的と2.0.8の安定を使用することを好む場合は、 SAGA グループ下に、設定ダイアログで2.0.8の互換性を可能にすることによって、それを行うことができます。

../../../_images/enable208.png

SAGAがインストールされたら、他のアルゴリズムと同様に、その名前をSAGAアルゴリズムをダブルクリックし起動できます。単純化されたインターフェイスを使用しているので、どのアルゴリズムがSAGAに基づいているかまたは別の外部のアプリケーションにいるのかはわかりませんが、それらの いずれかをたまたまダブルクリックして対応するアプリケーションがインストールされていない場合、このようなものが表示されます。

../../../_images/missing_saga.png

この場合には、SAGAが正しくインストールされ構成されていると仮定すると、このウィンドウは表示されないはずで、代わりにダイアログのパラメーターが得られるでしょう。

SAGAベースのアルゴリズム、 シェープレイヤーをランダムに分割 と呼ばれるもの、で試してみましょう。

../../../_images/split.png

入力として、このレッスンに対応したプロジェクト内のポイントレイヤー、およびデフォルトのパラメーター値を使用して、このような何かを取得します(分割がランダムであるので、結果は異なる場合があります)。

../../../_images/split_layer1.png

入力レイヤーは2レイヤーに分割されていて、それぞれに同じ数のポイントがあります。この結果は、SAGAによって計算され、後でQGISによってとられQGISプロジェクトに追加されました。

すべてがうまくいけば、このSAGAベースのアルゴリズムと、以前に実行をしている他のアルゴリズムとの間の違いに何も気付かないでしょう。しかし、SAGAでは、何らかの理由で、結果を生成できず、QGISによって想定されるファイルが作成されない場合があります。その場合、QGISプロジェクトにその結果を追加すると問題がおき、このようなエラーメッセージが表示されるでしょう。

../../../_images/missing_result.png

この種の問題は、SAGA(または私達は処理フレームワークから呼び出している他のアプリケーション)が正しくインストールされている場合でも、起こるかもしれない、それらに対処する方法を知っておくことが重要です。これらのエラーメッセージの1つを作成してみましょう。

経緯を作成 アルゴリズムを開き、次の値を使用します。

../../../_images/create_graticule.png

指定された範囲よりも大きい幅と高さの値を使用しているので、SAGAは何も出力を生成できません。言い換えれば、パラメーター値は間違っているが、それらはSAGAがそれらを取得して目盛を作成しようとするまではチェックされません。それはそれを作成できませんので、それが期待されるレイヤーを生成せず、上記のようなエラーメッセージが表示されます。

ノート

SAGA >= 2.2.3では、コマンドは自動的に間違った入力データを調整しますので、エラーは出ないでしょう。エラーを発生させるため、割り算のために負の値を使用します。

この種の問題を理解することは、それらを解決し、何が起こっているかの説明を見つけるのに役立つでしょう。エラーメッセージで見ることができるように、テストは、アルゴリズムが実行された方法に問題があるかもしれないことを示し、SAGAとの接続が正しく機能していることを確認するために行われます。これは、同様にSAGAにするだけでなく、他の外部アプリケーションに限らず適用されます。

次のレッスンでは、ジオアルゴリズムによって実行されるコマンドに関する情報が保持される処理ログを、ご紹介します、そしてこのような問題が現れたときに詳細を取得する方法について説明します。