API Reference¶
NPZ files¶
Defined in xtensor-io/xnpz.hpp
-
auto
xt
::
load_npz
(std::string filename)¶ Loads a npz file.
This function returns a map. The individual arrays are not casted to a specific file format. This has to be done before they can be used as xarrays (e.g.
auto arr_0 = npz_map["arr_0"].cast<double>();
)- Return
returns a map with the stored arrays. Array names are the keys.
- Parameters
filename
: The filename of the npz file
-
template<class
T
>
xarray<T>xt
::
load_npz
(std::string filename, std::string search_varname)¶ Loads a specific array indicated by search_varname from npz file.
All other data in the npz file is ignored.
- Return
xarray with the contents of the loaded array
- Parameters
filename
: The npz filenamesearch_varname
: The array name to be loaded
-
template<class
E
>
voidxt
::
dump_npz
(std::string filename, std::string varname, const xt::xexpression<E> &e, bool compression = false, bool append_to_existing_file = true)¶ Save a xarray or xtensor to a NPZ file.
If a npz file with
filename
exists already, the new data is appended to the existing file by default. Note: currently no checking of name-collision is performed!- Parameters
filename
: filename to save tovarname
: desired name of the variablee
: xexpression to savecompression
: true enables compression, otherwise store uncompressed (default false)append_to_existing_file
: If true, appends new data to existing file
Images¶
Defined in xtensor-io/ximage.hpp
-
template<class
T
= unsigned char>
xarray<T>xt
::
load_image
(std::string filename)¶ Load an image from file at filename.
Storage format is deduced from file ending.
- Return
xarray with image contents. The shape of the xarray is
HEIGHT x WIDTH x CHANNELS
of the loaded image, whereCHANNELS
are ordered in standardR G B (A)
.- Parameters
filename
: The path of the file to load
-
template<class
E
>
voidxt
::
dump_image
(std::string filename, const xexpression<E> &data, dump_image_options const &options = dump_image_options())¶ Save image to disk.
The desired image format is deduced from
filename
. Supported formats are those supported by OpenImageIO. Most common formats are supported (jpg, png, gif, bmp, tiff). The shape of the array must beHEIGHT x WIDTH
orHEIGHT x WIDTH x CHANNELS
.- Parameters
filename
: The path to the desired filedata
: Image dataoptions
: Pass a dump_image_options object to fine-tune image export
Audio files¶
Defined in xtensor-io/xaudio.hpp
-
template<class
T
= short>
autoxt
::
load_audio
(std::string filename)¶ Read a WAV or OGG file This function reads a WAV file at
filename
.- Return
tuple with (samplerate, xarray holding the data). The shape of the xarray is FRAMES x CHANNELS.
- Parameters
filename
: File to load.
- Template Parameters
T
: select type (default: short, 16bit)
-
template<class
E
>
voidxt
::
dump_audio
(std::string filename, const xexpression<E> &data, int samplerate, int format = SF_FORMAT_WAV | SF_FORMAT_PCM_16)¶ Save an xarray in WAV or OGG sound file format Please consult the libsndfile documentation for more format flags.
- Parameters
filename
: save under filenamedata
: xarray/xexpression data to savesamplerate
: The samplerate of the dataformat
: select format (see sndfile documentation). Default is 16 bit PCM WAV format.
HDF5 files¶
Defined in xtensor-io/xhighfive.hpp
-
template<class
T
>
voidxt
::
dump_hdf5
(const std::string &fname, const std::string &path, const T &data, xt::file_mode fmode = xt::file_mode::create, xt::dump_mode dmode = xt::dump_mode::create)¶ Write field to a new DataSet in an HDF5 file.
- Return
dataset the newly created HighFive::DataSet (e.g. to add an attribute)
- Parameters
file
: opened HighFive::File (has to be writeable)path
: path of the DataSetdata
: the data to writedmode
: DataSet-write mode (xt::dump_mode::create | xt::dump_mode::overwrite)
-
template<class
T
>
autoxt
::
load_hdf5
(const std::string &fname, const std::string &path)¶ Load a DataSet in an open HDF5 file to an object (templated).
- Return
data the read data
- Parameters
file
: opened HighFive::File (has to be writeable)path
: path of the DataSet
-
template<class
T
>
HighFive::DataSetxt
::
dump
(HighFive::File &file, const std::string &path, const xt::xarray<T> &data, xt::dump_mode dmode = xt::dump_mode::create)¶ Write “xt::xarray<T>” to a new DataSet in an open HDF5 file.
- Return
dataset the newly created HighFive::DataSet (e.g. to add an attribute)
- Parameters
file
: opened HighFive::File (has to be writeable)path
: path of the DataSetdata
: the data to writedmode
: DataSet-write mode (xt::dump_mode::create | xt::dump_mode::overwrite)
-
template<class
T
, std::size_trank
>
HighFive::DataSetxt
::
dump
(HighFive::File &file, const std::string &path, const xt::xtensor<T, rank> &data, xt::dump_mode dmode = xt::dump_mode::create)¶ Write “xt::xtensor<T,rank>” to a new DataSet in an open HDF5 file.
- Return
dataset the newly created HighFive::DataSet (e.g. to add an attribute)
- Parameters
file
: opened HighFive::File (has to be writeable)path
: path of the DataSetdata
: the data to writedmode
: DataSet-write mode (xt::dump_mode::create | xt::dump_mode::overwrite)
-
template<class
T
>
HighFive::DataSetxt
::
dump
(HighFive::File &file, const std::string &path, const std::vector<T> &data, xt::dump_mode dmode = xt::dump_mode::create)¶ Write “std::vector<T>” to a new DataSet in an open HDF5 file.
- Return
dataset the newly created HighFive::DataSet (e.g. to add an attribute)
- Parameters
file
: opened HighFive::File (has to be writeable)path
: path of the DataSetdata
: the data to writedmode
: DataSet-write mode (xt::dump_mode::create | xt::dump_mode::overwrite)
-
template<class
T
>
HighFive::DataSetxt
::
dump
(HighFive::File &file, const std::string &path, const T &data, xt::dump_mode dmode = xt::dump_mode::create)¶ Write scalar/string to a new DataSet in an open HDF5 file.
- Return
dataset the newly created HighFive::DataSet (e.g. to add an attribute)
- Parameters
file
: opened HighFive::File (has to be writeable)path
: path of the DataSetdata
: the data to writedmode
: DataSet-write mode (xt::dump_mode::create | xt::dump_mode::overwrite)
-
template<class
T
>
HighFive::DataSetxt
::
dump
(HighFive::File &file, const std::string &path, const T &data, const std::vector<std::size_t> &idx)¶ Write a scalar to a (new, extendible) DataSet in an open HDF5 file.
- Return
dataset the (newly created) HighFive::DataSet (e.g. to add an attribute)
- Parameters
file
: opened HighFive::File (has to be writeable)path
: path of the DataSetdata
: the data to writeidx
: the indices to which to write
-
template<class
T
>
autoxt
::
load
(const HighFive::File &file, const std::string &path, const std::vector<std::size_t> &idx)¶ Load entry “{i,…}” from a DataSet in an open HDF5 file to a scalar.
- Return
data the read data
- Parameters
file
: opened HighFive::File (has to be writeable)idx
: the indices to loadpath
: path of the DataSet
-
template<class
T
>
autoxt
::
load
(const HighFive::File &file, const std::string &path)¶ Load a DataSet in an open HDF5 file to an object (templated).
- Return
data the read data
- Parameters
file
: opened HighFive::File (has to be writeable)path
: path of the DataSet
-
bool
xt::extensions
::
exist
(const HighFive::File &file, const std::string &path)¶ Check if a path exists (is a Group or DataSet) in an open HDF5 file.
- Parameters
file
: opened HighFive::Filepath
: path of the Group/DataSet
-
void
xt::extensions
::
create_group
(HighFive::File &file, const std::string &path)¶ Recursively create groups in an open HDF5 file such that a DataSet can be created.
For example if the path = “/path/to/dataset”, this function will create the groups “/path” and “/path/to”.
- Parameters
file
: opened HighFive::Filepath
: path of the DataSet
-
std::size_t
xt::extensions
::
size
(const HighFive::File &file, const std::string &path)¶ Get the size of an existing DataSet in an open HDF5 file.
- Return
size the size of the HighFive::DataSet
- Parameters
file
: opened HighFive::Filepath
: path of the DataSet
-
std::vector<std::size_t>
xt::extensions
::
shape
(const HighFive::File &file, const std::string &path)¶ Get the shape of an existing DataSet in an open HDF5 file.
- Return
shape the shape of the HighFive::DataSet
- Parameters
file
: opened HighFive::Filepath
: path of the DataSet
GDAL files¶
Defined in xtensor-io/xgdal.hpp
-
template<typename
T
>
xtensor<T, 3>xt
::
load_gdal
(const std::string &file_path, load_gdal_options options = {})¶ Load pixels from a GDAL dataset.
- Return
pixels; band sequential by default, but index order is controlled by options.
- Template Parameters
T
: the type of pixels to return. If it doesn’t match the content of the raster, GDAL will silently cast to this data type (which may cause loss of precision).
- Parameters
file_path
: the file to open.options
: options to use when loading.
-
template<typename
T
>
xtensor<T, 3>xt
::
load_gdal
(GDALDatasetH dataset, load_gdal_options options = {})¶ Load pixels from an opened GDAL dataset.
- Return
pixels; band sequential by default, but index order is controlled by options.
- Template Parameters
T
: in type of pixels to return. If this doesn’t match the content of the dataset, GDAL will silently cast to this data type (which may cause loss of precision).
- Parameters
dataset
: an opened GDAL dataset.options
: options to used when loading.
-
struct
xt
::
load_gdal_options
¶ Options for loading a GDAL dataset.
Public Functions
-
load_gdal_options
()¶ Load every band and return band-sequential memory (index order = [band, row, column]).
Public Members
-
layout
interleave
¶ The desired layout of the returned tensor - defaults to band sequential([band, row, col]).
Arbitrary index order is supported, like band interleaved by pixel ([row, col, band]).
-
std::vector<int>
bands_to_load
¶ The indices of bands to read from the dataset.
All bands are read if empty.
- Remark
Per GDAL convention, these indices start at one (not zero).
-
std::function<void(const std::string&)>
error_handler
¶ The error handler used to report errors (like file missing or a read fails).
By default, a std::runtime_error is thrown when an error is encountered
-
-
template<typename
T
>
GDALDatasetHxt
::
dump_gdal
(const xexpression<T> &e, const std::string &path, dump_gdal_options options = {})¶ Dump a 2D or 3D xexpression to a GDALDataset.
- Return
nullptr by default, or, an open dataset if dump_gdal_options.return_opened_dataset (user must close).
- Parameters
e
: data to dump; must evaluate to a 2D or 3D shape.path
: where to save the data.options
: options to use when dumping.
-
struct
dump_gdal_options
¶ Options for dumping a GDAL dataset.
xfile_array¶
Defined in xtensor-io/xfile_array.hpp
-
template<class
E
, classIOH
>
classxfile_array_container
: public xaccessible<xfile_array_container<E, IOH>>, public xiterable<xfile_array_container<E, IOH>>, public xcontainer_semantic<xfile_array_container<E, IOH>>¶ Dense multidimensional file-backed cached container with tensor semantic.
The xfile_array_container class implements a dense multidimensional container with tensor semantic, stored on a file system. It acts as a file-backed cached container, allowing for data persistence.
- See
- Template Parameters
E
: The type of the container holding the elementsIOH
: The type of the IO handler (e.g. xio_disk_handler)
-
using
xt
::
xfile_array
= xfile_array_container<xarray<T, L, A, SA>, IOH>¶
xchunk_store_manager¶
Defined in xtensor-io/xchunk_store_manager.hpp
-
template<class
EC
, classIP
= xindex_path>
classxchunk_store_manager
: public xaccessible<xchunk_store_manager<EC, IP>>, public xiterable<xchunk_store_manager<EC, IP>>¶ Multidimensional chunk container and manager.
The xchunk_store_manager class implements a multidimensional chunk container. Chunks are managed in a pool, allowing for a limited number of chunks that can simultaneously be hold in memory, by swapping chunks when the pool is full. Should not be used directly, instead use chunked_file_array factory functions.
- Template Parameters
EC
: The type of a chunk (e.g. xfile_array)IP
: The type of the index-to-path transformer (default: xindex_path)
chunked_file_array¶
Defined in xtensor-io/xchunk_store_manager.hpp
Warning
doxygenfunction: Unable to resolve multiple matches for function “xt::chunked_file_array” with arguments (()) in doxygen xml output for project “xtensor-io” from directory: ../xml. Potential matches:
- template<class IOH, layout_type L = XTENSOR_DEFAULT_LAYOUT, class IP = xindex_path, class EXT = empty_extension, class E, class S> xchunked_array<xchunk_store_manager<xfile_array<typename E::value_type, IOH, L>, IP>, EXT> chunked_file_array(const xexpression<E> &e, S &&chunk_shape, const std::string &path, std::size_t pool_size = 1, layout_type chunk_memory_layout = XTENSOR_DEFAULT_LAYOUT)
- template<class IOH, layout_type L = XTENSOR_DEFAULT_LAYOUT, class IP = xindex_path, class EXT = empty_extension, class E> xchunked_array<xchunk_store_manager<xfile_array<typename E::value_type, IOH, L>, IP>, EXT> chunked_file_array(const xexpression<E> &e, const std::string &path, std::size_t pool_size = 1, layout_type chunk_memory_layout = XTENSOR_DEFAULT_LAYOUT)
- template<class T, class IOH, layout_type L = XTENSOR_DEFAULT_LAYOUT, class IP = xindex_path, class EXT = empty_extension, class S> xchunked_array<xchunk_store_manager<xfile_array<T, IOH, L>, IP>, EXT> chunked_file_array(S &&shape, S &&chunk_shape, const std::string &path, const T &init_value, std::size_t pool_size = 1, layout_type chunk_memory_layout = XTENSOR_DEFAULT_LAYOUT)
- template<class T, class IOH, layout_type L = XTENSOR_DEFAULT_LAYOUT, class IP = xindex_path, class EXT = empty_extension, class S> xchunked_array<xchunk_store_manager<xfile_array<T, IOH, L>, IP>, EXT> chunked_file_array(S &&shape, S &&chunk_shape, const std::string &path, std::size_t pool_size = 1, layout_type chunk_memory_layout = XTENSOR_DEFAULT_LAYOUT)