2017-03-02 1 views
0

したがって、複数のラスタ(x1、x2、x3、x4、...)を積み重ね、これらのすべて(xmaster)から平均ラスタを計算しました。しかし、私はそのラスタ(xmaster)の平均ピクセル値を求めます。通常、私は要約統計量を表示し、平均値を呼び出します....しかし、平均値は 'xmaster'の要約には現れません!どうしてこんなことが起こっているのか分かりません。私の下のスクリプトを参照してください。RasterLayerの平均は計算しません(Rラスタパッケージ)

lightstackFF<-list.files() 
stacklights<-stack(lightstackFF) 
xmaster<- mean(stacklights, na.rm=TRUE) 
summary(xmaster) 

">要約(xmaster) 層 分11488 第一屈原18016 中央値は20048 第三屈原21968 最大28704 NAの0。。。。"

を皆さんが見ているように、ラスタの平均値は表示されません。もちろん、ラスタを保存して別のソフトウェアで平均を抽出することはできますが、その時間は非常にかかります。なぜこれが平均を示していないのか、誰でも助けてくれますか?

答えて

0

:例えば、層手段の平均を得るためには、次のようなものを使用することができます(RasterLayer自体ではありません)。これにより、次の情報が表示されます(平均を含む)。

Min. 1st Qu. Median Mean 3rd Qu. Max. 
+0

ありがとうztl!なぜそれがないのか分かりません;サマリーだけで平均を表示することはできませんが、これはうまくいきます。 – Alexander

1

rasterパッケージの機能(最小、最大、平均など)は、各セルが新しい計算値である新しいラスタオブジェクトを返します。レイヤー内のすべてのセル値のサマリーを返すには、raster::cellStats()が必要です。これはあなたのRasterLayerの全ての値を含むベクトルにsummaryを適用する方法について

summary(xmaster[]) # Please note the [] 
# which is equivalent to: 
summary(values(xmaster)) 
# or even 
summary(getValues(xmaster)) 

r <- raster(nrow=18, ncol=36) 
r[] <- runif(ncell(r)) * 10 
rs <- stack(r,r,r) 
layermeans <- cellStats(rs, stat='mean', na.rm=TRUE) 
u <- mean(layermeans) 
> layermeans 
layer.1 layer.2 layer.3 
5.028814 5.028814 5.028814 
> u 
[1] 5.028814