| Environments | PYTHON :: EASI :: MODELER |
| Quick links | Description :: Parameters :: Parameter descriptions :: Details :: Example :: References :: Related |
| Back to top |
| Back to top |
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 |
| Back to top |
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).
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 |
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.
Calculation examples
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 |
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 |
[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.