特定の月の範囲で、海面水温 (SST) と熱帯低気圧の活動との相関関係を調べようとしています。私が使用しているデータは、 hadsstRパッケージの関数を使用してHadley Center (NetCDF 形式)から取得したものです。get_anual_ssts()
get_annual_ssts <- function(hadsst_raster, years = 1969:2011) {
mean_rasts <-
apply(matrix(years), 1, function(x) {
yearIDx <- which(chron::years(hadsst_raster@z$Date) == x)
subset_x <- raster::subset(hadsst_raster, yearIDx)
means <- raster::calc(subset_x, mean, na.rm = TRUE)
names(means) <- as.character(x)
return(means)
})
mean_brick <- raster::brick(mean_rasts)
mean_brick <- raster::setZ(mean_brick, as.Date(paste0(years, '-01-01')), 'Date')
return(mean_brick)
}
必要なのは、1 年全体の平均 SST を計算する代わりに、ハリケーンの活動の月ごとにフィルター処理できる追加のパラメーターを用意することです。
たとえば、南西太平洋では、get_annual_ssts(hadsst_raster, 12:04, 1966:2007)
12 月から 4 月がハリケーンの活動が活発な月である を呼び出すことができるはずです。2 つの異なる年を含む月の範囲を設定することは非常に重要です (おそらく、最初の月と範囲の長さを指定mean_brick
して、最初の年の平均を保存しますか?)。
のドキュメントを見るとchron
、mm-yy などのサブセットを割り当てることはできないようです。これを達成するための最良の方法は何ですか?
参考までに、入力ラスター データ ( hadsst_raster
) は次のようになります。
class : RasterBrick
dimensions : 180, 360, 64800, 1766 (nrow, ncol, ncell, nlayers)
resolution : 1, 1 (x, y)
extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84
data source : ~/Downloads/Hadley/HadISST_sst.nc
names : X1870.01.16, X1870.02.14, X1870.03.16, X1870.04.15, X1870.05.16, X1870.06.16, X1870.07.16, X1870.08.16, X1870.09.16, X1870.10.16, X1870.11.16, X1870.12.16, X1871.01.16, X1871.02.15, X1871.03.16, ...
Date : 1870-01-16, 2017-02-16 (min, max)
varname : sst
出力 ( get_annual_ssts(hadsst_raster, 1966:2007)
) は次のようになります。
class : RasterBrick
dimensions : 180, 360, 64800, 42 (nrow, ncol, ncell, nlayers)
resolution : 1, 1 (x, y)
extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84
data source : in memory
names : X1966, X1967, X1968, X1969, X1970, X1971, X1972, X1973, X1974, X1975, X1976, X1977, X1978, X1979, X1980, ...
min values : -916.8167, -916.8167, -916.8167, -916.8167, -916.8167, -916.8167, -916.8167, -916.8167, -916.8167, -916.8167, -916.8167, -916.8167, -916.8167, -1000.0000, -1000.0000, ...
max values : 29.94996, 29.66276, 29.70941, 30.22522, 29.61913, 29.43723, 29.65050, 29.73929, 29.59117, 29.48381, 29.36425, 29.72932, 29.70908, 29.84216, 29.84868, ...
Date : 1966-01-01, 2007-01-01 (min, max)