59 TimeSeries(
const std::string& path, std::shared_ptr<IO::BaseIO> io);
78 const std::vector<SizeType>& positionOffset,
79 const void* dataInput,
80 const void* timestampsInput =
nullptr,
81 const void* controlInput =
nullptr);
114 const std::string& unit,
115 const std::string& description =
"no description",
116 const std::string& comments =
"no comments",
117 const float& conversion = 1.0f,
118 const float& resolution = -1.0f,
119 const float& offset = 0.0f,
121 const double& startingTime = -1.0,
122 const float& startingTimeRate = 1.0f,
123 const std::vector<std::string>& controlDescription = {});
144 Description of the series)
156 Scalar to multiply each element in data to convert it
157 to the specified unit)
162 Scalar to add to the data after scaling by conversion
163 to finalize its coercion to the specified unit)
168 Smallest meaningful difference between values in data)
173 Base unit of measurement for working with the data)
178 Continuity of the data)
184 Timestamp of the first sample in seconds)
188 "starting_time/rate",
193 "starting_time/unit",
194 Unit of measurement for time fixed to seconds)
200 Timestamps offset in seconds relative to the master time for samples stored in data)
204 "timestamps/interval",
210 Unit of measurement for timestamps fixed to seconds)
216 Numerical labels that apply to each time point in data)
221 "control_description",
222 Description of each control value)
245 const
float& conversion,
246 const
float& resolution,
248 const std::
string& unit,
AQNWB::Types::Status Status
Definition BaseIO.hpp:22
#define REGISTER_SUBCLASS(T, NAMESPACE)
Macro to register a subclass with the RegisteredType class registry.
Definition RegisteredType.hpp:410
#define DEFINE_ATTRIBUTE_FIELD(name, default_type, fieldPath, description)
Defines a lazy-loaded attribute field accessor function.
Definition RegisteredType.hpp:443
#define DEFINE_DATASET_FIELD(readName, writeName, default_type, fieldPath, description)
Defines a lazy-loaded dataset field accessor function.
Definition RegisteredType.hpp:475
The configuration for an array dataset.
Definition BaseIO.hpp:200
Represents a base data type.
Definition BaseIO.hpp:43
static const BaseDataType F64
Accessor for 64-bit floating point.
Definition BaseIO.hpp:84
static const BaseDataType U8
Accessor for unsigned 8-bit integer.
Definition BaseIO.hpp:75
Container(const std::string &path, std::shared_ptr< IO::BaseIO > io)
Constructor.
Definition Container.cpp:10
Status initialize()
Initialize the container.
Definition Container.cpp:20
std::unique_ptr< IO::ReadDataWrapper< DatasetField, VTYPE > > readControlDescription() const
std::unique_ptr< IO::ReadDataWrapper< DatasetField, VTYPE > > readControl() const
std::shared_ptr< IO::BaseRecordingData > recordControl(bool reset=false)
static std::map< ContinuityType, std::string > ContinuityTypeNames
String names corresponding to the ContinuityType enum.
Definition TimeSeries.hpp:52
std::unique_ptr< IO::ReadDataWrapper< DatasetField, VTYPE > > readStartingTime() const
std::unique_ptr< IO::ReadDataWrapper< AttributeField, VTYPE > > readStartingTimeUnit() const
std::shared_ptr< IO::BaseRecordingData > recordTimestamps(bool reset=false)
IO::BaseDataType controlType
Data type of the control (uint8).
Definition TimeSeries.hpp:138
~TimeSeries()
Destructor.
Definition TimeSeries.cpp:26
Status writeData(const std::vector< SizeType > &dataShape, const std::vector< SizeType > &positionOffset, const void *dataInput, const void *timestampsInput=nullptr, const void *controlInput=nullptr)
Writes a timeseries data block to the file.
Definition TimeSeries.cpp:150
std::shared_ptr< IO::BaseRecordingData > recordData(bool reset=false)
std::unique_ptr< IO::ReadDataWrapper< AttributeField, VTYPE > > readStartingTimeRate() const
TimeSeries(const std::string &path, std::shared_ptr< IO::BaseIO > io)
Constructor.
Definition TimeSeries.cpp:20
std::shared_ptr< IO::BaseRecordingData > recordStartingTime(bool reset=false)
std::unique_ptr< IO::ReadDataWrapper< AttributeField, VTYPE > > readDataUnit() const
IO::BaseDataType timestampsType
Data type of the timestamps (float64).
Definition TimeSeries.hpp:133
Status createTimestampsAttributes(const std::string &path)
Convenience function for creating timestamp related attributes.
Definition TimeSeries.cpp:55
std::unique_ptr< IO::ReadDataWrapper< AttributeField, VTYPE > > readTimestampsInterval() const
std::unique_ptr< IO::ReadDataWrapper< AttributeField, VTYPE > > readDataContinuity() const
std::shared_ptr< IO::BaseRecordingData > recordControlDescription(bool reset=false)
std::unique_ptr< IO::ReadDataWrapper< DatasetField, VTYPE > > readData() const
std::unique_ptr< IO::ReadDataWrapper< AttributeField, VTYPE > > readDataOffset() const
std::unique_ptr< IO::ReadDataWrapper< DatasetField, VTYPE > > readTimestamps() const
std::unique_ptr< IO::ReadDataWrapper< AttributeField, VTYPE > > readComments() const
ContinuityType
Definition TimeSeries.hpp:27
@ Continuous
Definition TimeSeries.hpp:29
@ Undefined
Definition TimeSeries.hpp:36
@ Instantaneous
Definition TimeSeries.hpp:31
@ Step
Definition TimeSeries.hpp:34
IO::BaseDataType m_dataType
Data type of the data.
Definition TimeSeries.hpp:128
Status createDataAttributes(const std::string &path, const float &conversion, const float &resolution, const float &offset, const std::string &unit, const ContinuityType &continuity)
Convenience function for creating data related attributes.
Definition TimeSeries.cpp:28
std::unique_ptr< IO::ReadDataWrapper< AttributeField, VTYPE > > readTimestampsUnit() const
std::unique_ptr< IO::ReadDataWrapper< AttributeField, VTYPE > > readDataResolution() const
std::unique_ptr< IO::ReadDataWrapper< AttributeField, VTYPE > > readDescription() const
std::unique_ptr< IO::ReadDataWrapper< AttributeField, VTYPE > > readDataConversion() const
Namespace for all classes related to the NWB data standard.
Definition TimeSeries.hpp:13
const std::string namespaceName
Definition core.hpp:21