Clarification on dip calculation from principal stress direction cosines in 3DEC

Hi all,

I’m working with principal stress direction cosines exported from 3DEC, and I’m trying to understand how the software converts these direction cosines into dip and dip direction values shown in the built-in stereonet plot.

I can manually calculate trend from the direction cosines using atan2(x, y), and my results match the software’s dip direction values. However, I can’t reproduce the dip values. I tried asin(z) and acos(z).

Could someone please explain the formula or method 3DEC uses to convert direction cosines into dip?

Here’s a list of ten examples, all values in degrees:

S3 X Y Z Dip (3DEC) Dip Dir (3DEC) Dip (from asin(z)) Dip Dir (from atan2(x,y) + 180 if negative)
-4.27332e+10 0.635 0.767 -0.095 100.00 39.63 5.45 39.62
-4.22866e+10 0 1 0 90.00 0.00 0.00 0.00
-3.14838e+10 0 1 0 90.00 0.00 0.00 0.00
-3.02755e+10 -0.469 0.883 -0.025 92.82 -28.00 1.43 152.03
-3.09667e+10 -0.918 -0.394 0.044 94.87 66.77 2.52 66.77
-1.36971e+10 -0.929 0.37 0.02 92.27 111.73 1.15 111.72
-9.80977e+09 -0.748 0.663 -0.01 91.14 -48.43 0.57 131.55
-1.90269e+10 0.305 0.951 -0.045 94.97 17.76 2.58 17.78
-2.43889e+10 0.674 0.738 0.023 92.56 -137.61 1.32 42.40
-1.95732e+10 0.64 0.764 0.078 98.34 -140.03 4.47 39.95

Thanks in advance!

The dip shown on the stereonet is acos(z)

Note that this is actually the normal to the s3 vector. The s3 vector plots correctly as a point on the steroenet (i.e., a sub-horizontal stress direction plots as a point near the outside of the stereonet), but when you hang your mouse over the point, it will give you a dip close to 90 (the dip of the perpendicular plane). So the actual dip of the stress vector is 90-acos(z) (or asin(z) as you suggest).

Thanks Jim, I appreciate it!

I got the 3DEC dip values by exporting data from the stereonet as a .csv, which exports the dip/dip direction of the stress vector itself.

If I am understanding correctly, this dip value should equal 90-acos(z) yet in the first row example I provided, then shouldn’t the z-value be cos(-(100-90)) = 0.984. And not -0.095 which is the z-value obtained using block zone list principal-stress for that zone. Am I missing something?

Thanks.

I think the exporting to CSV from the stereonet is not correct. It assumes a cartesian x,y system, which the stereonet is not. I don’t know that there is any way to dump the actual values from the stereonet to a file.

1 Like