This class holds the data that is extracted from a CFVariable,
using the data()
or subset()
method. The instance of this class will
additionally have the axes and other relevant information such as its
attributes (as well as those of the axes) and the coordinate reference
system.
The class has a number of utility functions to extract the data in specific formats:
raw()
: The data without any further processing. The axes are
as they are stored in the netCDF resource; there is thus no guarantee as to
how the data is organized in the array. Dimnames will be set.
array()
: An array of the data which is organized as a standard R array
with the axes of the data permuted to Y-X-others and Y-values in decreasing
order. Dimnames will be set.
terra()
: The data is returned as a terra::SpatRaster
(3D) or
terra::SpatRasterDataset
(4D) object, with all relevant structural
metadata set. Package terra
must be installed for this to work.
data.table()
: The data is returned as a data.table
, with all data
points on individual rows. Metadata is not maintained. Package data.table
must be installed for this to work.
The temporal dimension of the data, if present, may be summarised using the
summarise()
method. The data is returned as a new CFArray
instance.
In general, the metadata from the netCDF resource will be lost when exporting to a different format insofar as those metadata are not recognized by the different format.
ncdfCF::CFObject
-> ncdfCF::CFVariableBase
-> CFArray
values
The data of this object.
dimnames
(read-only) Retrieve dimnames of the data object.
new()
Create an instance of this class.
CFArray$new(name, group, values, axes, crs, attributes)
name
The name of the object.
group
The group that this data should live in. This is usually an in-memory group, but it could be a regular group if the data is prepared for writing into a new netCDF file.
values
The data of this object. The structure of the data depends on the method that produced it.
axes
A list
of CFAxis descendant instances that describe the
axes of the argument value
.
crs
The CFGridMapping instance of this data object, or NULL
when no grid mapping is available.
attributes
A data.frame
with the attributes associated with the
data in argument value
.
An instance of this class.
raw()
Retrieve the data in the object exactly as it was produced
by the operation on CFVariable
.
CFArray$raw()
The data in the object. This is usually an array
with the
contents along axes varying.
array()
Retrieve the data in the object in the form of an R array, with axis ordering Y-X-others and Y values going from the top down.
CFArray$array()
An array
of data in R ordering.
terra()
Convert the data to a terra::SpatRaster
(3D) or a
terra::SpatRasterDataset
(4D) object. The data
will be oriented to North-up. The 3rd dimension in the data will become
layers in the resulting SpatRaster
, any 4th dimension the data sets.
The terra
package needs to be installed for this method to work.
CFArray$terra()
A terra::SpatRaster
or terra::SpatRasterDataset
instance.
data.table()
Retrieve the data in the object in the form of a
data.table
. The data.table
package needs to be installed for this
method to work.
CFArray$data.table()
A data.table
with all data points in individual rows. All axes,
including scalar axes, will become columns. The name
of this data
variable will be used as the column that holds the data values. Two
attributes are added: name
indicates the long name of this data
variable, units
indicates the physical unit of the data values.
fn
The name of the netCDF file to create.
Self, invisibly.
clone()
The objects of this class are cloneable with this method.
CFArray$clone(deep = FALSE)
deep
Whether to make a deep clone.