DIP

Dip and strike calculation


EnvironmentsPYTHON :: EASI :: MODELER
Quick linksDescription :: Parameters :: Parameter descriptions :: Details :: Example :: References :: Related

Back to top

Description


Calculates angles of dip and strike for a set of 3 or more points, according to the method described by Haneberg [3].
Back to top

Parameters


dip(fili, filo, dbiv, dbov, zunit, len)

Name Type Caption Length Value range
FILI * str Input file name 1 -    
FILO * str Output file name 1 -    
DBIV * List[int] Input vector segment(s) 1 - 64  
DBOV * List[int] Output vector segment(s) 1 - 64  
ZUNIT str Elevation units of input vector 0 - 5 METRE | FOOT
Default: METRE
LEN List[int] Width of the fitting window 0 - 1 3 -
Default: 3

* Required parameter
Back to top

Parameter descriptions

FILI

Specifies the name of the PCIDSK file that contains the vector segment to read.

FILO

Specifies the name of the PCIDSK file to receive the output vector segment.

DBIV

Specifies the input vector segments to use for the calculation.

Up to 64 segments may be specified.

DBOV

Specifies the output vector segments to receive the results of the calculation.

Up to 64 segments may be specified.

ZUNIT

Specifies the elevation units for the input vector segment (DBIV).

Available valuies are:

LEN

Specifies the width of the plane fitting window as the number of consecutive vertices to be used to fit a plane.

Values should be odd numbers that are greater than or equal to 3 (3, 5, 7, etc.). If they are not, the function will adjust the value accordingly.

For example:

if LEN < 3, then LEN = 3
if LEN = even number, then LEN = LEN + 1
LEN=5
Back to top

Details

DIP calculates angles of dip and strike for a set of three or more points, according to the method described by Haneberg [3]. Every shape in the output vector segment consists of a vertex defined by the values of x, y, and z and the attributes "Dip" and "Strike". The angles of dip and strike are determined from the plane, which is calculated from the input points. If more than three points are used, a least squares regression is used. If only three points are used, this uniquely defines the plane and no least squares fit is calculated.

Once the plane has been calculated, the dip and strike values are determined from it using Haneberg's method. Special treatment of the singular cases is described by ([4, p.125]). The rotation equations used are described by ([2, p.700]).

DIP assigns dip and strike values, and assigns them to the center vertex. For example:

 for LEN = 3, vertex = 2 
 for LEN = 5, vertex = 3

Vertices from the start (finish) of the segment will have dip and strike values that equal the first (last) vertex that was defined.

Note: The vertices should be recorded in sequential order prior to calculation, especially when using smaller sets of vertices for the entire segment.

Calculation examples

The segment consists of five vertices:
  1. {0,0,1};
  2. {0,1,1};
  3. {1,0,0};
  4. {1,1,0};
  5. {2,0,-1}

The number of vertices for plane building is 3. Note that three sets of three points will be used for demonstration purposes.

Step 1

The first set of vertices consists of the first three vertices 1,2,3.

DIP builds a plane from these three vertices, and calculates the plane's dip and strike. The function then sets the dip and strike, respectively, to the second vertex (because it lies in the center of the set of vertices 1,2,3) and to the first vertex (the starting vertex of the segment).

Step 2

The second set of vertices consists of three vertices 2,3,4.

As in Step 1, DIP builds a plane for these three vertices, calculating the dip and strike. Afterwards, the function sets the dip and strike of this plane to the third vertex (the center of the vertices 2,3,4).

Step 3

The third set of vertices consists of the last three vertices 3,4,5.

As in the previous steps, DIP builds the plane for these three vertices and calculates the dip and strike for this plane. Afterwards, the function sets the dip and strike of this plane to the fourth vertex (the center of the vertices 3,4,5) and to the fifth vertex (the last vertex of the segment).

The following table summarizes these steps.

     Steps number   Vertex numbers used         Vertices numbers
                    in plane calculations       assigned dip/strike

          1               1,2,3                  1,2
          2               2,3,4                  3  
          3               3,4,5                  4,5

Definitions

The angle of dip is the maximum angle measured between the strata and a horizontal surface. In a direction at right angles to the dip, the strata are horizontal. This is the direction of strike. ([1, p.9])

The azimuth of intersection of strata with a horizontal plane is the strike. The azimuth of the main downgrading slope line gives the dip direction, and the angle between this main downgrading slope line and a horizontal plane is the dip. ([3,p.422])

>b>Input data

The Input vector segment must contain a set of points with the x,y, and z values set. "y" is the North direction, "x" is the East direction, and "z" is the elevation value. Coordinate units for "z" must be either METRE or FOOT. The "x" and "y" values can be METRE, FOOT, UTM, or degree (longitude/latitude).

At least three plane fitting length (LEN) vertices for every input vector segment must be provided. Because DIP adopts a moving window of LEN vertices to determine the dip and strike at the central vertex, the specified number of vertices must be an odd number.

DIP does not assume that x, y, and elevation values in all input vector segments are provided in the same units, but it requires that all input vector segments use the same ellipsoid (Earth model).

Output data

Vertices from the input vector segment are copied to the output vector segment. The calculated dip angle and strike direction are stored in the attribute fields "Dip" and "Strike" of the output vector segment. All angles are measured in degrees.

The Dip angle ranges from 0 degrees for a horizontal plane, to 90 degrees for vertical.

Strike direction ranges from 0 to 360 degrees, as defined on a compass.

                       ^ 0 degrees, North
                       |
                       |
                       |
    270 degrees,<------+------> 90 degrees, East
    West               |
                       |
                       |
                       V 180 degrees, South

A value of "-1" for an angle indicates that it is not a correct value. For example, if a plane is horizontal, the dip angle is zero and the strike is undefined. In this case, DIP sets the strike direction to "-1".

Dip direction is defined by:

Dip direction = strike + 90 degrees
 if (dip direction >= 360 degrees)
 then
	 dip direction = (dip direction - 360 degrees)

Therefore, the dip direction is not stored.

Back to top

Example

Calculate angles of dip and strike for vector segment 25 in the demo file, irvine.pix.

from pci.dip import dip

fili	=	'irvine.pix'
filo	=	'irvine.pix'
dbiv	=	[25]	# input vector segment
dbov	=	[26]	# output vector segment
zunit	=	'METRE'	# elevation unit
len	=	[3]	# width of fitting window

dip( fili, filo, dbiv, dbov, zunit, len )
Back to top

References

[1] Bennisson,G.M. An introduction to geological structures and maps, 4th ed.,1985.

[2] Howard Anton. Calculus with analytic geometry, 1980.

[3] Haneberg W.C. A Lagrangian interpolation method for three-point problems. Journal of Structural Geology, Vol.12, No.7, pp. 945 to 947, 1990.

[4] Elliot, Fryer, Gardner, Hill. Vectors, matrices and algebraic structures, 1980.

© PCI Geomatics Enterprises, Inc.®, 2026. All rights reserved.