File Readers

Every reader in hermes_rheo.file_readers subclasses piblin.dataio.fileio.read.file_reader.FileReader and converts an exported instrument file into a MeasurementSet.

Reader-driven default coordinates. The readers install the natural per-method default coordinates on each resulting composite dataset (e.g. strain=f(time) for a Creep step, storage modulus=f(angular frequency) for a frequency sweep). To give every measurement the same placeholder Temperature=f(Temperature) axes (as in hermes-rheo 1.x), pass default_coords="uniform" on TriosRheoReader.

TA Instruments TRIOS .txt

Reads .txt files produced by TA Instruments TRIOS. Use the Export to LIMS command (TRIOS ≤5) or, on TRIOS 6.0+, Export to .txt (Full) — the plain Export to .txt option strips the step metadata this reader needs. TRIOS is available free of charge from TA Instruments.

class hermes_rheo.file_readers.trios_rheo_txt.TriosRheoReader[source]

Bases: FileReader

Reader for TA rheometer .txt exports produced by TRIOS.

Two TRIOS export paths write the full step-header metadata this reader needs:

  • TRIOS ≤5 — Export → Export to LIMS.

  • TRIOS 6.0+ — Export → Export to .txt (Full). The plain Export to .txt option strips the geometry, calibration and wave parameters and will raise a FileParsingException.

The latest TRIOS is available free of charge from TA Instruments.

Each [Step] in the file becomes one Measurement. When create_composite_datasets=True (the default) each measurement holds a single OneDimensionalCompositeDataset containing every column mapped by Y_VALUES_COLUMN_LABELS plus the appended "Temperature" coordinate.

The active (independent, dependent) coordinate pair for each measurement is controlled by the default_coords read-time keyword argument:

"natural" (default)

Use the scientifically meaningful pair for each method — see _METHOD_DEFAULTS. For example a Creep step becomes strain=f(time) and a Frequency Sweep becomes storage modulus=f(angular frequency). This yields clean print(measurement_set) output but individual measurements from a mixed-method file will have different active coordinates, so wrapping the resulting MeasurementSet directly in an ExperimentSet (which enforces consistency across measurements) can raise InconsistentMeasurementsError.

"uniform"

Every measurement gets the same placeholder pair, Temperature=f(Temperature), regardless of method. The axes are not meaningful, but they are identical across measurements, so mixed-method files can be wrapped directly in ExperimentSet. This is the behaviour of hermes-rheo 1.x; the former name "legacy-temperature" is still accepted as an alias.

Users can always override the active coordinates on any measurement with switch_coordinates().

Examples

>>> from hermes_rheo.file_readers.trios_rheo_txt import TriosRheoReader
>>> mset = TriosRheoReader().data_from_filepath(
...     "creep.txt", create_composite_datasets=True
... )
>>> ds = mset.measurements[0].datasets[0]
>>> ds.independent_variable_name, ds.dependent_variable_name
('time', 'strain')

Mixed-method files intended for ExperimentSet:

>>> mset = TriosRheoReader().data_from_filepath(
...     "mixed.txt",
...     create_composite_datasets=True,
...     default_coords="uniform",
... )
DATA_HEADER_REGEX = '\\[step\\]'
X_VALUES_COLUMN_LABEL = 'Temperature'
Y_VALUES_COLUMN_LABEL = 'Temperature'

The label for the x-values column.

Y_VALUES_COLUMN_LABELS = {'Amplitude': {'1/temperature': '1/temperature', 'Angular frequency': 'angular frequency', 'Axial force': 'axial force', 'Complex compliance': 'complex compliance', 'Complex modulus': 'complex modulus', 'Complex viscosity': 'complex viscosity', 'Date and time': 'date and time', 'Delta length': 'delta length', 'Dynamic viscosity': 'dynamic viscosity', 'Frequency': 'frequency', 'G*.sin(delta)': 'G*.sin(delta)', 'G*/sin(delta)': 'G*/sin(delta)', 'Gap': 'gap', 'Loss compliance': 'loss compliance', 'Loss modulus': 'loss modulus', 'Normal transducer': 'normal transducer', 'Oscillation displacement': 'oscillation displacement', 'Oscillation displacement (cmd)': 'oscillation displacement (cmd)', 'Oscillation normal force': 'oscillation normal force', 'Oscillation normal force average': 'oscillation normal force average', 'Oscillation normal stress': 'oscillation normal stress', 'Oscillation strain': 'oscillation strain', 'Oscillation strain (cmd)': 'oscillation strain (cmd)', 'Oscillation strain rate': 'oscillation strain rate', 'Oscillation stress': 'oscillation stress', 'Oscillation torque': 'oscillation torque', 'Out of phase component of η*': 'out of phase component of η*', 'Phase angle': 'phase angle', 'Raw Phase (Xducer displacement)': 'raw phase (xducer displacement)', 'Raw phase (normal force)': 'raw phase (normal force)', 'Raw phase (torque)': 'raw phase (torque)', 'Run time': 'run time', 'ScaleNormWaveData': 'scalenormwavedata', 'ScaleStrnWaveData': 'scalestrnwavedata', 'ScaleTorqWaveData': 'scaletorqwavedata', 'Shear rate': 'shear rate', 'Status bits': 'status bits', 'Status bits 2': 'status bits 2', 'Step time': 'step time', 'Stiffness': 'stiffness', 'Storage compliance': 'storage compliance', 'Storage modulus': 'storage modulus', 'Strain constant': 'strain constant', 'Strain ratio': 'strain ratio', 'Stress': 'stress', 'Stress (step)': 'stress (step)', 'Tan(delta)': 'tan(delta)', 'Temperature': 'temperature', 'Time': 'time', 'Torque': 'torque', 'Torque (step)': 'torque (step)', 'Torque transducer': 'torque transducer', 'Transducer range': 'transducer range', 'Velocity': 'velocity', 'Viscosity': 'viscosity', 'X-ducer Displacement': 'x-ducer displacement', 'X-ducer stiffness': 'x-ducer stiffness'}, 'Amplitude sweep': {'1/temperature': '1/temperature', 'Angular frequency': 'angular frequency', 'Axial force': 'axial force', 'Complex compliance': 'complex compliance', 'Complex modulus': 'complex modulus', 'Complex viscosity': 'complex viscosity', 'Date and time': 'date and time', 'Dynamic viscosity': 'dynamic viscosity', 'Frequency': 'frequency', 'G*.sin(delta)': 'G*.sin(delta)', 'G*/sin(delta)': 'G*/sin(delta)', 'Gap': 'gap', 'Loss compliance': 'loss compliance', 'Loss modulus': 'loss modulus', 'Normal stress': 'normal stress', 'Normal stress coefficient': 'normal stress coefficient', 'Oscillation displacement': 'oscillation displacement', 'Oscillation strain': 'oscillation strain', 'Oscillation strain (cmd)': 'oscillation strain (cmd)', 'Oscillation strain rate': 'oscillation strain rate', 'Oscillation stress': 'oscillation stress', 'Oscillation stress (cmd)': 'oscillation stress (cmd)', 'Oscillation torque': 'oscillation torque', 'Oscillation torque (sample)': 'oscillation torque (sample)', 'Out of phase component of η*': 'out of phase component of η*', 'Phase angle': 'phase angle', 'Raw phase': 'raw phase', 'Run time': 'run time', 'Shear rate': 'shear rate', 'Step time': 'step time', 'Stiffness': 'stiffness', 'Storage compliance': 'storage compliance', 'Storage modulus': 'storage modulus', 'Strain constant': 'strain constant', 'Stress': 'stress', 'Stress (step)': 'stress (step)', 'Tan(delta)': 'tan(delta)', 'Temperature': 'temperature', 'Time': 'time', 'Torque': 'torque', 'Torque (step)': 'torque (step)', 'Velocity': 'velocity', 'Viscosity': 'viscosity'}, 'Arbitrary Wave': {'Compliance': 'compliance', 'Modulus': 'modulus', 'Normal stress': 'normal stress', 'Shear rate': 'shear rate', 'Step time': 'step time', 'Strain': 'strain', 'Strain (step)': 'strain (step)', 'Strain constant': 'strain constant', 'Stress': 'stress', 'Stress (step)': 'stress (step)', 'Temperature': 'temperature', 'Time': 'time', 'Torque': 'torque', 'Velocity': 'velocity', 'Viscosity': 'viscosity'}, 'Axial': {'1/temperature': '1/temperature', 'Axial force': 'axial force', 'Compliance': 'compliance', 'Date and time': 'date and time', 'Displacement': 'displacement', 'Gap': 'gap', 'Modulus': 'modulus', 'Normal stress': 'normal stress', 'Normal stress coefficient': 'normal stress coefficient', 'Run time': 'run time', 'Shear rate': 'shear rate', 'Step time': 'step time', 'Strain': 'strain', 'Strain constant': 'strain constant', 'Stress': 'stress', 'Temperature': 'temperature', 'Termination reason': 'termination reason', 'Time': 'time', 'Torque': 'torque', 'Variables': 'variables', 'Velocity': 'velocity', 'Viscosity': 'viscosity'}, 'Correlated': {'1/temperature': '1/temperature', 'Angular frequency': 'angular frequency', 'Axial force': 'axial force', 'Complex compliance': 'complex compliance', 'Complex modulus': 'complex modulus', 'Complex viscosity': 'complex viscosity', 'Date and time': 'date and time', 'Dynamic viscosity': 'dynamic viscosity', 'Frequency': 'frequency', 'G*.sin(delta)': 'G*.sin(delta)', 'G*/sin(delta)': 'G*/sin(delta)', 'Gap': 'gap', 'Loss compliance': 'loss compliance', 'Loss modulus': 'loss modulus', 'Normal stress': 'normal stress', 'Normal stress coefficient': 'normal stress coefficient', 'Oscillation displacement': 'oscillation displacement', 'Oscillation strain': 'oscillation strain', 'Oscillation strain (cmd)': 'oscillation strain (cmd)', 'Oscillation strain rate': 'oscillation strain rate', 'Oscillation stress': 'oscillation stress', 'Oscillation stress (cmd)': 'oscillation stress (cmd)', 'Oscillation torque': 'oscillation torque', 'Oscillation torque (sample)': 'oscillation torque (sample)', 'Out of phase component of η*': 'out of phase component of η*', 'Phase angle': 'phase angle', 'Raw phase': 'raw phase', 'Run time': 'run time', 'Shear rate': 'shear rate', 'Step time': 'step time', 'Stiffness': 'stiffness', 'Storage compliance': 'storage compliance', 'Storage modulus': 'storage modulus', 'Strain constant': 'strain constant', 'Stress': 'stress', 'Stress (step)': 'stress (step)', 'Tan(delta)': 'tan(delta)', 'Temperature': 'temperature', 'Time': 'time', 'Torque': 'torque', 'Torque (step)': 'torque (step)', 'Velocity': 'velocity', 'Viscosity': 'viscosity'}, 'Creep': {'1/temperature': '1/temperature', 'Axial force': 'axial force', 'Compliance': 'compliance', 'Date and time': 'date and time', 'Delta length': 'delta length', 'Displacement': 'displacement', 'Displacement (step)': 'displacement (step)', 'Gap': 'gap', 'Modulus': 'modulus', 'Normal force': 'normal force', 'Normal stress': 'normal stress', 'Normal stress coefficient': 'normal stress coefficient', 'Normal transducer': 'normal transducer', 'Run time': 'run time', 'Shear rate': 'shear rate', 'Status bits': 'status bits', 'Step time': 'step time', 'Strain': 'strain', 'Strain (step)': 'strain (step)', 'Strain constant': 'strain constant', 'Stress': 'stress', 'Stress (step)': 'stress (step)', 'Temperature': 'temperature', 'Time': 'time', 'Torque': 'torque', 'Torque (step)': 'torque (step)', 'Torque transducer': 'torque transducer', 'TransXducerDisplacement': 'transducer displacement', 'Transducer range': 'transducer range', 'TransientMotorTorque': 'transient motor torque', 'Velocity': 'velocity', 'Viscosity': 'viscosity'}, 'Creep (Recoverable)': {'1/temperature': '1/temperature', 'Axial force': 'axial force', 'Date and time': 'date and time', 'Delta length': 'delta length', 'Displacement': 'displacement', 'Displacement (step)': 'displacement (step)', 'Gap': 'gap', 'Modulus': 'modulus', 'Normal force': 'normal force', 'Normal stress': 'normal stress', 'Normal stress coefficient': 'normal stress coefficient', 'Normal transducer': 'normal transducer', 'Recoverable compliance': 'recoverable compliance', 'Recoverable strain': 'recoverable strain', 'Run time': 'run time', 'Shear rate': 'shear rate', 'Status bits': 'status bits', 'Step time': 'step time', 'Strain': 'strain', 'Strain (step)': 'strain (step)', 'Strain constant': 'strain constant', 'Stress': 'stress', 'Stress (step)': 'stress (step)', 'Temperature': 'temperature', 'Time': 'time', 'Torque': 'torque', 'Torque (step)': 'torque (step)', 'Torque transducer': 'torque transducer', 'TransXducerDisplacement': 'transducer displacement', 'Transducer range': 'transducer range', 'TransientMotorTorque': 'transient motor torque', 'Velocity': 'velocity', 'Viscosity': 'viscosity'}, 'Flow Sweep': {'1/temperature': '1/temperature', 'Axial force': 'axial force', 'Compliance': 'compliance', 'Date and time': 'date and time', 'Displacement': 'displacement', 'Displacement (step)': 'displacement (step)', 'Gap': 'gap', 'Modulus': 'modulus', 'Normal stress': 'normal stress', 'Normal stress coefficient': 'normal stress coefficient', 'Run time': 'run time', 'Shear rate': 'shear rate', 'Step time': 'step time', 'Strain': 'strain', 'Strain (step)': 'strain (step)', 'Strain constant': 'strain constant', 'Stress': 'stress', 'Stress (step)': 'stress (step)', 'Temperature': 'temperature', 'Termination reason': 'termination reason', 'Time': 'time', 'Torque': 'torque', 'Torque (step)': 'torque (step)', 'Velocity': 'velocity', 'Viscosity': 'viscosity'}, 'Flow ramp': {'1/temperature': '1/temperature', 'Axial force': 'axial force', 'Compliance': 'compliance', 'Date and time': 'date and time', 'Displacement': 'displacement', 'Displacement (step)': 'displacement (step)', 'Gap': 'gap', 'Modulus': 'modulus', 'Normal stress': 'normal stress', 'Normal stress coefficient': 'normal stress coefficient', 'Run time': 'run time', 'Shear rate': 'shear rate', 'Step time': 'step time', 'Strain': 'strain', 'Strain (step)': 'strain (step)', 'Strain constant': 'strain constant', 'Stress': 'stress', 'Stress (step)': 'stress (step)', 'Temperature': 'temperature', 'Termination reason': 'termination reason', 'Time': 'time', 'Torque': 'torque', 'Torque (step)': 'torque (step)', 'Velocity': 'velocity', 'Viscosity': 'viscosity'}, 'Frequency Chirp': {'1/temperature': '1/temperature', 'Axial force': 'axial force', 'Compliance': 'compliance', 'Date and time': 'date and time', 'Displacement': 'displacement', 'Displacement (step)': 'displacement (step)', 'Gap': 'gap', 'Modulus': 'modulus', 'Normal stress': 'normal stress', 'Run time': 'run time', 'Step time': 'step time', 'Strain': 'strain', 'Strain (step)': 'strain (step)', 'Strain constant': 'strain constant', 'Stress': 'stress', 'Stress (step)': 'stress (step)', 'Temperature': 'temperature', 'Time': 'time', 'Torque': 'torque', 'Torque (step)': 'torque (step)'}, 'Frequency DMA': {'1/temperature': '1/temperature', 'Angular frequency': 'angular frequency', 'Axial force': 'axial force', 'Complex compliance': 'complex compliance', 'Complex modulus': 'complex modulus', 'Date and time': 'date and time', 'Delta length': 'delta length', 'Drive Position': 'drive position', 'Frequency': 'frequency', 'Gap': 'gap', 'Loss compliance': 'loss compliance', 'Loss modulus': 'loss modulus', 'Normal transducer': 'normal transducer', 'Oscillation Force (Drive)': 'oscillation force (drive)', 'Oscillation displacement': 'oscillation displacement', 'Oscillation displacement (cmd)': 'oscillation displacement (cmd)', 'Oscillation displacement (drive': 'oscillation displacement (drive', 'Oscillation force': 'oscillation force', 'Oscillation normal force average': 'oscillation normal force average', 'Oscillation strain': 'oscillation strain', 'Oscillation strain (cmd)': 'oscillation strain (cmd)', 'Oscillation stress': 'oscillation stress', 'Phase angle': 'phase angle', 'Pretension ratio': 'pretension ratio', 'Raw phase (displacement)': 'raw phase (displacement)', 'Run time': 'run time', 'Status bits': 'status bits', 'Status bits 2': 'status bits 2', 'Step time': 'step time', 'Stiffness': 'stiffness', 'Storage compliance': 'storage compliance', 'Storage modulus': 'storage modulus', 'Strain constant (linear)': 'strain constant (linear)', 'Strain ratio': 'strain ratio', 'Tan(delta)': 'tan(delta)', 'Temperature': 'temperature', 'Time': 'time', 'Transducer range': 'transducer range', 'X-ducer Displacement': 'x-ducer displacement', 'X-ducer stiffness': 'x-ducer stiffness'}, 'Frequency sweep': {'Angular frequency': 'angular frequency', 'Complex compliance': 'complex compliance', 'Complex modulus': 'complex modulus', 'Complex viscosity': 'complex viscosity', 'Dynamic viscosity': 'dynamic viscosity', 'Frequency': 'frequency', 'Gap': 'gap', 'Loss compliance': 'loss compliance', 'Loss modulus': 'loss modulus', 'Oscillation displacement': 'oscillation displacement', 'Oscillation strain': 'oscillation strain', 'Oscillation strain rate': 'oscillation strain rate', 'Oscillation stress': 'oscillation stress', 'Phase angle': 'phase angle', 'Shear rate': 'shear rate', 'Step time': 'step time', 'Storage compliance': 'storage compliance', 'Storage modulus': 'storage modulus', 'Strain constant': 'strain constant', 'Strain ratio': 'strain ratio', 'Stress': 'stress', 'Stress (step)': 'stress (step)', 'Tan(delta)': 'tan(delta)', 'Temperature': 'temperature', 'Time': 'time', 'Torque': 'torque', 'Velocity': 'velocity', 'Viscosity': 'viscosity'}, 'Frequency sweep (ARES-G3)': {'1/temperature': '1/temperature', 'Angular frequency': 'angular frequency', 'Complex compliance': 'complex compliance', 'Complex modulus': 'complex modulus', 'Complex viscosity': 'complex viscosity', 'Dynamic viscosity': 'dynamic viscosity', 'Frequency': 'frequency', 'G*.sin(delta)': 'G*.sin(delta)', 'G*/sin(delta)': 'G*/sin(delta)', 'Gap': 'gap', 'Loss compliance': 'loss compliance', 'Loss modulus': 'loss modulus', 'Oscillation strain': 'oscillation strain', 'Oscillation strain rate': 'oscillation strain rate', 'Oscillation stress': 'oscillation stress', 'Out of phase component of η*': 'out of phase component of η*', 'Phase angle': 'phase angle', 'Storage compliance': 'storage compliance', 'Storage modulus': 'storage modulus', 'Tan(delta)': 'tan(delta)', 'Time': 'time'}, 'Master Curve - master curve': {'1/temperature': '1/temperature', 'Angular frequency': 'angular frequency', 'Complex compliance': 'complex compliance', 'Complex modulus': 'complex modulus', 'Complex viscosity': 'complex viscosity', 'Dynamic viscosity': 'dynamic viscosity', 'Frequency': 'frequency', 'G*.sin(delta)': 'G*.sin(delta)', 'G*/sin(delta)': 'G*/sin(delta)', 'Loss compliance': 'loss compliance', 'Loss modulus': 'loss modulus', 'Out of phase component of η*': 'out of phase component of η*', 'Phase angle': 'phase angle', 'Storage compliance': 'storage compliance', 'Storage modulus': 'storage modulus', 'Tan(delta)': 'tan(delta)'}, 'Master Curve - shift factors': {'1/temperature': '1/temperature', 'Temperature': 'temperature', 'aT (x variable)': 'aT', 'bT (y variables)': 'bT', 'bT base': 'bt base', 'bT delta': 'bT delta', 'sample density': 'density'}, 'Multiwave': {'Angular frequency': 'angular frequency', 'Complex compliance': 'complex compliance', 'Complex modulus': 'complex modulus', 'Complex viscosity': 'complex viscosity', 'Dynamic viscosity': 'dynamic viscosity', 'Frequency': 'frequency', 'Loss compliance': 'loss compliance', 'Loss modulus': 'Loss modulus', 'Oscillation strain': 'oscillation strain', 'Oscillation strain rate': 'Oscillation strain rate', 'Oscillation stress': 'oscillation stress', 'Shear rate': 'shear rate', 'Step time': 'step time', 'Stiffness': 'stiffness', 'Storage modulus': 'storage modulus', 'Strain': 'strain', 'Strain ratio': 'strain ratio', 'Stress': 'stress', 'Stress (step)': 'stress (step)', 'Tan(delta)': 'tan(delta)', 'Temperature': 'temperature', 'Time': 'time', 'Torque': 'torque', 'Velocity': 'velocity'}, 'Recovery': {'1/temperature': '1/temperature', 'Date and time': 'data and time', 'Delta length': 'drive length', 'Displacement': 'displacement', 'Displacement(step)': 'displacement (step)', 'Drive Position': 'drive position', 'Force': 'force', 'Modulus': 'modulus', 'Normal transducer': 'normal transducer', 'Position': 'position', 'Recoverable compliance': 'recoverable compliance', 'Recoverable strain': 'recoverable strain', 'Recovered Strain': 'recovered strain', 'Relative Stress': 'relative stress', 'Run time': 'run time', 'Status bits': 'status bits', 'Step time': 'step time', 'Strain': 'strain', 'Strain (step)': 'strain (step)', 'Strain constant (linear)': 'strain constant (linear)', 'Stress': 'stress', 'Temperature': 'temperature', 'Temperature set point': 'temperature set point', 'Thickness': 'thickness', 'Time': 'time', 'Total Displacement': 'total displacement', 'Total Force': 'total force', 'Total Stress': 'total stress', 'Variables': 'variables', 'Velocity': 'velocity'}, 'Sine Strain': {'1/temperature': '1/temperature', 'Axial force': 'axial force', 'Date and time': 'date and time', 'Delta length': 'delta length', 'Displacement': 'displacement', 'Displacement (step)': 'displacement (step)', 'Gap': 'gap', 'Normal force': 'normal force', 'Normal stress': 'normal stress', 'Normal stress coefficient': 'normal stress coefficient', 'Run time': 'run time', 'Shear rate': 'shear rate', 'Step time': 'step time', 'Strain': 'strain', 'Strain (step)': 'strain (step)', 'Strain constant': 'strain constant', 'Stress': 'stress', 'Stress (step)': 'stress (step)', 'Temperature': 'temperature', 'Time': 'time', 'Torque': 'torque', 'Torque (step)': 'torque (step)', 'TransXducerDisplacement': 'transducer displacement', 'TransientMotorTorque': 'transient motor torque', 'Velocity': 'velocity', 'Viscosity': 'viscosity'}, 'Stress Control': {'1/temperature': '1/temperature', 'Angular frequency': 'angular frequency', 'Axial force': 'axial force', 'Complex compliance': 'complex compliance', 'Complex modulus': 'complex modulus', 'Complex viscosity': 'complex viscosity', 'Date and time': 'date and time', 'Delta length': 'delta length', 'Dynamic viscosity': 'dynamic viscosity', 'Frequency': 'frequency', 'G*.sin(delta)': 'g*.sin(delta)', 'G*/sin(delta)': 'g*/sin(delta)', 'Gap': 'gap', 'Loss compliance': 'loss compliance', 'Loss modulus': 'loss modulus', 'Normal transducer': 'normal transducer', 'Oscillation displacement': 'oscillation displacement', 'Oscillation displacement (cmd)': 'oscillation displacement (cmd)', 'Oscillation normal force': 'oscillation normal force', 'Oscillation normal force average': 'oscillation normal force average', 'Oscillation normal stress': 'oscillation normal stress', 'Oscillation strain': 'oscillation strain', 'Oscillation strain (cmd)': 'oscillation strain (cmd)', 'Oscillation strain rate': 'oscillation strain rate', 'Oscillation stress': 'oscillation stress', 'Oscillation torque': 'oscillation torque', 'Out of phase component of η*': 'out of phase component of η*', 'Phase angle': 'phase angle', 'Raw Phase (Xducer displacement)': 'raw phase (xducer displacement)', 'Raw phase (normal force)': 'raw phase (normal force)', 'Raw phase (torque)': 'raw phase (torque)', 'Run time': 'run time', 'ScaleNormWaveData': 'scalenormwavedata', 'ScaleStrnWaveData': 'scalestrnwavedata', 'ScaleTorqWaveData': 'scaletorqwavedata', 'Shear rate': 'shear rate', 'Status bits': 'status bits', 'Status bits 2': 'status bits 2', 'Step time': 'step time', 'Stiffness': 'stiffness', 'Storage compliance': 'storage compliance', 'Storage modulus': 'storage modulus', 'Strain constant': 'strain constant', 'Strain ratio': 'strain ratio', 'Stress': 'stress', 'Stress (step)': 'stress (step)', 'Tan(delta)': 'tan(delta)', 'Temperature': 'temperature', 'Time': 'time', 'Torque': 'torque', 'Torque (step)': 'torque (step)', 'Torque transducer': 'torque transducer', 'Transducer range': 'transducer range', 'Velocity': 'velocity', 'Viscosity': 'viscosity', 'X-ducer Displacement': 'x-ducer displacement', 'X-ducer stiffness': 'x-ducer stiffness'}, 'Stress Relaxation': {'Compliance': 'compliance', 'Modulus': 'modulus', 'Step time': 'step time', 'Strain': 'strain', 'Strain (step)': 'strain (step)', 'Strain constant (linear)': 'strain constant (linear)', 'Stress': 'stress', 'Temperature': 'temperature', 'Time': 'time', 'Velocity': 'velocity'}, 'Temperature Sweep (Multifrequency)': {'1/temperature': '1/temperature', 'Angular frequency': 'angular frequency', 'Axial force': 'axial force', 'Complex compliance': 'complex compliance', 'Complex modulus': 'complex modulus', 'Date and time': 'date and time', 'Delta length': 'delta length', 'Drive Position': 'drive position', 'Frequency': 'frequency', 'Length': 'length', 'Loss compliance': 'loss compliance', 'Loss modulus': 'loss modulus', 'Normal transducer': 'normal transducer', 'Oscillation Force (Drive)': 'oscillation force (drive)', 'Oscillation displacement': 'oscillation displacement', 'Oscillation displacement (drive': 'oscillation displacement (drive', 'Oscillation force': 'oscillation force', 'Oscillation force (cmd)': 'oscillation force (cmd)', 'Oscillation strain': 'oscillation strain', 'Oscillation stress': 'oscillation stress', 'Phase angle': 'phase angle', 'Position': 'position', 'Pretension ratio': 'pretension ratio', 'Raw phase (displacement)': 'raw phase (displacement)', 'Run time': 'run time', 'Status bits': 'status bits', 'Status bits 2': 'status bits 2', 'Step time': 'step time', 'Stiffness': 'stiffness', 'Storage compliance': 'storage compliance', 'Storage modulus': 'storage modulus', 'Strain constant (linear)': 'strain constant (linear)', 'Tan(delta)': 'tan(delta)', 'Temperature': 'temperature', 'Temperature set point': 'temperature set point', 'Time': 'time', 'Variables': 'variables'}, 'Temperature Sweep DMA': {'1/temperature': '1/temperature', 'Angular frequency': 'angular frequency', 'Axial Xducer compliance': 'axial xducer compliance', 'Axial force': 'axial force', 'Complex compliance': 'complex compliance', 'Complex modulus': 'complex modulus', 'Date and time': 'date and time', 'Delta length': 'delta length', 'Drive Position': 'drive position', 'Frequency': 'frequency', 'Gap': 'gap', 'Loss compliance': 'loss compliance', 'Loss modulus': 'loss modulus', 'Normal transducer': 'normal transducer', 'Oscillation Force (Drive)': 'oscillation force (drive)', 'Oscillation displacement': 'oscillation displacement', 'Oscillation displacement (cmd)': 'oscillation displacement (cmd)', 'Oscillation displacement (drive': 'oscillation displacement (drive', 'Oscillation force': 'oscillation force', 'Oscillation normal force average': 'oscillation normal force average', 'Oscillation strain': 'oscillation strain', 'Oscillation strain (cmd)': 'oscillation strain (cmd)', 'Oscillation stress': 'oscillation stress', 'Phase angle': 'phase angle', 'Pretension ratio': 'pretension ratio', 'Raw phase (Axial displacement)': 'raw phase (axial displacement)', 'Run time': 'run time', 'Status bits': 'status bits', 'Status bits 2': 'status bits 2', 'Step time': 'step time', 'Stiffness': 'stiffness', 'Storage compliance': 'storage compliance', 'Storage modulus': 'storage modulus', 'Strain constant (linear)': 'strain constant (linear)', 'Strain ratio': 'strain ratio', 'Tan(delta)': 'tan(delta)', 'Temperature': 'temperature', 'Time': 'time', 'Transducer range': 'transducer range', 'X-ducer stiffness': 'x-ducer stiffness'}, 'Temperature ramp': {'Angular frequency': 'angular frequency', 'Complex compliance': 'complex compliance', 'Complex modulus': 'complex modulus', 'Complex viscosity': 'complex viscosity', 'Dynamic viscosity': 'dynamic viscosity', 'Frequency': 'frequency', 'Gap': 'gap', 'Loss compliance': 'loss compliance', 'Loss modulus': 'loss modulus', 'Oscillation displacement': 'oscillation displacement', 'Oscillation strain': 'oscillation strain', 'Oscillation strain rate': 'oscillation strain rate', 'Oscillation stress': 'oscillation stress', 'Phase angle': 'phase angle', 'Shear rate': 'shear rate', 'Step time': 'step time', 'Storage compliance': 'storage compliance', 'Storage modulus': 'storage modulus', 'Strain constant': 'strain constant', 'Strain ratio': 'strain ratio', 'Stress': 'stress', 'Stress (step)': 'stress (step)', 'Tan(delta)': 'tan(delta)', 'Temperature': 'temperature', 'Time': 'time', 'Torque': 'torque', 'Velocity': 'velocity', 'Viscosity': 'viscosity'}, 'Temperature ramp ISO Force': {'Axial force': 'axial force', 'Compliance': 'compliance', 'Gap': 'gap', 'Modulus': 'modulus', 'Normal stress': 'normal stress', 'Run time': 'run time', 'Step time': 'step time', 'Strain': 'strain', 'Strain constant': 'strain constant', 'Stress': 'stress', 'Temperature': 'temperature', 'Time': 'time'}, 'Temperature sweep': {'1/temperature': '1/temperature', 'Angular frequency': 'angular frequency', 'Axial displacement': 'axial displacement', 'Axial force': 'axial force', 'Axial strain': 'axial strain', 'Axial strain %': 'axial strain %', 'Complex compliance': 'complex compliance', 'Complex modulus': 'complex modulus', 'Date and time': 'date and time', 'Frequency': 'frequency', 'Gap': 'gap', 'Loss compliance': 'loss compliance', 'Loss modulus': 'loss modulus', 'Oscillation displacement': 'oscillation displacement', 'Oscillation force': 'oscillation force', 'Oscillation strain': 'oscillation strain', 'Oscillation stress': 'oscillation stress', 'Phase angle': 'phase angle', 'Raw phase': 'raw phase', 'Run time': 'run time', 'Step time': 'step time', 'Storage compliance': 'storage compliance', 'Storage modulus': 'storage modulus', 'Strain': 'strain', 'Strain (step)': 'strain (step)', 'Strain constant (linear)': 'strain constant (linear)', 'Tan(delta)': 'tan(delta)', 'Temperature': 'temperature', 'Time': 'time'}, 'Time': {'1/temperature': '1/temperature', 'Angular frequency': 'angular frequency', 'Axial force': 'axial force', 'Complex compliance': 'complex compliance', 'Complex modulus': 'complex modulus', 'Complex viscosity': 'complex viscosity', 'Date and time': 'date and time', 'Delta length': 'delta length', 'Dynamic viscosity': 'dynamic viscosity', 'Frequency': 'frequency', 'G*.sin(delta)': 'g*.sin(delta)', 'G*/sin(delta)': 'g*/sin(delta)', 'Gap': 'gap', 'Loss compliance': 'loss compliance', 'Loss modulus': 'loss modulus', 'Normal transducer': 'normal transducer', 'Oscillation displacement': 'oscillation displacement', 'Oscillation displacement (cmd)': 'oscillation displacement (cmd)', 'Oscillation normal force': 'oscillation normal force', 'Oscillation normal force average': 'oscillation normal force average', 'Oscillation normal stress': 'oscillation normal stress', 'Oscillation strain': 'oscillation strain', 'Oscillation strain (cmd)': 'oscillation strain (cmd)', 'Oscillation strain rate': 'oscillation strain rate', 'Oscillation stress': 'oscillation stress', 'Oscillation torque': 'oscillation torque', 'Out of phase component of η*': 'out of phase component of η*', 'Phase angle': 'phase angle', 'Raw Phase (Xducer displacement)': 'raw phase (xducer displacement)', 'Raw phase (normal force)': 'raw phase (normal force)', 'Raw phase (torque)': 'raw phase (torque)', 'Run time': 'run time', 'ScaleNormWaveData': 'scalenormwavedata', 'ScaleStrnWaveData': 'scalestrnwavedata', 'ScaleTorqWaveData': 'scaletorqwavedata', 'Shear rate': 'shear rate', 'Status bits': 'status bits', 'Status bits 2': 'status bits 2', 'Step time': 'step time', 'Stiffness': 'stiffness', 'Storage compliance': 'storage compliance', 'Storage modulus': 'storage modulus', 'Strain constant': 'strain constant', 'Strain ratio': 'strain ratio', 'Stress': 'stress', 'Stress (step)': 'stress (step)', 'Tan(delta)': 'tan(delta)', 'Temperature': 'temperature', 'Time': 'time', 'Torque': 'torque', 'Torque (step)': 'torque (step)', 'Torque transducer': 'torque transducer', 'Transducer range': 'transducer range', 'Variables': 'variables', 'Velocity': 'velocity', 'Viscosity': 'viscosity', 'X-ducer Displacement': 'x-ducer displacement', 'X-ducer stiffness': 'x-ducer stiffness'}}

The comprehensive sets of traces present in each of the types of supported file.

data_from_filepath(filepath: str, **read_kwargs) → MeasurementSet[source]

Convert the file at the given path into appropriate measurement(s).

Parameters:

filepath (str) – The path to the file to convert to a measurement set.

Returns:

The set of measurements in the file.

Return type:

piblin.data.data_collections.measurement_set.MeasurementSet

property default_mode: str

The default mode in which to read the file.

property encoding: str

The default encoding to use to read the file.

supported_extensions: ClassVar[Set[str]] = {'txt'}

Anton Paar RheoCompass .csv

Reads .csv files exported from Anton Paar RheoCompass. Per-measurement default coordinates are chosen from the column set (frequency sweep, flow sweep, or transient fallback).

Reader for data exported from Rheo Compass software in .csv format.

Classes

RheoCompassReader - Reader for files in the RheoCompass .csv format.

class hermes_rheo.file_readers.rheo_compass_csv.RheoCompassReader[source]

Bases: FileReader

Reader for files in the RheoCompass .csv format

property default_mode: str

The default mode in which to read the file.

All FileReader subclasses will by default attempt to use the builtin method “open” to read the file contents, with the “mode” parameter set to the value in this property. The default implementation matches the default of the “open” builtin - to open for reading in text mode.

Returns:

The default mode in which to read the file.

Return type:

str, default “r”

supported_extensions: ClassVar[Set[str]] = {'csv'}

Writing a new reader

Checklist:

  1. Subclass piblin.dataio.fileio.read.file_reader.FileReader (or GenericFileReader).

  2. Declare supported_extensions.

  3. Implement _data_from_file_contents(cls, file_contents, ...) returning a MeasurementSet.

  4. Register per-method default coordinates using the same pattern as _METHOD_DEFAULTS / hermes_rheo.file_readers.trios_rheo_txt._lookup_method_defaults().

  5. Add a fixture in tests/fileio/test_data/ and a test.

  6. Export the reader from src/hermes_rheo/file_readers/__init__.py.