Frame#

A Frame is a data container for a Probe, an ExaminationObject and the voltage-time data Frame.timetraces. FMC, HMC, or any subset of FMC frames are supported. It corresponds roughly to the content of the exp_data structure of the Matlab ndt-library of the University of Bristol.

Limits:

  • A frame can contain only one probe.

  • In a frame, each ultrasonic timetrace is associated to exactly one transmitter and one receiver.

Creating a Frame from scratch:

import arim
import numpy

# timetrace per timetrace, the list of transmitters and receivers.
# For the first timetrace, the first element transmits (tx[0] = 0) and
# also receives (rx[0] = 0).
# For the second timetrace, the first element transmits (tx[1] = 0) and
# the second element receives (rx[1] = 1).
# Et caetera.
# In this example there are 9 timetraces.
tx = [0, 0, 0, 1, 1, 1, 2, 2, 2]
rx = [0, 1, 2, 0, 1, 2, 0, 1, 2]

probe = arim.probes['ima_50_MHz_128_1d']

examination_object = arim.ExaminationObject(arim.Material(6300.))

time = arim.Time(start=0., step=50e-9, num=1000)

# The ultrasonic data stored as a matrix. One timetrace per row.
timetraces = np.zeros((len(tx), len(time)))

frame = arim.Frame(timetraces, time, tx, rx, probe, examination_object)

Remark: the functions arim.ut.fmc() and arim.ut.hmc() creates lists of transmitters and receivers for HMC and FMC acquisitions.

To load a frame exported from the Bristol ndt-library (Matlab), see BRAIN.