Module contributed by Matteo Ghetta - funded by Scuola Superiore Sant’Anna
[処理]でRスクリプトを記述するために採用されている構文はかなりトリッキーである可能性があります。
各スクリプトは ## で始まる 入力 と 出力 で始ま ります。
teh入力を指定する前に、スクリプトが置かれるているアルゴリズムのグループも設定できます。グループがすでに存在する場合は、アルゴリズムが自動的に作成される他、他の新しいグループに追加されます。
グループ作成、 ##My Group=group
それから、すべての入力タイプと最終的には追加のパラメーターを指定する必要があります。異なる入力にすることができます。
ベクター、 ##Layer = vector
ベクターフィールド、 ##F = Field Layer (ここで Layerは、入力レイヤーの名前です)
ラスター、 ##r = raster
テーブル、 ##t = table
数値、 ##Num = number
文字列、 ##Str = string
ブール値、 ##Bol = boolean
また、必要なすべてのパラメーターを使用してドロップダウンメニューを持つことができます。項目はセミコロン ; で区切る必要があります:
入力のように、各出力は、スクリプトの先頭で定義する必要があります。
ベクター、 ##output= output vector
ラスター、 ##output= output raster
テーブル、 ##output= output table
プロット、 ## showplots
結果ビューア のR出力、スクリプト 内部 に 表示したい出力の 前 に > を置くだけ
スクリプト本体は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 はアルゴリズムによって作成される ベクター レイヤー、
library(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)になるように 要約統計 アルゴリズムを編集してみましょう。
スクリプトの本文は以下の通りです:
##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箇所編集する以外は上記とまったく同じです。
出力はもはや指定されない(第4行は除去されました)
最後の行は、 > それは結果ビューアでオブジェクトを印刷するための処理を指示することから始まります
プロットを作成することは非常に簡単です。次のスクリプトに示すように、 ##showplots パラメーターを使用する必要があります:
##Basic statistics=group
##Layer=vector
##Field=Field Layer
##showplots
qqnorm(Layer[[Field]])
qqline(Layer[[Field]])
スクリプトは入力にベクターレイヤーのフィールドを取り、分布の正規性をテストするために QQプロット を作成します。
プロットは自動的に処理の 結果ビューア に追加されます。