hyper_array {tidync} | R Documentation |
Extract NetCDF data as an array
Description
Extract the raw array data as a list of one or more arrays. This can be the
entire variable/s or after dimension-slicing using hyper_filter()
expressions. This is a delay-breaking function and causes data to be read
from the source into R native arrays. This list of arrays is
lightly classed as tidync_data, with methods for print()
and tidync()
.
Usage
hyper_array(
x,
select_var = NULL,
...,
raw_datavals = FALSE,
force = FALSE,
drop = TRUE
)
hyper_slice(
x,
select_var = NULL,
...,
raw_datavals = FALSE,
force = FALSE,
drop = TRUE
)
## S3 method for class 'tidync'
hyper_array(
x,
select_var = NULL,
...,
raw_datavals = FALSE,
force = FALSE,
drop = TRUE
)
## S3 method for class 'character'
hyper_array(
x,
select_var = NULL,
...,
raw_datavals = FALSE,
force = FALSE,
drop = TRUE
)
Arguments
x |
NetCDF file, connection object, or tidync object |
select_var |
optional vector of variable names to select |
... |
passed to |
raw_datavals |
logical to control whether scaling in the NetCDF is applied or not |
force |
ignore caveats about large extraction and just do it |
drop |
collapse degenerate dimensions, defaults to |
Details
The function hyper_array()
is used by hyper_tibble()
and hyper_tbl_cube()
to actually extract data arrays from NetCDF, if a result would be particularly large
there is a check made and user-opportunity to cancel. This is controllable as an
option getOption('tidync.large.data.check')
, and can be set to never check with
options(tidync.large.data.check = FALSE)
.
The function hyper_array()
will act on an existing tidync object or a source
string.
By default all variables in the active grid are returned, use select_var
to
specify one or more desired variables.
The transforms are stored as a list of tables in an attribute 'transforms“,
access these with hyper_transforms()
.
See Also
print.tidync_data for a description of the print summary,
hyper_tbl_cube()
and hyper_tibble()
which are also delay-breaking
functions that cause data to be read
Examples
f <- "S20080012008031.L3m_MO_CHL_chlor_a_9km.nc"
l3file <- system.file("extdata/oceandata", f, package= "tidync")
## extract a raw list by filtered dimension
library(dplyr)
araw1 <- tidync(l3file) %>%
hyper_filter(lat = between(lat, -78, -75.8),
lon = between(lon, 165, 171)) %>%
hyper_array()
araw <- tidync(l3file) %>%
hyper_filter(lat = abs(lat) < 10,
lon = index < 100) %>%
hyper_array()
## hyper_array will pass the expressions to hyper_filter
braw <- tidync(l3file) %>%
hyper_array(lat = abs(lat) < 10, lon = index < 100)
## get the transforms tables (the axis coordinates)
lapply(attr(braw, "transforms"),
function(x) nrow(dplyr::filter(x, selected)))
## the selected axis coordinates should match in order and in size
lapply(braw, dim)