Module contributed by Matteo Ghetta - funded by Scuola Superiore Sant’Anna
プロセッシングにより、QGIS内でRスクリプトを作成して実行できます。
警告
Rがお使いのコンピュータにインストールされ、PATHが正しく設定される必要があります。さらに、プロセッシングは外部のRパッケージを呼び出すだけで、それらをインストールできません。だから、Rに直接外部のパッケージをインストールしてください。ユーザーマニュアル中の関連する 章 を参照。
ノート
何らかの パッケージ 問題がある場合、多分それは sp 、 rgdal と raster のように、プロセッシングで必要とされる 必須 パッケージが不足していることに関連しています。
スクリプトを追加するのはとても簡単です。プロセッシングツールボックスを開き、 R ‣ ツール ‣ 新しいRのスクリプトを作成 をクリックするだけです。
ノート
プロセッシングの中にRが見あたらない場合は、 プロセッシング ‣ オプション ‣ プロバイダー を有効にする必要があります
スクリプト本体を追加できる前にいくつかのパラメーターを指定する必要がある スクリプトエディタウィンドウ を開きます。
このチュートリアルでは、ベクターレイヤーフィールドの 箱ひげ図 を作成しようとしています。
exercise_data/processing/r_intro/ フォルダの下にある r_intro.qgs QGISプロジェクトを開きます。
エディタを開いて、それの最初に書き始めます。
スクリプト本体の 前 にいくつかのパラメーターを指定する 必要があります 。
スクリプトを置く先となるグループの名前:
##plots=group
プロセッシングツールボックスの プロット グループでスクリプトを見つけます。
(ちょうどこの例では)プロットを表示するプロセッシングを指示する必要があります:
##showplots
プロットが表示されます プロセッシングの 結果ビューア 中にこの方法で。
作業しているデータの種類をプロセッシングに伝えることも必要です。この例では、ベクターレイヤーのフィールドからプロットを作成したい:
##Layer=vector
プロセッシングは今、入力がベクターであることを知っています。名前 レイヤー は重要ではありません、重要なのは ベクター パラメーターです。
最後に、プロットするベクターレイヤーの入力フィールドを指定する必要があります:
##X=Field Layer
だから、プロセッシングはその フィールドレイヤー が X と呼ばれていることを知っています。
今、機能を追加できるスクリプトの 見出し を設定し終わりました:
boxplot(Layer[[X]])
箱ひげ は、データセットとして レイヤー をデータセットのフィールドとして X を呼び出す、R関数自体の名前であることに注意してください。
警告
パラメーター X は、二重角括弧 [[]] の範囲内であります
最後のスクリプトは次のようになります:
##Vector processing=group
##showplots
##Layer=vector
##X=Field Layer
boxplot(Layer[[X]])
プロセッシングによって提案されたデフォルトのパスにスクリプトを保存します。選択した名前がプロセッシングツールボックスに見つかるスクリプトの名前と同じになります。
ノート
スクリプトは他のパスに保存できますが、プロセシングが自動的にアップロードできず、手動ですべてのスクリプトをアップロードすることが必要になります
今、エディタ・ウィンドウの上部にあるボタンを使用して、それを実行します。
エディタウィンドウが閉じられた後、それ以外の場合は、スクリプトを見つけるために、プロセシングのテキストボックスを使用します。
これで、プロセシングアルゴリズムのウィンドウで必要なパラメーターを記入できます:
レイヤー として サンプル点 を選択する
X フィールドに 値 パラメーターを記入します
[実行] をクリックしてください。
結果ウィンドウ が自動的に開くはずですが、そうでない場合は プロセシング ‣ 結果ビューア... をクリックするだけです。
これが表示される最終的な結果です。
ノート
プロットを右クリックして画像を開き、コピーし、保存できます
Rスクリプトを使用すると、ベクターも作成できますし、自動的にQGISでそれをロードします。
次の例は ランダムサンプリンググリッド スクリプトからとられています。これはオンラインコレクションからダウンロード R ‣ ツール ‣ オンラインコレクションからRスクリプトをダウンロード できます。
この演習の目的は、 sp パッケージの spsample 機能を使用してレイヤーの範囲内のランダムなポイントベクターを作成することです。
前と同じように、スクリプト本体の前にいくつかのパラメーターを設定する必要があります。
スクリプトを置く先となるグループの名前を指定します、例えば ポイントパターン分析
##Point pattern analysis=group
ランダムなポイントが含まれているレイヤーを設定する:
##Layer=vector
作成しようとしているポイントの数を設定する:
##Size=number 10
ノート
10をデフォルト値にします。この数は変更できますし、パラメーターをデフォルトの数なしのままにもできます
出力はベクターレイヤーであることを指定します:
##Output= output vector
今、関数の本体を追加できます。
spsample 機能を実行します:
pts=spsample(Layer,Size,type="random")
このように関数は点の数は サイズ パラメーターから取得され、点発生が ランダム であり、 レイヤー の範囲を取り
出力のパラメーターを含む行を書く:
Output=SpatialPointsDataFrame(pts, as.data.frame(pts))
最後のスクリプトは次のようになります:
##Point pattern analysis=group
##Layer=vector
##Size=number 10
##Output= output vector
pts=spsample(Layer,Size,type="random")
Output=SpatialPointsDataFrame(pts, as.data.frame(pts))
それを保存し、それを実行し、実行しているボタンをクリックします。
新しいウィンドウで正しいパラメーターを入力し:
そして実行をクリックしてください。
結果のポイントが、地図キャンバスに表示されます
プロセシングは、Rから結果を得るために、いくつかの特別な構文を使用していることに注意してください:
コマンドの前に > は、 >lillie.test(Layer[[Field]]) 中でのように、結果がR出力(結果ビューア)に送られるべきことを意味します
プロットした後 + はオーバーレイプロットを呼び出します。例えば、 plot(Layer[[X]], Layer[[Y]]) + abline(h=mean(Layer[[X]]))