urx.probe - moduleus/urx GitHub Wiki
Generic ultrasound probe formed by a collection of elements.
Parameter | Datatype | Description |
---|---|---|
description | string | User description. |
elements | Array of element | Array of elements in the probe. |
element_geometries | Array of element_geometry | Array of unique element_geometry in the probe. |
impulse_responses | Array of impulse_response | Array of unique electromechanical impulse responses of the elements in the probe. |
transform | transform | Attitude of the probe in 3D space. |
type | probe_type | Type of probe. |
Note that the elements
in element_geometry and impulse_response
are referred by the fields inside each member in element
, avoiding unnecessary replication of information.
If the probe.type is not UNDEFINED, then some assumptions can be made depending on the value of probe.type:
- All probe.elements share the same element_geometry and impulse_response.
- All probe.elements.transform.translation have
$y=0$ and$z=0$ . - All probe.elements.transform.translation have an equal x-spacing.
- Elements in the array probe.elements are ordered from the most negative-x to the most positive-x.
- The probe is centered on the origin of the :
probe.elements(first).transform.translation.x == -probe.elements(last).transform.translation.x
.
The next figure shows an example of a linear probe with 64 elements, the first and tenth elements are highlighted:
The probe.element_geometries
contains a single geometry:
The position of the i-th element, in probe.elements(i).transform.translation.x
is:
- All probe.elements share the same element_geometry and impulse_response.
- Elements in the array probe.elements are ordered from the most negative-x to the most positive-x.
- The probe is centered:
probe.elements(first).transform.translation.x == -probe.elements(last).transform.translation.x
- Let
$R$ be the radius of curvature of the curvilinear probe. The transform of the elements is defined by:$TODO$
- All probe.elements share the same element_geometry and impulse_response.
- All probe.elements.transform.translation have and
$z=0$ . - All probe.elements.transform.translation have an equal x-spacing:
pitch_x = probe.element(i+1).transform.translation.x - probe.element(i).transform.translation.x
. - All probe.elements.transform.translation have an equal y-spacing:
pitch_y = probe.element(i+1).transform.translation.y - probe.element(i).transform.translation.y
. - Elements in the array probe.elements are ordered from the most negative-x to the most positive-x, then from the most negative-y to the most positive-y.
- The probe is centered on the origin in the x and y direction.
The next figure shows an example of a matrix probe, elements (1, 2, 20, 21) are highlighted to show the ordering regarding x and y axis:
- All probe.elements share the same element_geometry and impulse_response.
- All probe.elements.transform.translation have and
$z=0$ .
The following figures show example of sparse arrays:
Given an N-by-M RCA probe:
- All probe.elements point to one of two possible element_geometry and impulse_response. The row's elements (resp. column's) can have a different element_geometry and impulse_response, but don't have to.
- All probe.elements.transform.translation have
$z=0$ . - The probe is centered on the origin in the x and y direction.
- All probe.elements.transform.rotation are null, ie
$(0, 0, 0)$ . Rows and columns elements are not$\pi/2$ rotation from one another, instead they have different element_geometry and transform.translation. Rows (resp. column's) elements havetranslation.x == 0
(resp.translation.y == 0
). - Elements in the array probe.elements are ordered in the following manner:
- Elements with
y=0
, from negative-x to positive-x. - Elements with
x=0
, from negative-y to positive-y.
- When the number of elements in x (resp. y) direction is odd, the center element has its y (resp. x) coordinate equal to 0. Yet it is ordered in the probe.element array with its siblings, in order not to mix row's and column's elements.
- Elements with
The next figure shows an example of a RCA probe:
Other types of probes can be defined using the special probe_type = UNDEFINED
. For example the following probe does not fit any aforementioned types of probes:
element | element_geometry | impulse_response | probe_type | receive_setup | transform | transmit_setup