39 std::vector<std::string> signals;
40 if (options.signals.empty()) {
43 signals = options.signals;
53 std::vector<double> times = reader.
times();
54 std::vector<std::vector<double>> signal_data;
55 signal_data.reserve(signals.size());
57 for (
const auto &sig : signals) {
62 out << std::setprecision(options.precision);
65 if (options.include_header) {
67 for (
const auto &sig : signals) {
68 out << options.delimiter << sig;
74 for (
size_t i = 0; i < n_frames; ++i) {
76 for (
size_t j = 0; j < signals.size(); ++j) {
77 out << options.delimiter << signal_data[j][i];
90 const std::string &csv_path,
92 HDF5Reader reader(hdf5_path);
93 std::ofstream ofs(csv_path);
HDF5 telemetry reader for post-simulation analysis.
Exception hierarchy for Vulcan aerospace library.
File/stream I/O errors.
Definition VulcanError.hpp:27
HDF5 telemetry file reader.
Definition HDF5Reader.hpp:41
std::vector< double > times() const
Read all timestamps.
Definition HDF5Reader.hpp:65
std::vector< double > read_double(const std::string &signal) const
Read double signal.
Definition HDF5Reader.hpp:68
std::vector< std::string > signal_names() const
Get all signal names.
Definition HDF5Reader.hpp:118
size_t frame_count() const
Get number of frames in file.
Definition HDF5Reader.hpp:62
Definition CSVExport.hpp:20
void export_to_csv(const HDF5Reader &reader, std::ostream &out, const CSVExportOptions &options={})
Export HDF5 reader to output stream.
Definition CSVExport.hpp:36
CSV export options.
Definition CSVExport.hpp:23
int precision
Decimal precision for doubles.
Definition CSVExport.hpp:25
char delimiter
Column delimiter.
Definition CSVExport.hpp:24
std::vector< std::string > signals
Signal subset (empty = all).
Definition CSVExport.hpp:27
bool include_header
Include column names in first row.
Definition CSVExport.hpp:26