Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Tutorial 1 — Reading and visualising common rheological datasets

Corporate Research Analytical Laboratory, 3M

This tutorial shows how to load rheometer exports with hermes_rheo and plot them:

  1. A TA Instruments TRIOS .txt export containing a single creep test.

  2. A TRIOS .txt export containing several test types (amplitude sweep, frequency sweep, flow ramp).

  3. An Anton Paar RheoCompass .csv export of a time-temperature superposition (tTS) series of frequency sweeps.

Supported software

SoftwareFile typeReader class
TRIOS.txt (Send To LIMS or To Plain Text (full))TriosRheoReader
RheoCompass.csvRheoCompassReader

All readers are used the same way: read_file takes the file path and, optionally, the reader class. If no reader is given, it is chosen from the file extension (.txt → TriosRheoReader, .csv → RheoCompassReader). For other formats, write a custom reader and reuse the transforms unchanged.

1. A file with a single test

read_file returns an ExperimentSet when all measurements in the file are of the same kind. Each measurement holds one or more datasets; for a creep step the dataset holds strain as a function of time, so it can be plotted directly. Axis labels and units are read from the file.

ExperimentSet
-------------

Summary
-------
Number of Experiments: 1

Varied Conditions
----------------

index	n_rep	method	Data Types	
0	1	Creep - 1	strain(%)=f(time[min]) (483 points)	


<Figure size 500x500 with 1 Axes>

2. A file with several test types

A single file can hold different tests in sequence, here an amplitude sweep, a frequency sweep and a flow ramp. They have different axes, so they cannot be grouped in one ExperimentSet. Passing to_experiments=False returns a MeasurementSet instead, where each measurement keeps the axes that suit its test:

  • amplitude sweep: storage modulus vs. oscillation strain

  • frequency sweep: storage modulus vs. angular frequency

  • flow ramp: viscosity vs. shear rate

Amplitude sweep - 1   storage modulus vs. oscillation strain (cmd)
Frequency sweep - 2   storage modulus vs. angular frequency
Flow ramp - 3         viscosity vs. shear rate

Selecting and plotting a measurement

Measurements are indexed in the order they appear in the file. visualize() plots a dataset on its default axes and returns the Matplotlib figure and axes for further formatting.

<Figure size 500x500 with 1 Axes>
<Figure size 500x500 with 1 Axes>
<Figure size 500x500 with 1 Axes>

Switching axes and accessing the data

Every dataset stores all the columns of its test. switch_coordinates() changes the plotted pair, and the arrays are available as x_values (independent variable) and y_values (dependent variable).

<Figure size 500x500 with 1 Axes>
angular frequency: [+628.3185 +452.1964 +325.4363]
complex viscosity: [+28.7017 +36.6608 +51.9980]

3. A RheoCompass file

RheoCompassReader is used exactly like TriosRheoReader. The file below is a tTS series: isothermal frequency sweeps measured at different temperatures, one measurement per interval. Plotting a few of them shows how the moduli shift with temperature; visualize(axes=...) draws each sweep on a shared axis and labels it from the dataset. Tutorial 4 builds the master curve from this kind of data.

<Figure size 1000x400 with 2 Axes>

Customising the plot

visualize() returns standard Matplotlib objects, so any element can be changed afterwards. Below, G′ and G″ share one axis, and the default labels are replaced by symbols while the units are still read from the dataset.

<Figure size 600x450 with 1 Axes>