Data Acquisition is a Menlo Systems THz acquisition and dotTHz HDF5 project management application.
- Menlo ScanControl connection and acquisition
- Baseline, reference, and sample waveform capture
- dotTHz project storage with per-measurement HDF5 groups
- Editable measurement metadata and profile management
- HDF5 tree browsing, attribute editing, and measurement removal
- Waveform and frequency-domain dataset plotting
New projects use dotTHz 2.0, with descriptive dataset and metadata names, shared calibration hard links, relative timestamps, and optional coordinate arrays. Existing v1 projects remain readable.
Python 3.9 or newer is required.
python -m pip install -r requirements.txtpython main.pyInstall the build dependency once, then create a portable Windows release:
python -m pip install "pyinstaller>=6"
python build.pyThe portable application is written to release/DataAcquisition/, with the
executable at release/DataAcquisition/DataAcquisition.exe.
Menlo Systems ScanControl must be running and its remote interface must be available for acquisition.
catx/: models, repositories, services, and ScanControl integrationui/: PyQt6 controllers and Designer.uifilesresources/: application iconsprojects/: local dotTHz project files
Release metadata is stored in version.json.
Time-axis storage is selected in File > Settings > Acquisition:
- Conventional (default) preserves measured sample axes. Multi-scan samples stay in one collection, with an individual axis vector for each waveform.
- Shared uses the selected reference axis, or the baseline axis when no reference is selected, by storing that axis vector inside each sample waveform. Point counts must match; sample amplitudes are stored without resampling. If neither calibration is selected, measured sample axes are preserved.
Each measurement contains only the available waveform datasets: Sample, Reference, and Baseline. Each waveform has shape (2, points): row 0 is time delay in ps, and row 1 is signal amplitude. Collections have shape (..., 2, points). Timestamp (seconds, rounded to three decimal places) and optional Coordinate arrays are measurement attributes. Calibration datasets remain hard-linked across measurements. The setting applies to new acquisitions; existing data remains readable.