Skip to contents

oceancube represents longitude × latitude × depth × time × variable cubes with memory and read-only local NetCDF backends. The full navigable handbook is available at https://qselmer.github.io/oceancube/handbook/.

library(oceancube)
x <- ocean_cube(lon=c(-80,-79),lat=-12,depth=0,time=as.Date('2020-01-01'),vars='temperature',data=array(1:2,dim=c(2,1,1,1,1)))
stopifnot(length(dim(x$data)) == 5L)

For modern daily or monthly legacy climatologies, signal_noise(x, clim) is a standardized climatological anomaly magnitude (abs(z)), not a general signal-to-noise ratio. Use signal_noise(x, clim, signed = TRUE) to retain the canonical signed z anomaly, or use cube_anomaly() directly with canonical and seasonal climatologies.

cube_trend() computes a descriptive per-cell linear slope against actual elapsed Date or UTC POSIXct time. It accepts raw, aggregated, and anomaly cubes but rejects climatology pseudo-time; it performs no Sen/Mann–Kendall testing, inference, change-point, or regime analysis.

The canonical flow is construct/read -> validate/inspect -> select/extract -> visualize -> optional temporal aggregation -> climatology/anomaly or descriptive trend. The six static viz.* functions return ggplot objects; specialized D3 visualizations remain outside this release. Deprecated compatibility helpers remain callable after this canonical route. spatind consumes prepared values and weights; it owns indicators, interpretation, uncertainty, and inference.