0

最初のラスターで小さな領域を選択し、その領域の空間平均を計算し、他の 11 個のラスターについても同じことを行いたいと考えています。最終的に12個の値を取得します。

私はこれを試しました:

sami<- list.files("C:\\New folder (3)", "*.envi", full.names = TRUE)
saf=stack(sami)
plot(saf, 1)   ## to select a region
e <- drawExtent()## I selected the region
saf_test <- crop(saf, e)

これはそうする権利ですか?

次に、選択した領域の空間平均をどのように計算し、他のすべてのラスターについても同じことを行います。前もって感謝します。

4

1 に答える 1

1

このようにできます。rasterパッケージのサンプル データを使用します。試してみて、ラスター スタックに適応させてください (これは簡単なはずです)。このextract関数は行列を返します。drawExtentレイヤーごとに選択された領域の値の 1 つの列。次にcolMeans、その領域の平均に使用できます。

    #This particular stack has 3 'layers' - one each for the red, green and blue channels of the picture
    saf <- stack(system.file("external/rlogo.grd", package="raster")) 
    plotRGB( saf )
    e <- drawExtent()

ここに画像の説明を入力

    vals <- extract( saf , e , nl = nlayers( saf ) )
    vals <- colMeans( vals )
    vals
#   red    green     blue 
#   185.9368 191.9158 208.7825 
于 2013-03-20T11:32:48.273 に答える