I have a RasterBrick
that contains mean values one layer for each month in a 72-year interval. I want to get the mean value for each year - i.e. return a 72-layer RasterBrick
.
The following code has worked on other similar rasters, yielding the expected results (found here):
data <- raster::brick(".../air.mon.mean.nc", varname = "air")
index <- format(as.Date(raster::getZ(data), format = "%Y-%m-%d %H:%M:%S"), format = "%Y")
index <- as.numeric(index)
yearly <- raster::stackApply(data, index, fun = mean)
> yearly
class : RasterBrick
dimensions : 360, 720, 259200, 72 (nrow, ncol, ncell, nlayers)
resolution : 0.5, 0.5 (x, y)
extent : 0, 360, -90, 90 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
source : C:/Users/villar/AppData/Local/Temp/RtmpAbUQQT/raster/r_tmp_2019-08-05_102157_18368_64365.grd
names : index_1948, index_1949, index_1950, index_1951, index_1952, index_1953, index_1954, index_1955, index_1956, index_1957, index_1958, index_1959, index_1960, index_1961, index_1962, ...
min values : NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
max values : NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
However, when running on this data, it returns only NA values.
fun = function(x, na.rm) {sum(x)/12}
does not work, nor does adding na.rm = TRUE
.
Any help would be greatly appreciated!
The data is downloaded from here (air.mon.mean.nc).