パッケージ ラスターを使用する方が、ニーズに適している場合があります。リモートで感知されたデータを処理するために最適化されたコードがいくつかあり、チャンクでの処理を処理します。次の例を検討してください。
## Make 12 rasters, maybe one for each month of the year
for( i in seq(12) ){
assign( paste0( "r" , i ) , raster( matrix(runif(1e3) , nrow = 1e2 ) ) )
}
## Create a raster stack from these
rS <- stack( mget( paste0("r",1:12) , envir = .GlobalEnv ) )
## Use calc to get mean, using by to group by a variable
## In this example I use the vector (1,1,1,2,2,2,3,3,3,4,4,4)
## meaning I get means for the first 3 rasters, then the next 3 etc
## So I get a mean for each quarter
rMean <- calc( rS , fun = function(x){ by(x , c( rep( 1:4 , each=3 ) ) , mean ) } )
これは、4 つのレイヤー (四半期ごとに 1 つの平均) を持つラスター ブリックを返します。
class : RasterBrick
dimensions : 100, 10, 1000, 4 (nrow, ncol, ncell, nlayers)
resolution : 0.1, 0.01 (x, y)
extent : 0, 1, 0, 1 (xmin, xmax, ymin, ymax)
coord. ref. : NA
data source : in memory
names : X1, X2, X3, X4
min values : 0.02096586, 0.04015260, 0.04704145, 0.05884161
max values : 0.9727491, 0.9303025, 0.9804486, 0.9934670
これをあなたのデータに適応させていただければ幸いです。