Module contributed by Matteo Ghetta - funded by Scuola Superiore Sant’Anna
[処理]でRスクリプトを記述するために採用されている構文はかなりトリッキーである可能性があります。
各スクリプトは``##``で始まる 入力 と 出力 で始ま ります。
tehの入力を指定する前に、スクリプトが置かれるているアルゴリズムのグループを設定することもできます。グループがすでに存在する場合は、アルゴリズムが自動的に作成される他、他の新しいグループに追加されます。
それから、すべての入力タイプと最終的には追加のパラメータを指定する必要があります。異なる入力にすることができます。
ベクトル、 `` ##層= vector``
ベクトルフィールド、 `` ## F =フィールドLayer``(レイヤは、入力レイヤの名前です)
テーブル、 `` ##層= raster``
また、必要なすべてのパラメータを使用してドロップダウンメニューを持つことができます。項目は ``半列に分離されなければなりません; ``:
入力のように、各出力は、スクリプトの先頭で定義する必要があります。
スクリプト本体はR形式の構文に従い、 ログ パネルは何かがスクリプトで間違っていた場合に助けになりえます。
スクリプトでは、すべての追加のライブラリをロードする必要があることを 忘れないでください
library(sp)
入力レイヤの範囲からランダムな点を作成するオンラインコレクションからのアルゴリズムを見てみましょう:
##Point pattern analysis=group
##Layer=vector
##Size=number 10
##Output= output vector
library(sp)
pts=spsample(Layer,Size,type="random")
Output=SpatialPointsDataFrame(pts, as.data.frame(pts))
そして、線を介して取得します:
ポイントパターン分析 は、アルゴリズムのグループ
`` Layer`` は入力 ベクトル レイヤ
`` Size`` は10のデフォルト値を持つ 数値 パラメータ、
Output はアルゴリズムによって作成される ベクトル レイヤ、
``ライブラリー(sp) `` は sp ライブラリをロード(既にコンピュータにインストールされている必要があり、そのインストールは R内で されている必要があります)
sp ライブラリの spsample 関数を呼び出し、上記で定義されたすべての入力に渡します
`` SpatialPointsDataFrame`` 機能で出力ベクトルを作成します
それでおしまい!QGIS凡例中に持っているベクタレイヤでアルゴリズムを実行し、多数のランダムポイントを選択するだけで、QGIS地図キャンバスにそれらが得られるでしょう。
次のスクリプトは、基本的な通常のクリギングを実行し、補間値のラスター地図を作成します:
##Basic statistics=group
##Layer=vector
##Field=Field Layer
##Output=output raster
require("automap")
require("sp")
require("raster")
table=as.data.frame(Layer)
coordinates(table)= ~coords.x1+coords.x2
c = Layer[[Field]]
kriging_result = autoKrige(c~1, table)
prediction = raster(kriging_result$krige_output)
Output<-prediction
入力中のベクトルおよびそのフィールドからアルゴリズムは、 automap のRパッケージの autoKrige 関数を使用し、最初にクリギングモデルを計算し、次にラスタを作成します。
ラスタは、ラスタRパッケージの raster 機能を使用して作成されます。
出力は、テーブルファイル(CSV)になるようにのが ``概要Statistics``アルゴリズムを編集してみましょう。
スクリプトの本文は以下の通りです:
##Basic statistics=group
##Layer=vector
##Field=Field Layer
##Stat=Output table
Summary_statistics<-data.frame(rbind(
sum(Layer[[Field]]),
length(Layer[[Field]]),
length(unique(Layer[[Field]])),
min(Layer[[Field]]),
max(Layer[[Field]]),
max(Layer[[Field]])-min(Layer[[Field]]),
mean(Layer[[Field]]),
median(Layer[[Field]]),
sd(Layer[[Field]])),row.names=c("Sum:","Count:","Unique values:","Minimum value:","Maximum value:","Range:","Mean value:","Median value:","Standard deviation:"))
colnames(Summary_statistics)<-c(Field)
Stat<-Summary_statistics
3行目は入力に ベクトル場 を指定し、4行目は出力テーブルであるべきであるアルゴリズムを伝えます。
最後の行は、スクリプトで作成された `` Stat``オブジェクトを取得し、 `` csv``テーブルに変換します。
前の例を取り、テーブルを作成する代わりに、 結果ビューア で結果を印刷できます:
##Basic statistics=group
##Layer=vector
##Field=Field Layer
Summary_statistics<-data.frame(rbind(
sum(Layer[[Field]]),
length(Layer[[Field]]),
length(unique(Layer[[Field]])),
min(Layer[[Field]]),
max(Layer[[Field]]),
max(Layer[[Field]])-min(Layer[[Field]]),
mean(Layer[[Field]]),
median(Layer[[Field]]),
sd(Layer[[Field]])),row.names=c("Sum:","Count:","Unique values:","Minimum value:","Maximum value:","Range:","Mean value:","Median value:","Standard deviation:"))
colnames(Summary_statistics)<-c(Field)
>Summary_statistics
スクリプトはわずか2箇所編集する以外は上記とまったく同じです。
プロットを作成することは非常に簡単です。次のスクリプトに示すように、 `` ## showplots`` パラメータを使用する必要があります:
##Basic statistics=group
##Layer=vector
##Field=Field Layer
##showplots
qqnorm(Layer[[Field]])
qqline(Layer[[Field]])
スクリプトは入力にベクトルレイヤのフィールドを取り、分布の正規性をテストするために QQプロット を作成します。
プロットは自動的に処理の 結果ビューアー に追加されます。