![]() |
OpenSWMM Engine
6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
|
One fully parsed multi-column series file (raw file-unit values). More...
#include <MultiColumnSeriesFile.hpp>
Public Member Functions | |
| int | find_column (std::string_view name) const |
| Find the first non-time header matching with C-locale case folding. | |
| int | first_data_column () const |
| Select the first data column based on header shape. | |
Public Attributes | |
| std::vector< std::string > | headers |
| Header names; index 0 is the time-column label and never matches. | |
| std::vector< double > | dates |
| Row datetimes (SWMM OADate, whole file, ascending). | |
| std::vector< std::vector< double > > | columns |
columns[i] (i >= 1) aligned to dates; columns[0] is unused/empty. | |
| double | first_date = 0.0 |
| Whole-file first/last datetime (0 when the file has no data rows). | |
| double | last_date = 0.0 |
| std::vector< double > | col_first_date |
| std::vector< double > | col_last_date |
| std::vector< long > | col_periods_precip |
| cells with value > 0 | |
| std::vector< long > | col_unparsed_cells |
| value-parse failures | |
| long | unparsed_rows = 0 |
| Data rows whose datetime cell failed to parse (skipped entirely). | |
One fully parsed multi-column series file (raw file-unit values).
Rows are sorted ascending by datetime. A cell that was missing (short row) or unparseable holds a quiet NaN in its column so all columns stay aligned to dates; consumers skip NaNs on copy-out.
| int openswmm::input::ParsedSeriesFile::find_column | ( | std::string_view | name | ) | const |
Find the first non-time header matching with C-locale case folding.
Linear scan; caller prevents concurrent mutation of the owned parsed-file headers.
| [in] | name | Borrowed exact-length header bytes; no whitespace/quote cleanup occurs here. |
|
inline |
Select the first data column based on header shape.
Does not require any parsed data rows or inspect column storage.
| std::vector<double> openswmm::input::ParsedSeriesFile::col_first_date |
| std::vector<double> openswmm::input::ParsedSeriesFile::col_last_date |
| std::vector<long> openswmm::input::ParsedSeriesFile::col_periods_precip |
cells with value > 0
| std::vector<long> openswmm::input::ParsedSeriesFile::col_unparsed_cells |
value-parse failures
| std::vector<std::vector<double> > openswmm::input::ParsedSeriesFile::columns |
columns[i] (i >= 1) aligned to dates; columns[0] is unused/empty.
| std::vector<double> openswmm::input::ParsedSeriesFile::dates |
Row datetimes (SWMM OADate, whole file, ascending).
| double openswmm::input::ParsedSeriesFile::first_date = 0.0 |
Whole-file first/last datetime (0 when the file has no data rows).
| std::vector<std::string> openswmm::input::ParsedSeriesFile::headers |
Header names; index 0 is the time-column label and never matches.
| double openswmm::input::ParsedSeriesFile::last_date = 0.0 |
| long openswmm::input::ParsedSeriesFile::unparsed_rows = 0 |
Data rows whose datetime cell failed to parse (skipped entirely).