3.7 Layout and Data Transformations
SDDS++ provides transformation operations without requiring an application to reimplement the SDDS
type system:
- LayoutEditor copies, renames, replaces, drops, or adds parameter, array, column, and
associate definitions.
- RowView reads an individual row without copying column data.
- RowMask supports intersection, union, inversion, and typed row matching. Page::filtered
applies a mask to a page.
- convertScalar and convertValues perform checked conversions with an explicit rounding
policy where necessary.
- convertUnits changes a field’s units and multiplies its data in one operation, keeping
metadata and values consistent.
- Page::matrix<T> creates a contiguous row-major DenseMatrix<T> from selected numeric
columns using exact types or checked conversion.
- copyDataset streams pages through optional layout and page transformations without
materializing the complete input file.
Transformation output is governed by the originating reader’s resource limits. Layout transformations
supplied to copyDataset should agree with the page transformations; the destination writer validates each
resulting page against the transformed layout.