Paths and views#

The class Path stores information about the rays between two points (probe element, scatterer). Typically, a Path contains the rays starting from the probe and ending at the scatterers. Examples: L (longitudinal mode from the front wall to the scatterer), LT (L mode from the front wall to the back wall, T mode from the back wall to the front wall). It is also possible to use Path for modelling rays starting and ending at the probe; for example a ray starting from the probe, reflected against the front wall and going back to the probe.

The class View glues together two Path objects for modelling rays from the probe to a scatterer (transmit path) and from the scatterer to the probe (receive path). Using a View instead of one Path that starts and ends at the probe allows reducing greatly the amount of memory and calculation required for imaging and modelling. This is the raison d’être of the class View.

Creating the views#

The recommended way is to use either arim.models.block_in_immersion.make_views() or arim.models.block_in_contact.make_views().

This function requires the positions of the probe as a arim.geometry.OrientedPoints object:

probe = arim.Probe(...)  # to fill up
probe_p = probe.to_oriented_points()

It also requires the position of the scatterers as arim.geometry.OrientedPoints:

# one scatterer in x=10e-3, y=0, z=10e-3
scatterer_p = arim.geometry.default_oriented_points(arim.Points([[10e-3, 0., 10e-3]]))

Alternatively, the scatterers can be defined from a regularly spaced grid:

grid = arim.geometry.Grid(xmin, xmax, ymin, ymax, zmin, zmax, pixel_size)
scatterer_p = grid.to_oriented_points()

A BlockInImmersion object is required, see Examination object.

Finally:

import arim.models.block_in_immersion as bim
views = bim.make_views(exam_obj, probe_p, scatterer_p, max_number_of_reflection=1, tfm_unique_only=False)

For imaging with TFM, the views that give redundent results can be removed by setting tfm_unique_only=True.

views is a Python dictionary (dict):

views['L-T']  # this is the view L-T

At this stage, the views contains which interfaces are crossed and which modes are propagating but not exact interface points through which the rays go. This step is performed in Ray tracing.

Nuts and bolts#

This section describes the internal machinery of arim for paths and views. It can be skipped at first reading.

A Path is composed of Interface objects. Each interface contains both the location of the points and their orientations but also the description of the physical process happening there: solid-to-fluid transmission, reflection against a liquid, etc. Path also defines the modes between the interfaces.