Measurand recommends visualizing ShapeArray data in our SAAView application. However, many clients visualize the data using third party software. A DIY export file can be created when raw ShapeArray data is converted into Cartesian data with SAACR_raw2data. The DIY export file can be configured to contain various data values derived from the raw ShapeArray data. Of particular interest for recreating SAAView visualizations are the following export options.

NOTE: In the instructions below, ### represents a three digit number corresponding to a specific vertex of data in the DIY data file. For example,Sensor_X_001represents the X position for the first vertex in a Cartesian plane.

### XYZ: Cumulative Deviation (absolute position)

The **XYZ: Cumulative Deviation (absolute position)** export option represents the absolute shape. It is the XYZ positions of vertices without any reference subtracted. Z represents the absolute ShapeArray vertex positions in the vertical dimension, not a path length. This option will export the position of each vertex in a Cartesian plane relative to the reference vertex. It will include the following columns for each vertex in the ShapeArray:

**Sensor_X_###**- The position along the X axis of the vertex relative to the reference segment.**Sensor_Y_###**- The position along the Y axis of the vertex relative to the reference segment.**Sensor_Z_###**- The position along the Z axis of the vertex relative to the reference segment. Please note that this does not represent the segment length. This is the absolute Z position of the vertex.

### diff (XY), Z: Incremental Deviation (expected by VDV)

The **diff (XY), Z: Incremental Deviation (expected by VDV)** export option is difference in X and Y position between two ends of each segment, without any reference subtracted. It will export the deviation of each vertex from the position of the previous vertex. It will include the following columns for each vertex in the ShapeArray:

**Sensor_dX_###**- The position along the X axis of the vertex relative to the previous vertex.**Sensor_dY_###**- The position along the Y axis of the vertex relative to the previous vertex.**Sensor_Z_###**- The position along the Z axis of the vertex relative to the reference segment. Please note that this does not represent the segment length. This is the absolute Z position of the vertex.

NOTE: TheSensor_Z_###column is the same for both theXYZ: Cumulative Deviation (absolute position)anddiff (XY), Z: Incremental Deviation (expected by VDV)export options.

### Temperature

The **Temperature** export option will export the temperature measured in each segment with a temperature segment. It will include the following column of data for each segment in the ShapeArray.

**Sensor_temp_###**- The temperature measured by the temperature sensor in the corresponding segment. It will contain NaN for segments without temperature sensors.

How graphs are created vary based on the installation orientation of the ShapeArray. Instructions for recreating graphs for both vertically installed and horizontally installed ShapeArrays are included below. To jump to instructions for a specific orientation, please use the linked options below.

- Graphing Data from Vertically installed ShapeArrays
- Graphing Data from Horizontally installed ShapeArrays

# Reproducing SAAView Graphs For Vertical ShapeArrays

The following provides a brief description of how to properly plot the DIY data exported from SAACR_raw2data to reproduce the various visualizations in SAAView for vertically installed ShapeArrays. For vertically installed ShapeArrays, Z-axis data (e.g. Sensor_Z_###) is plotted on the vertical axis, while X-axis and Y-axis data (e.g. Sensor_X_### or Sensor_Y_###) is plotted on the horizontal axis.

## Deformation (CumDisplacement) dx, dy

Cumulative Displacement is also referred to as Deformation. Displacement is calculated from the difference between a vertex’s initial deviation in a baseline reading and the deviation at the time of the new reading. Cumulative displacement is the sum of all displacements of all segments from the zero position to the current elevation. In SAAView, this graph shows the distance each vertex has moved from the baseline position.

To produce the **XcumulativeDisplacement** graph:

- Calculate the difference between each sample’s
**Sensor_X_###**and the corresponding**Sensor_X_###**values in the first sample in the data set. - Create ordered (X, Y) pairs from the values calculated in the step 1 and the corresponding
**Sensor_Z_###**value for the current sample. E.g. (X,Y) ->*(result from step 1, Sensor_Z_###)* - Plot each of the ordered pairs on the graph.
- Draw a polyline through each of the plotted points.
- Repeat this process for each sample taken from the ShapeArray. Plot each line in a different colour.

To produce the **YcumulativeDisplacement** graph:

- Calculate the difference between each sample’s
**Sensor_Y_###**and the corresponding**Sensor_Y_###**values in the first sample in the data set. - Create ordered (X, Y) pairs from the values calculated in the step 1 and the corresponding
**Sensor_Z_###**value. E.g.*(result from step 1, Sensor_Z_###)* - Plot each of the ordered pairs on the graph.
- Draw a polyline through each of the plotted points.
- Repeat this process for each sample taken from the ShapeArray. Plot each line in a different colour.

## Absolute Shape (CumDeviation) x, y

Cumulative Deviation is also known as Absolute Shape. Cumulative Deviation is the sum of all deviations of all segments from the zero position to the current elevation. This effectively provides you with a view of the ShapeArray’s shape within the borehole.

To produce the **XAbsolute** graph:

- Create ordered (X, Y) pairs from the corresponding
**Sensor_X_###**and**Sensor_Z_###**values. E.g. (X, Y) ->*(Sensor_X_###, Sensor_Z_###)* - Plot each ordered pair as a point on graph.
- Draw a polyline through each of the plotted points.
- Repeat this process for each sample taken from the ShapeArray. Plot each line in a different colour.

To produce the **YAbsolute** graph:

- Create ordered (X, Y) pairs from the corresponding
**Sensor_Y_###**and**Sensor_Z_###**values. E.g. (X, Y) ->*(Sensor_Y_###, Sensor_Z_###)* - Plot each ordered pair as a point on graph.
- Draw a polyline through each of the plotted points.
- Repeat this process for each sample taken from the ShapeArray. Plot each line in a different colour.

## Incremental Deviation diffx, diffy

Each vertex’s deviation is a plot point on the graph. This shows the distance from an absolutely vertical position to the segment’s top vertex at each elevation.

To produce the **XIncremental Deviation** graph:

- Create ordered (X, Y) pairs from the corresponding
**Sensor_dX_###**and**Sensor_Z_###**values. E.g. (X, Y) ->*(Sensor_dX_###, Sensor_Z_###)* - Plot each ordered pair as a point on graph.
- Draw a polyline through each of the plotted points.
- Repeat this process for each sample taken from the ShapeArray. Plot each line in a different colour.

To produce the **YIncremental Deviation** graph:

- Create ordered (X, Y) pairs from the corresponding
**Sensor_dY_###**and**Sensor_Z_###**values. E.g. (X, Y) ->*(Sensor_dY_###, Sensor_Z_###)* - Plot each ordered pair as a point on graph.
- Draw a polyline through each of the plotted points.
- Repeat this process for each sample taken from the ShapeArray. Plot each line in a different colour.

## Magnitude sqrt(dx^2+dy^2)

The magnitude of deformation, regardless of direction, is graphed. Since the magnitude is directionless, only a single graph will contain data.

To produce the **XdefMagnitude** graph:

- Calculate the difference between each sample’s Sensor_X_### and the corresponding Sensor_X_### values in the first sample in the data set. (i.e. calculate the cumulative displacement for the X-axis as described in the Deformation section above)
- Calculate the difference between each sample’s
**Sensor_Y_###**and the corresponding**Sensor_Y_###**values in the first sample in the data set. (i.e. calculate the cumulative displacement for the y-axis as described in the Deformation section above) - Calculate the square of each value from step 1.
- Calculate the square of each value from step 2.
- Calculate the sum of the corresponding values from steps 3 and 4. E.g.
*(Displacement_X_003^2 + Displacement_Y_003^2)* - Calculate the square roots of the values from step 5. E.g.
*Sqrt(result from step 5)* - Create ordered (X, Y) pairs from the values calculated in step 6 and the corresponding
**Sensor_Z_###**values. E.g. (X, Y) ->*(result from step 6, Sensor_Z_003)* - Plot each ordered pair as a point on graph.
- Draw a polyline through each of the plotted points.
- Repeat this process for each sample taken from the ShapeArray. Plot each line in a different colour.

## Incremental Displacement d(diffx), d(diffy)

Displacement is calculated from the difference between a vertex’s initial deviation in a baseline reading and the deviation at the time of the new reading. This graph shows the displacement of each vertex.

To produce the **XIncrementalDisplacement** graph:

- Calculate the difference between each sample’s
**Sensor_dX_###**values and the corresponding**Sensor_dX_###**value in the first sample in the data set. - Create ordered (X, Y) pairs from the values calculated in the step 1 and the corresponding
**Sensor_Z_###**value for the current sample. E.g. (X, Y) ->*(result from step 1, Sensor_Z_###)* - Plot each of the ordered pairs on the graph.
- Draw a polyline through each of the plotted points.
- Repeat this process for each sample taken from the ShapeArray. Plot each line in a different colour.

To produce the **YIncrementalDisplacement** graph:

- Calculate the difference between each sample’s
**Sensor_dY_###**values and the corresponding**Sensor_dY_###**value in the first sample in the data set. - Create an ordered (X, Y) pair from the values calculated in the step 1 and the corresponding
**Sensor_Z_###**value. E.g. (X, Y) ->*(result from step 1, Sensor_Z_###)* - Plot each of the ordered pairs on the graph.
- Draw a polyline through each of the plotted points.
- Repeat this process for each sample taken from the ShapeArray. Plot each line in a different colour.

## Shear (IncDisplacement / Length, %)

Shows Displacement over Segment Length by Percentage.

To produce the **XShear** graph:

- Calculate the difference between each sample’s
**Sensor_dX_###**values and the corresponding**Sensor_dX_###**values from the initial reading. - In each sample, subtract the previous segment’s
**Sensor_Z_###**value from each**Sensor_Z_###**value and- for metric values, multiply the result by 1,000 to get millimetres. E.g.
*[(Sensor_Z_003 - Sensor_Z_002) x 1000]*. - for imperial values, multiple the result by 12 to get inches. E.g.
*[(Sensor_Z_003 - Sensor_Z_002) x 12]*. - Repeat this step for all
**Sensor_Z_###**values in the sample.

- for metric values, multiply the result by 1,000 to get millimetres. E.g.
- Divide the result of step 1 by the result of step 2 and multiply by 100. E.g.
*[(result of step 1 / result of step 2) x 100]* - Create ordered (X, Y) pairs from the values calculated in step 3 and the corresponding
**Sensor_Z_###**values in the sample. E.g. (X, Y) ->*(result from step 3, Sensor_Z_###)* - Plot each of the ordered pairs on the graph.
- Draw a polyline through each of the plotted points.
- Repeat this process for each sample taken from the ShapeArray. Plot each line in a different colour.

To produce the **YShear** graph:

- Calculate the difference between each sample’s
**Sensor_dY_###**values and the corresponding**Sensor_dY_###**values from the initial reading. - In each sample, subtract the previous segment’s
**Sensor_Z_###**value from each**Sensor_Z_###**value and multiply the result by 1,000. E.g.*[(Sensor_Z_003 - Sensor_Z_002) x 1000]*. Repeat this step for all**Sensor_Z_###**values in the sample. - Divide the result of step 1 by the result of step 2 and multiply by 100. E.g.
*[(result of step 1 / result of step 2) x 100]* - Create ordered (X, Y) pairs from the values calculated in step 3 and the corresponding
**Sensor_Z_###**values in the sample. E.g. (X, Y) ->*(result from step 3, Sensor_Z_###)* - Plot each of the ordered pairs on the graph.
- Draw a polyline through each of the plotted points.
- Repeat this process for each sample taken from the ShapeArray. Plot each line in a different colour.

## Temperature

The **Temperature** graph shows the temperature measured by the temperature sensor in each segment. The same data is graphed and presented in both **XTemperature** and **YTemperature**.

To produce the **XTemperature** and **YTemperature** graphs:

- Create ordered (X, Y) pairs from the
**Sensor_Temp_###**and the corresponding**Sensor_Z_###**value. E.g. (X, Y) ->*(Sensor_Temp_###, Sensor_Z_###)* - Plot each of the ordered pairs on the graph.
- Draw a polyline through each of the plotted points.
- Repeat this process for each sample taken from the ShapeArray. Plot each line in a different colour.

# Reproducing SAAView Graphs For Horizontal ShapeArrays

The following provides a brief description of how to properly plot the DIY data exported from SAACR_raw2data to reproduce the various visualizations in SAAView for horizontally installed ShapeArrays. For horizontally installed ShapeArrays, X-axis data (e.g. Sensor_X_###) is plotted on the vertical axis, while Z-axis (e.g. Sensor_Z_###) data is plotted on the horizontal axis. Y-axis data (e.g. Sensor_Y_###) is never plotted and will always be zeros in the DIY output files because ShapeArrays can only make 2-D measurements when installed horizontally.

## Deformation (CumDisplacement) dx, dy

Cumulative Displacement is also referred to as Deformation. Displacement is calculated from the difference between a vertex’s initial deviation in a baseline reading and the deviation at the time of the new reading. Cumulative displacement is the sum of all displacements of all segments from the zero position to the current position along the ShapeArray's length. In SAAView, this graph shows the distance each vertex has moved from the baseline position.

To produce the **X (Vertical) Deformation along Z** graph:

- Calculate the difference between each sample’s
**Sensor_X_###**and the corresponding**Sensor_X_###**values in the first sample in the data set. - Create ordered (X, Y) pairs from the values calculated in the step 1 and the corresponding
**Sensor_Z_###**value for the current sample. E.g. (X, Y) ->*(Sensor_Z_###,**result from step 1*) - Plot each of the ordered pairs on the graph.
- Draw a polyline through each of the plotted points.
- Repeat this process for each sample taken from the ShapeArray. Plot each line in a different colour.

## Absolute Shape (CumDeviation) x, y

Cumulative Deviation is also known as Absolute Shape. Cumulative Deviation is the sum of all deviations of all segments from the zero position to the current position along the ShapeArray's length. This effectively provides you with a view of the ShapeArray’s shape.

To produce the **XAbsolute** graph:

- Create ordered (X, Y) pairs from the corresponding
**Sensor_Z_###**and**Sensor_X_###**values. E.g. (X, Y) ->*(Sensor_Z_###, Sensor_X_###)* - Plot each ordered pair as a point on graph.
- Draw a polyline through each of the plotted points.
- Repeat this process for each sample taken from the ShapeArray. Plot each line in a different colour.

## Incremental Deviation diffx, diffy

Each vertex’s deviation is a plot point on the graph. This shows the distance from an absolutely horizontal position to a segment vertex furthest from the reference end at each position along the ShapeArray's length.

To produce the **XIncremental Deviation** graph:

- Create ordered (X, Y) pairs from the corresponding
**Sensor_Z_###**and**Sensor_dX_###**values. E.g. (X, Y) ->*(Sensor_Z_###, Sensor_dX_###)* - Plot each ordered pair as a point on graph.
- Draw a polyline through each of the plotted points.
- Repeat this process for each sample taken from the ShapeArray. Plot each line in a different colour.

## Incremental Displacement d(diffx), d(diffy)

Displacement is calculated from the difference between a vertex’s initial deviation in a baseline reading and the deviation at the time of the new reading. This graph shows the displacement of each vertex.

To produce the **XIncrementalDisplacement** graph:

- Calculate the difference between each sample’s
**Sensor_dX_###**values and the corresponding**Sensor_dX_###**value in the first sample in the data set. - Create ordered (X, Y) pairs from the values calculated in the step 1 and the corresponding
**Sensor_Z_###**value for the current sample. E.g. (X, Y) ->*(Sensor_Z_###,**result from step 1*) - Plot each of the ordered pairs on the graph.
- Draw a polyline through each of the plotted points.
- Repeat this process for each sample taken from the ShapeArray. Plot each line in a different colour.

## Shear (IncDisplacement / Length, %)

Shows Displacement over Segment Length by Percentage.

To produce the **XShear** graph:

- Calculate the difference between each sample’s
**Sensor_dX_###**values and the corresponding**Sensor_dX_###**values from the initial reading. - In each sample, subtract the previous segment’s
**Sensor_Z_###**value from each**Sensor_Z_###**value and- for metric values, multiply the result by 1,000 to get millimetres. E.g.
*[(Sensor_Z_003 - Sensor_Z_002) x 1000]* - for imperial values, multiple the result by 12 to get inches. E.g.
*[(Sensor_Z_003 - Sensor_Z_002) x 12]* - Repeat this step for all
**Sensor_Z_###**values in the sample.

- for metric values, multiply the result by 1,000 to get millimetres. E.g.
- Divide the result of step 1 by the result of step 2 and multiply by 100. E.g.
*[(result of step 1 / result of step 2) x 100]* - Create ordered (X, Y) pairs from the values calculated in step 3 and the corresponding
**Sensor_Z_###**values in the sample. E.g. (X, Y) ->*(Sensor_Z_###,**result from step 3*) - Plot each of the ordered pairs on the graph.
- Draw a polyline through each of the plotted points.
- Repeat this process for each sample taken from the ShapeArray. Plot each line in a different colour.

## Temperature

The **Temperature** graph shows the temperature measured by the temperature sensor in each segment.

To produce the **XTemperature** graph:

- Create ordered (X, Y) pairs from the
**Sensor_Z_###**and the corresponding**Sensor_Temp_###**value. E.g. (X, Y) ->*(Sensor_Z_###, Sensor_Temp_###)* - Plot each of the ordered pairs on the graph.
- Draw a polyline through each of the plotted points.
- Repeat this process for each sample taken from the ShapeArray. Plot each line in a different colour.