TimeSeriesWriter Class Reference

Kynema API: kynema::util::TimeSeriesWriter Class Reference
Kynema API
A flexible multibody structural dynamics code for wind turbines
Loading...
Searching...
No Matches
kynema::util::TimeSeriesWriter Class Reference

Class for writing time-series data to NetCDF file. More...

#include <time_series_writer.hpp>

Public Member Functions

 TimeSeriesWriter (const std::string &file_path, bool create=true)
 Constructor to create a TimeSeriesWriter object for writing time-series data with a single variable.
 
 TimeSeriesWriter (const std::string &file_path, bool create, const std::vector< std::string > &channel_names, const std::vector< std::string > &channel_units={}, size_t buffer_size=kDefaultBufferSize)
 Constructor to create a TimeSeriesWriter with predefined channels and buffering.
 
 ~TimeSeriesWriter ()
 Destructor flushes any remaining buffered rows.
 
 TimeSeriesWriter (const TimeSeriesWriter &)=delete
 
TimeSeriesWriteroperator= (const TimeSeriesWriter &)=delete
 
 TimeSeriesWriter (TimeSeriesWriter &&)=delete
 
TimeSeriesWriteroperator= (TimeSeriesWriter &&)=delete
 
void WriteValuesAtTimestep (const std::string &variable_name, size_t timestep, std::span< const double > values)
 Writes multiple values for a time-series variable at a specific timestep.
 
void WriteValueAtTimestep (const std::string &variable_name, size_t timestep, const double &value)
 Writes a single value for a time-series variable at a specific timestep.
 
void WriteRowAtTimestep (size_t timestep, std::span< const double > row)
 Writes a full row (all channels) at a specific timestep.
 
void Flush ()
 Flushes any remaining buffered rows.
 
void Close ()
 Manually closes the underlying NetCDF file and flush any remaining buffered rows.
 
void Open ()
 Manually (re)opens the underlying NetCDF file.
 
const NetCdfFileGetFile () const
 Gets the NetCDF file object.
 
const std::vector< std::string > & GetChannelNames () const
 Gets the channel names.
 
const std::vector< std::string > & GetChannelUnits () const
 Gets the channel units.
 
size_t GetNumChannels () const
 Gets the number of channels.
 
size_t GetBufferSize () const
 Gets the buffer size.
 

Static Public Attributes

static constexpr size_t kDefaultBufferSize {0}
 Default buffer size (number of rows to accumulate before auto-flush, 0 = no buffering)
 

Detailed Description

Class for writing time-series data to NetCDF file.

Constructor & Destructor Documentation

◆ TimeSeriesWriter() [1/4]

kynema::util::TimeSeriesWriter::TimeSeriesWriter ( const std::string &  file_path,
bool  create = true 
)
explicit

Constructor to create a TimeSeriesWriter object for writing time-series data with a single variable.

Parameters
file_pathPath to the output NetCDF file
createWhether to create a new file or open an existing one

◆ TimeSeriesWriter() [2/4]

kynema::util::TimeSeriesWriter::TimeSeriesWriter ( const std::string &  file_path,
bool  create,
const std::vector< std::string > &  channel_names,
const std::vector< std::string > &  channel_units = {},
size_t  buffer_size = kDefaultBufferSize 
)

Constructor to create a TimeSeriesWriter with predefined channels and buffering.

Parameters
file_pathPath to the output NetCDF file
createWhether to create a new file or open an existing one
channel_namesNames of the channels (columns) stored in the time-series variable
channel_unitsOptional units for each channel (same size as channel_names if provided)
buffer_sizeNumber of rows to buffer before auto-flush (0 = no buffering)

◆ ~TimeSeriesWriter()

kynema::util::TimeSeriesWriter::~TimeSeriesWriter ( )

Destructor flushes any remaining buffered rows.

◆ TimeSeriesWriter() [3/4]

kynema::util::TimeSeriesWriter::TimeSeriesWriter ( const TimeSeriesWriter )
delete

◆ TimeSeriesWriter() [4/4]

kynema::util::TimeSeriesWriter::TimeSeriesWriter ( TimeSeriesWriter &&  )
delete

Member Function Documentation

◆ Close()

void kynema::util::TimeSeriesWriter::Close ( )

Manually closes the underlying NetCDF file and flush any remaining buffered rows.

◆ Flush()

void kynema::util::TimeSeriesWriter::Flush ( )

Flushes any remaining buffered rows.

◆ GetBufferSize()

size_t kynema::util::TimeSeriesWriter::GetBufferSize ( ) const

Gets the buffer size.

◆ GetChannelNames()

const std::vector< std::string > & kynema::util::TimeSeriesWriter::GetChannelNames ( ) const

Gets the channel names.

◆ GetChannelUnits()

const std::vector< std::string > & kynema::util::TimeSeriesWriter::GetChannelUnits ( ) const

Gets the channel units.

◆ GetFile()

const NetCdfFile & kynema::util::TimeSeriesWriter::GetFile ( ) const

Gets the NetCDF file object.

◆ GetNumChannels()

size_t kynema::util::TimeSeriesWriter::GetNumChannels ( ) const

Gets the number of channels.

◆ Open()

void kynema::util::TimeSeriesWriter::Open ( )

Manually (re)opens the underlying NetCDF file.

◆ operator=() [1/2]

TimeSeriesWriter & kynema::util::TimeSeriesWriter::operator= ( const TimeSeriesWriter )
delete

◆ operator=() [2/2]

TimeSeriesWriter & kynema::util::TimeSeriesWriter::operator= ( TimeSeriesWriter &&  )
delete

◆ WriteRowAtTimestep()

void kynema::util::TimeSeriesWriter::WriteRowAtTimestep ( size_t  timestep,
std::span< const double >  row 
)

Writes a full row (all channels) at a specific timestep.

Parameters
timestepCurrent timestep index
rowVector of values to write at the current timestep

◆ WriteValueAtTimestep()

void kynema::util::TimeSeriesWriter::WriteValueAtTimestep ( const std::string &  variable_name,
size_t  timestep,
const double &  value 
)

Writes a single value for a time-series variable at a specific timestep.

Parameters
variable_nameName of the variable to write
timestepCurrent timestep index
valueValue to write at the current timestep

◆ WriteValuesAtTimestep()

void kynema::util::TimeSeriesWriter::WriteValuesAtTimestep ( const std::string &  variable_name,
size_t  timestep,
std::span< const double >  values 
)

Writes multiple values for a time-series variable at a specific timestep.

Parameters
variable_nameName of the variable to write
timestepCurrent timestep index
valuesVector of values to write at the current timestep

Member Data Documentation

◆ kDefaultBufferSize

constexpr size_t kynema::util::TimeSeriesWriter::kDefaultBufferSize {0}
staticconstexpr

Default buffer size (number of rows to accumulate before auto-flush, 0 = no buffering)


The documentation for this class was generated from the following files: