17.31. 処理でRスクリプトを使用する

Module contributed by Matteo Ghetta - funded by Scuola Superiore Sant’Anna

処理はQGIS内のRスクリプトを作成して実行できます

警告

Rがお使いのコンピュータにインストールされ、PATHが正しく設定される必要があります。さらに、処理は外部のRパッケージを呼び出すだけで、それらをインストールできません。だから、Rに直接外部のパッケージをインストールしてください。ユーザーマニュアル中の関連する chapter を参照。

ノート

いくつかの パッケージ 問題がある場合は、多分それは sp 、 `` rgdal`` と raster のように、処理で必要とされる 必須 パッケージが不足しているに関連しています。

17.31.1. スクリプトの追加

スクリプトを追加するのはとても簡単です。処理ツールボックスを開き、 R - >ツール - >新しいRのscriptを作成 をクリックするだけです。

../../../_images/r_intro_1.png

ノート

処理の中にRが見あたらない場合は、 処理 - >オプション - > Providers を有効にする必要があります

スクリプト本体を追加できる前にいくつかのパラメータを指定する必要がある スクリプトエディタウィンドウ を開きます。

../../../_images/r_intro_2.png

17.31.2. プロットを作成します

このチュートリアルでは、ベクトルレイヤフィールドの 箱ひげ図 を作成しようとしています。

r_intro.qgs QGISプロジェクト開きます。

17.31.2.1. スクリプトのパラメータ

エディタを開いて、それの最初に書き始めます。

スクリプト本体の にいくつかのパラメータを指定する 必要があります

  1. スクリプトを置く先となるグループの名前:

    ##plots=group
    

    処理ツールボックスの プロット グループでスクリプトを見つけます。

  2. (ちょうどこの例では)プロットを表示する処理を指示する必要があります:

    ##showplots
    

    プロットが表示されます 処理の 結果ビューア 中にこの方法で。

  3. 作業しているデータの種類をして処理を伝えるためにも必要です。この例では、ベクトルレイヤのフィールドからプロットを作成したい:

    ##Layer=vector
    

    処理は、入力がベクトルであることを今知っています。名前 レイヤー は重要ではありません、重要なのは ベクトル パラメータです。

  4. 最後に、プロットするベクトルレイヤの入力フィールドを指定する必要があります:

    ##X=Field Layer
    

    だから、処理はその フィールドレイヤ が ** X ** と呼ばれていることを知っています。

17.31.2.2. スクリプト本体

今、機能を追加できるスクリプトの 見出し を設定し終わりました:

boxplot(Layer[[X]])

箱ひげ は、データセットとして レイヤ をデータセットのフィールドとして X を呼び出す、R関数自体の名前であることに注意してください。

警告

パラメータ X は、二重角括弧 [[]] の範囲内であります

最後のスクリプトは次のようになります:

##Vector processing=group
##showplots
##Layer=vector
##X=Field Layer
boxplot(Layer[[X]])
../../../_images/r_intro_3.png

処理によって提案されたデフォルトのパスにスクリプトを保存します。選択した名前が処理ツールボックスに見つかるスクリプトの名前と同じになります。

ノート

スクリプトは他のパスに保存できますが、処理が自動的にアップロードできず、手動ですべてのスクリプトをアップロードすることが必要になります

今だけのエディタ・ウィンドウの上部にあるボタンを使用して、それを実行します。

../../../_images/r_intro_4.png

エディタウィンドウが閉じられた後、それ以外の場合は、スクリプトを見つけるために、処理のテキストボックスを使用します。

../../../_images/r_intro_5.png

これで、処理アルゴリズムのウィンドウで必要なパラメータを記入できます:

  • レイヤ として サンプル点 を選択する

  • X フィールドに パラメータを記入します

[実行] をクリックしてください。

../../../_images/r_intro_6.png

結果ウィンドウ が自動的に開くはずですが、そうでない場合は 処理 - >結果ビューア... をクリックするだけです。

これが表示される最終的な結果です。

../../../_images/r_intro_7.png

ノート

プロットを右クリックして画像を開き、コピーし、保存できます

17.31.3. ベクトルを作成します。

Rスクリプトを使用すると、ベクトルも作成できますし、自動的にQGISでそれをロードします。

R - >ツール - >オンラインcollection からRスクリプトをダウンロード 次の例では、オンラインコレクションからダウンロードできます ランダムサンプリングgrid スクリプトからとられています。

この演習の目的は、 sp パッケージの spsample 機能を使用してレイヤの範囲内のランダムな点ベクトルを作成することです。

17.31.3.1. スクリプトのパラメータ

前と同じように、スクリプト本体の前にいくつかのパラメータを設定する必要があります。

  1. スクリプトを置く先となるグループの名前を指定します、例えば ポイントパターン分析

    ##Point pattern analysis=group
    
  2. ランダムな点が含まれているレイヤを設定する:

    ##Layer=vector
    
  3. 作成しようとしているポイントの数を設定する:

    ##Size=number 10
    

    ノート

    10は、デフォルト値になるだろう。この番号を変更したり、デフォルトの番号なしでパラメータを残すことができます

  4. 出力はベクトルレイヤであることを指定します:

    ##Output= output vector
    

17.31.3.2. スクリプト本体

今、関数の本体を追加できます。

  1. spsample 機能を実行します:

    pts=spsample(Layer,Size,type="random")
    

    このように関数は点の数は サイズ パラメータから取得され、点発生が ランダム であり、 レイヤー の範囲を取り

  2. 出力のパラメータを含む行を書く:

    Output=SpatialPointsDataFrame(pts, as.data.frame(pts))

最後のスクリプトは次のようになります。

../../../_images/r_intro_8.png

それを保存し、それを実行し、実行しているボタンをクリックします。

右のパラメータの新しいウィンドウタイプで:

../../../_images/r_intro_9.png

し、実行をクリックしてください。

結果のポイントが、マップのキャンバスに表示されます

../../../_images/r_intro_10.png

17.31.4. R - 処理構文

処理は、Rのうち、成果を得るために、いくつかの特別な構文を使用していることに注意してください:

  • > コマンドの前に、のように ``> lillie.test(レイヤー[[フィールド]]) ``結果はR出力に送られるべき手段(結果ビューア)

  • + プロットした後、オーバーレイプロットを呼び出します。例えば、 ``プロット(レイヤ[X]、レイヤ[Y])+ abline(H =平均(レイヤ[X]])) ``