Princeton TriVista TVF¶
Status: Supported · Vendor: Princeton Instruments · Extensions:
.tvf
TVF is the file format written for Princeton Instruments TriVista triple-stage Raman spectrometers. Despite the historical “binary spectroscopy file” wording, the observed files are XML documents with ASCII frame payloads. nirs4all-formats emits one record per frame, covering single spectra, time series, line scans, maps and Step-and-Glue acquisitions. The format is Raman, adjacent to the core NIRS point-spectrum scope.
Instruments & software¶
Produced by TriVista software for Princeton Instruments TriVista multi-spectrometer (triple-stage) Raman systems, including single/multi-frame acquisitions, time series, line scans, XY maps and Step-and-Glue stitching.
File structure¶
The reader sniffs .tvf by content (<XmlMain plus TriVista-File). The
document is an XmlMain / Document container:
spectral values live in semicolon-separated
Frametext nodes;the spectral axis is a pipe-separated
xDim/Calibration@ValueArraywhose first field declares the point count (non-uniform axes supported);xDim@Lengthis checked against the calibration array, andFrame@xDimagainst the resolved axis length;the escaped
InfoSerializedattribute carriesExperiment,Detector,Calibration,X-Axis,Y-Axisand numberedSpectrometergroups.
What nirs4all-formats extracts¶
Signals — one
SpectralRecordper frame; signal units are inferred only whenDataLabelclearly denotes counts.Axis — values from
xDim/Calibration; the axis kind followsCalibration@Unit(not assumed wavelength-only). Axis metadata keeps the calibration label, normalised unit, display unit, calibration type and laser wavelength when present.Metadata —
InfoSerializedX/Y navigation mapped tospatial_x,spatial_yand frame indices (units preserved when present, otherwise reported asunknown); detector and one-or-many spectrometer groups promoted to metadata (serial/model/stage/focal length/groove density/order arrays for triple-stage setups);detector_temperature_c; and Windows FILETIME frame timestamps mapped totime_filetime_100nsandelapsed_time_seconds.Step-and-Glue — emits the primary glued spectrum plus each child document as separate records, preserving the source windows.
Variants & support status¶
Variant |
Status |
Notes |
|---|---|---|
Single / multi-frame, averaged or not |
Supported |
One record per frame. |
Time series |
Supported |
Elapsed time derived from frame timestamps. |
Line scan / XY map |
Supported |
X/Y navigation in metadata. |
Multi-spectrometer (triple-stage) |
Supported |
Numbered spectrometer groups promoted. |
Step-and-Glue |
Supported |
Glued primary plus child windows as separate records. |
Limitations & known gaps¶
Objective metadata and unsupported hardware-specific
InfoSerializedbranches are left to a later conformance pass.Spatial units absent from the current fixtures are reported as
unknownrather than invented.Variants outside the committed corpus have no explicit scope decision yet, and automated full-array conformance against
rsciio.trivistais still pending.
Reference readers¶
Layout and fixture behaviour cross-checked against rsciio.trivista 0.13.0.
RosettaSciIO defaults to the glued spectrum for Step-and-Glue; nirs4all-formats also
emits child documents so low-level consumers can inspect the source windows.
Samples & validation¶
The RosettaSciIO .tvf corpus under samples/raman_trivista/ is fully
golden-backed: single/multi-frame averages, two-accumulation variants,
multi-spectrometer metadata, a 20-record Step-and-Glue file (glued primary plus
19 child windows), a timestamp-derived time series, a 21-point line scan and a
9-by-9 (81-record) XY map. The remaining items are conformance and metadata
work, not sample blockers.