Column Data¶
General description¶
Data packet of the column data type contains a generic nsamples-by-ncolumns array of data when each column as a label associated.
Payload details¶
name |
type |
description |
|---|---|---|
labels |
vector of ncolumn strings |
a string name for each column |
signal |
vector of any datatype |
API¶
-
template<typename T>
class Data : public IData<Data<T>, ParentType> Public Types
-
using BaseClass = IData<Data<T>, ParentType>
Public Functions
-
inline Data(const std::vector<std::string> &labels, size_t nsamples)
Data constructor with the labels for each column and the number of samples.
- Parameters
labels – give a label for each column
nsamples – give the number of samples
-
inline Data(const Parameters ¶meters)
Data constructor from the parameters object.
- Parameters
parameters –
-
inline void ClearData() override
ClearData - clear the data.
-
inline Parameters parameters() const
-
inline size_t ncolumns() const
-
inline size_t nsamples() const
-
inline std::vector<std::string> labels() const
-
inline void set_data_column(std::string column, const std::vector<T> &data)
set_data_column set all samples for one column based on the name of the column
- Parameters
column – - selected column name
data – - vector containing data for all samples
-
inline void set_data_column(size_t column, const std::vector<T> &data)
set_data_column set all samples for one column based on the column index
- Parameters
column – - selected column index
data – - vector containing data for all samples
-
inline void set_data_sample(size_t sample, const std::vector<T> &data)
set_data_sample set column data for one sample
- Parameters
sample – - selected sample index
data – - vector containing data for all columns
-
inline void set_data_sample(size_t sample, size_t column, T data)
set_data_sample set one data for one column index and one sample index
- Parameters
sample – - selected sample index
column – - selected column index
data –
-
inline void set_data_sample(size_t sample, std::string column, T data)
set_data_sample set one data for one column label and one sample index
- Parameters
sample – - selected sample index
column – - selected column label
data –
-
inline std::vector<T> &data()
data - return full data with this format [c1s1, c1s2.., c1sn, c2s1, c2s2 …, cns1,…cnsn]
- Returns
-
inline const std::vector<T> &data() const
-
inline const T &data_sample(size_t sample, size_t column = 0) const
data_sample - return the data for one sample index and one column index
- Parameters
sample – - selected sample index
column – - selected column index
- Returns
-
inline const T &data_sample(size_t sample, std::string column) const
data_sample - return the data for one sample index and one column label
- Parameters
sample – - selected sample index
column – - selected column label
- Returns
-
inline T &operator()(size_t sample, size_t column = 0)
-
inline const T &operator()(size_t sample, size_t column = 0) const
-
inline T &operator()(size_t sample, std::string column)
-
inline const T &operator()(size_t sample, std::string column) const
-
inline T &operator()(size_t index)
-
inline const T &operator()(size_t index) const
-
inline T *begin_sample(size_t sample)
begin_sample iterator at the start of a sample index
- Parameters
sample –
- Returns
-
inline T *end_sample(size_t sample)
end_sample iterator at the end of a sample index
- Parameters
sample –
- Returns
-
inline const T *begin_sample(size_t sample) const
-
inline const T *end_sample(size_t sample) const
-
inline stride_iter<T*> begin_column(size_t column)
begin_column iterator at the start of the column based on the location in the dataset
- Parameters
column – - column index
- Returns
-
inline stride_iter<T*> end_column(size_t column)
end_column - iterator at the end of the column based on the location in the dataset
- Parameters
column – - column index
- Returns
-
inline stride_iter<T*> begin_column(std::string column)
begin_column - iterator at the start of the column based on name of the column
- Parameters
column – - column label
- Returns
-
inline stride_iter<T*> end_column(std::string column)
end_column - iterator at the end of the column based on name of the column
- Parameters
column – - column label
- Returns
-
inline void SerializeBinary(std::ostream &stream, Serialization::Format format = Serialization::Format::FULL) const override
SerializeBinary - add to the binary stream the data [columnxsample].
- Parameters
stream –
format –
-
inline void SerializeFlatBuffer(flexbuffers::Builder &flex_builder) override
SerializeFlatBuffer - add to the flexbuffer the data labeled [label0:nsamples, label1:nsamples…], the number of columns and the number of samples.
- Parameters
flex_builder –
-
inline void SerializeYAML(YAML::Node &node, Serialization::Format format = Serialization::Format::FULL) const override
SerializeYAML - add to the yaml node the data [columnxsample].
- Parameters
node –
format –
-
inline void YAMLDescription(YAML::Node &node, Serialization::Format format = Serialization::Format::FULL) const override
YAMLDescription - this datatype add to the metadata describing the data format the signal, number of columns and samples format.
- Parameters
format –
-
inline T sum_column(std::string column, bool absolute = false) const
sum_column - compute the (absolute) sum of all samples in the same column
- Parameters
column – - column label
absolute – - absolute sum or not
- Returns
(absolute) sum
-
inline T sum_column(size_t column, bool absolute = false) const
sum_column - compute the (absolute) sum of all samples in the same column
- Parameters
column – - column index
absolute – - absolute sum or not
- Returns
(absolute) sum
-
inline T mean_column(std::string column, bool absolute = false) const
mean_column - compute the mean of the (absolute) sum of all samples in the same column
- Parameters
column – - column label
absolute – - absolute sum or not
- Returns
mean of the (absolute) sum
-
inline T mean_column(size_t column, bool absolute = false) const
mean_column - compute the mean of the (absolute) sum of all samples in the same column
- Parameters
column – - column index
absolute – - absolute sum or not
- Returns
mean of the (absolute) sum
-
inline T sum_sample(size_t sample, bool absolute = false) const
sum_sample - compute the (absolute) sum of all column data for the same sample index
- Parameters
sample – - sample index
absolute – - absolute sum or not
- Returns
(absolute) sum
-
inline T mean_sample(size_t sample, bool absolute = false) const
mean_sample - compute the mean of the (absolute) sum of all column data for the same sample index
- Parameters
sample – - sample index
absolute – - absolute sum or not
- Returns
the mean of the (absolute) sum
Public Static Functions
-
static inline const std::string static_datatype()
-
static inline const std::string static_dataname()
-
using BaseClass = IData<Data<T>, ParentType>
Parameters¶
name |
type |
description |
validation |
|---|---|---|---|
nsample |
unsigned int |
0 |
Number of samples cannot be zero and needs to be in range |
nchannels |
unsigned int |
0 |
Number of channels cannot be zero and needs to be in range |
sample_rate |
double |
1.0 |
Sample rate needs to be larger than 0 |
-
struct Parameters
Subclassed by nsTimeSeries::Parameters
Public Functions
-
inline Parameters(const std::vector<std::string> &labels, size_t nsamp = 0)
Public Members
-
size_t ncolumns
-
size_t nsamples
-
std::vector<std::string> labels
-
inline Parameters(const std::vector<std::string> &labels, size_t nsamp = 0)
Capabilities¶
name |
type |
default |
description |
|---|---|---|---|
column range |
ChannelRange or Range<unsigned int> |
(none) |
the number of channels that is supported |
sample range |
SampleRange or Range<size_t> |
[1, (maximum of the datatype can hold)] |
the number of samples that is supported |
OR
name |
type |
default |
description |
|---|---|---|---|
labels |
vector of string |
(none) |
name of all channels supported in input |
sample range |
SampleRange or Range<size_t> |
[1, (maximum of the datatype can hold)] |
the number of samples that is supported |
-
class Capabilities
Public Functions
-
inline Capabilities(ChannelRange column_range, SampleRange sample_range = SampleRange(1, std::numeric_limits<uint32_t>::max()))
-
inline Capabilities(std::vector<std::string> labels, SampleRange sample_range = SampleRange(1, std::numeric_limits<uint32_t>::max()))
-
inline ChannelRange column_range() const
-
inline SampleRange sample_range() const
-
inline Capabilities(ChannelRange column_range, SampleRange sample_range = SampleRange(1, std::numeric_limits<uint32_t>::max()))
Binary Serialization¶
For serialization formats FULL and COMPACT, The timestamps and the data are serialized.
YAML Serialization¶
For serialization formats FULL and COMPACT,
the following YAML is emitted:
label: [label] signal: [data]