stereo net introduction

26
Introduction to Stereonet A Mathematica package for visualizing, analyzing, and simulating orientation data in structural geology and rock engineering William C. Haneberg www.haneberg.com [email protected] Version 0.9 Draft of 16 June 2011 Copyright ©2011 William C. Haneberg Introduction Stereonet is a Mathematica package containing functions useful for visualizing, analyzing, and simulating orientation data in structural geology and rock engineering, as well as other fields—for example, sedimentology and glaciology—in which fabric or orientation data are of interest. If you're used to a stand-alone stereonet computer programs available, and there are many good examples out there, the first thing you'll notice is that Stereonet is much different. Traditional stereonet programs might include many features, but in the end they limit what users can do. While that might suffice if the program does exactly what you want, it hinders geologists who want to do anything else. For example, features that the author hadn't considered or had considered but rejected for one reason or another. Stereonet, on the other hand, is more like a box full of building blocks or components that provide much more freedom and flexibility. It is completely extensible, so you can use Stereonet functions within your own Mathematica functions, modify them to suit your needs, or write your own mini-applica- tions to solve specific problems. Likewise, you can combine the Stereonet functions with the many hundreds of standard Mathe- matica functions to solve just about any structural geology orientation problem that you might encounter. This Mathematica notebook is a brief introduction to the potential of Stereonet, ranging from installation and data import to more sophisticated topics like outlier detection, cluster analysis, and creation of interactive mini-applications. It is by no means exhaustive, so work through the examples and use them as a foundation for your own work. There's also a short bibliography at the end. It's by no means exhaustive, but provides a good place to start learning about the principles of spherical statistics and orientation analysis in structural geology. This introduction assumes a basic working knowledge of the applications of lower hemisphere projections in structural geology. IMPORTANT: Stereonet is provided free of charge and without warranty of any kind. Use it at your own risk and be sure to critically evaluate any results before using them in professional practice or research. You may redistribute it freely provided that the source and author are attributed, but may not sell, rent, or otherwise charge for copies of the entire package or portions of it.

Upload: dhaffer-al-mezhany

Post on 03-Jan-2016

81 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Stereo Net Introduction

Introduction to Stereonet

A Mathematica package for visualizing, analyzing, and simulating orientation data in structural geology and rock engineering

William C. [email protected]

Version 0.9Draft of 16 June 2011

Copyright ©2011 William C. Haneberg

Introduction

Stereonet is a Mathematica package containing functions useful for visualizing, analyzing, and simulating orientation data instructural geology and rock engineering, as well as other fields—for example, sedimentology and glaciology—in which fabric ororientation data are of interest. If you're used to a stand-alone stereonet computer programs available, and there are many goodexamples out there, the first thing you'll notice is that Stereonet is much different.

Traditional stereonet programs might include many features, but in the end they limit what users can do. While that might sufficeif the program does exactly what you want, it hinders geologists who want to do anything else. For example, features that theauthor hadn't considered or had considered but rejected for one reason or another. Stereonet, on the other hand, is more like a boxfull of building blocks or components that provide much more freedom and flexibility. It is completely extensible, so you can useStereonet functions within your own Mathematica functions, modify them to suit your needs, or write your own mini-applica-tions to solve specific problems. Likewise, you can combine the Stereonet functions with the many hundreds of standard Mathe-matica functions to solve just about any structural geology orientation problem that you might encounter.

This Mathematica notebook is a brief introduction to the potential of Stereonet, ranging from installation and data import to moresophisticated topics like outlier detection, cluster analysis, and creation of interactive mini-applications. It is by no meansexhaustive, so work through the examples and use them as a foundation for your own work. There's also a short bibliography atthe end. It's by no means exhaustive, but provides a good place to start learning about the principles of spherical statistics andorientation analysis in structural geology. This introduction assumes a basic working knowledge of the applications of lowerhemisphere projections in structural geology.

IMPORTANT: Stereonet is provided free of charge and without warranty of any kind. Use it at your own risk and be sure tocritically evaluate any results before using them in professional practice or research. You may redistribute it freely provided thatthe source and author are attributed, but may not sell, rent, or otherwise charge for copies of the entire package or portions of it.

Page 2: Stereo Net Introduction

Using Mathematica

This introduction assumes that you have a copy and basic working knowledge of Mathematica. It's vast and powerful generalpurpose package for virtually anything vaguely mathematical, including numercial and symbolic manipulation, statisticalanalysis, and graphics. What's more, Mathematica is completely programmable. If you're not already familiar with Mathematicasyntax and the notebook metaphor, take some time to get comfortable with it before trying to use Stereonet.

If you're looking for an introduction to Mathematica with a geological twist, I recomment Computational Geosciences withMathematica (Haneberg, 2004). Some of the sections are dated, particularly those involving graphics, but it's still a usefulintroduction to basic Mathematica commands and syntax.

Installing and Initializing Stereonet

Mathematica packages consist of text files containing functions to supplement those built into the software. Packages must beread in separately, but you can configure Mathematica to automatically read and initialize packages that you use often.

You need to place the Stereonet file someplace where Mathematica can find it. The easiest way to do that is to execute thecommand

In[1]:= $Path

Out[1]= 8�Applications�Mathematica_7�Mathematica.app�SystemFiles�Links,�Users�bill�Library�Mathematica�Kernel, �Users�bill�Library�Mathematica�Autoload,�Users�bill�Library�Mathematica�Applications, �Library�Mathematica�Kernel,�Library�Mathematica�Autoload, �Library�Mathematica�Applications, .,�Users�bill, �Applications�Mathematica_7�Mathematica.app�AddOns�Packages,�Applications�Mathematica_7�Mathematica.app�AddOns�LegacyPackages,�Applications�Mathematica_7�Mathematica.app�SystemFiles�Autoload,�Applications�Mathematica_7�Mathematica.app�AddOns�Autoload,�Applications�Mathematica_7�Mathematica.app�AddOns�Applications,�Applications�Mathematica_7�Mathematica.app�AddOns�ExtraPackages,�Applications�Mathematica_7�Mathematica.app�SystemFiles�Kernel�Packages,�Applications�Mathematica_7�Mathematica.app�Documentation�English�System<

This produces the default file path that Mathematica, at least as it's installed on my computer, follows to look for things. Yourresults might be slightly different. The important thing is that you copy the Stereonet file to one of the listed directories. Depend-ing on your operating system, you may or may not need administrator privileges to access some of the directories. Likewise, ifyou install it in, say, a directory along the /User... path, the package may not be accessible to other users of your computer. Youcan also add file paths, but should refer to the standard Mathematica documentation if you want to do that.

Once you've place the Stereonet file in a suitable directory, make it available using Needs

In[59]:= Needs@"Stereonet`"D

Now, you're ready to get some data and start plotting.

Getting Help

This introduction will include many of the functions included in Stereonet. If you know the name of the Stereonet function youwant to use, let's say ListEqualAreaPointPlot, then you can see the syntax using

2 StereonetIntroduction.nb

Page 3: Stereo Net Introduction

In[3]:= ? ListEqualAreaPointPlot

ListEqualAreaPointPlot@data, pointsize, optionsD creates a lower hemisphere equal area projection of vector data,

which must be a list of dip angles and dip directions Hor plunges and azimuths for lineationsL. It

is not necessary to specify point size unless graphics options are used, in which case the point

size must be given. Graphics options can be used to specify point colors, sizes, edge styles, etc.

Even if you don't know the full name, you can start typing it and then use Cntrl-k to autocomplete the word. Future versions ofStereonet may include a graphical palette to help select frequently used functions. There is a complete list of Stereonet functionsat the end of this introduction.

If you like to dig around in computer code, you can also gain some insight by opening the Stereonet file in a text editor, workingyour way through the functions, and maybe even modifying them to suit your needs. If you do that, though, save a backup copyBEFORE you start editing!

Data Import

There are basically two ways to get the data you need into Mathematica. First, you can manually enter it, which isn't too difficultif there are only a few data. Mathematica likes lists, and tables of data (say, dip angles and dip directions) are treated as lists oflists. Here's what a small data set might look like if entered by hand:

In[4]:= mydata = 8828, 045<, 833, 044<, 830, 043<, 826, 044<, 833, 042<, 834, 045<<

Out[4]= 8828, 45<, 833, 44<, 830, 43<, 826, 44<, 833, 42<, 834, 45<<

Each doublet is a dip angle and dip direction pair (or, if you have lineation data, a plunge and azimuth pair). To avoid confusingdip angles (or plunges) and dip directions (or azimuths), I make it a practice to always denote dip angles with two digits even if itmeans adding a leading zero (for example, 05) and dip directions with three digits (for example, 045).

The second way to get data into Mathematica is to import it from an external file. I like to use text files, but Mathematica canImport a wide range of formats including Excel spreadsheet (xls) files. Here's an example using a text file (data.txt) of dipvectors on my laptop. If you're running the executable Mathematica notebook of this introduction, you'll want to change the filepath so that it goes to the location of the stereodata.txt file on your computer.

StereonetIntroduction.nb 3

Page 4: Stereo Net Introduction

In[5]:= data = Import@"�Users�bill�Documents�Mathematica Notebooks�stereodata.txt", "Table"D

Out[5]= 8848.5633, 133.768<, 862.8382, 148.475<, 846.1772, 126.336<,858.5452, 164.238<, 847.6193, 143.345<, 859.9836, 158.994<,847.565, 135.096<, 855.7423, 126.205<, 856.6758, 140.118<, 855.3017, 143.385<,848.6889, 149.024<, 855.7114, 139.444<, 845.2786, 133.417<,852.9731, 134.995<, 857.5523, 125.4<, 847.778, 143.089<, 852.8973, 152.996<,851.8125, 152.895<, 842.7068, 142.031<, 847.9308, 152.049<, 851.297, 38.1217<,853.5388, 14.0104<, 842.3242, 18.5187<, 851.4065, 16.6529<, 851.7594, 19.5685<,846.9946, 24.8077<, 853.9745, 23.8949<, 833.648, 29.1232<, 830.9367, 3.56971<,849.2899, 27.0795<, 848.8551, 25.5334<, 837.1799, 16.0565<, 835.2105, 26.6289<,839.2301, 49.7843<, 839.3074, 31.3755<, 854.7344, 16.5241<, 847.3002, 23.9714<,834.9017, 27.2546<, 834.4981, 18.4568<, 829.0657, 13.9306<, 833.1171, 25.9041<,856.5569, 36.1743<, 855.3137, 24.5196<, 851.0974, 26.2351<, 846.3956, 25.6004<,841.2004, 32.3076<, 839.9912, 39.3676<, 858.2202, 18.0546<, 852.2297, 9.92212<,849.9795, 27.7572<, 846.3156, 21.9342<, 851.6604, 27.8662<, 852.9298, 20.4086<,836.8014, 301.915<, 836.8393, 307.551<, 841.0221, 285.31<, 836.1901, 277.304<,839.7966, 292.347<, 842.8285, 291.681<, 836.058, 286.855<, 835.6246, 283.005<,840.3895, 294.576<, 833.145, 298.022<, 832.8289, 281.052<, 842.305, 291.818<,837.2788, 287.011<, 843.8851, 293.76<, 843.205, 308.804<, 834.0575, 286.113<,826.6166, 297.036<, 864.8775, 130.611<, 835.3035, 75.8745<, 824.5077, 265.755<,841.5129, 18.189<, 869.7674, 292.13<, 820.8657, 144.317<, 881.0053, 178.115<,838.8833, 279.811<, 817.0744, 80.9235<, 829.1742, 234.145<, 855.9657, 194.139<<

You can avoid typing the long file path by using the Insert ® File Path... pulldown menu item, which will bring up a dialog boxthat allows you to pick the file you want and then inserts that name following the cursor. Mathematica automatically recognizesany file with a .dat suffix as a table of data, but I've found that the .dat suffix can conflict with other file types. So, if you use a.txt suffix then also include the "Table" declaration to explicitly tell Mathematica what kind of data structure to expect.

If the data file you're importing has headers or more information than just dip angle and dip direction, you can use the listmanipulation capabilities of Mathematica to pull out whatever you need.

Basic Plots

Stereonet has functions for two basic types of equal area or stereographic projections: points and arcs. Point plots are for vectordata (including dip vectors and poles to planes, which allow planes to be represented as vectors or, when they intersect the lowerhemisphere, simply points). Arc, or great circle, plots are for planar data.

Here's the simplest possible point plot of the example data:

4 StereonetIntroduction.nb

Page 5: Stereo Net Introduction

In[6]:= ListEqualAreaPointPlot@dataD

Out[6]=

0

90

180

270

Function names in Stereonet correspond largely to the style of standard Mathematica function names. For example,ListEqualAreaPointPlot was chosen because it has the same etymology as such standard Mathematica functions asListPlot, ListPointPlot, ListPlot3D, and so forth

The simple approach works, but there's also a lot that can be done to improve its looks. For example, coloring or adjusting theopacity of points using Mathematica graphics options. Note that while it isn't necessary to specify a point size if you use thesimple implementation above, it is if you're going to add graphics options. We'll use a relative point size of 0.02 and make thepoints translucent red with black edges to illustrate some of the flexibility of Stereonet. Refer to the Mathematica documentationfor more information about graphics options in general, and then experiment with some obvious variations like changing thecolor or point size.

StereonetIntroduction.nb 5

Page 6: Stereo Net Introduction

In[7]:= ListEqualAreaPointPlot@data, 0.02, Style ® 8Red, [email protected], EdgeForm@BlackD<D

Out[7]=

0

90

180

270

Stereonet also includes a polar mesh that can help to visualize the data. It doesn't do much on its own, but can easily be combinedwith existing plots like this (where the % is Mathematica shorthand for the previous output line):

In[8]:= Show@EqualAreaMesh@D, %D

Out[8]=

0

90

180

270

Likewise, it's a simple matter to make a basic arc plot (although one quirk is that you must specify graphics options for arc plotsbecause there's no default style).

6 StereonetIntroduction.nb

Page 7: Stereo Net Introduction

In[9]:= ListEqualAreaArcPlot@data, Style ® 8Thick, Blue<D

Out[9]=

0

90

180

270

Here is where the real flexibility of this approach becomes evident: the previous two plots can be combined in a few keystrokesto illustrate both the dip vectors and the great circles for all of the planes in data.

In[10]:= Show@%, %%D

Out[10]=

0

90

180

270

0

90

180

270

It's also easy to convert between dip vectors and poles, using DiplineToPole and the Mathematica function Map.

StereonetIntroduction.nb 7

Page 8: Stereo Net Introduction

In[11]:= poles = Map@DiplineToPole, dataD

Out[11]= 8841.4367, 313.768<, 827.1618, 328.475<, 843.8228, 306.336<,831.4548, 344.238<, 842.3807, 323.345<, 830.0164, 338.994<,842.435, 315.096<, 834.2577, 306.205<, 833.3242, 320.118<, 834.6983, 323.385<,841.3111, 329.024<, 834.2886, 319.444<, 844.7214, 313.417<,837.0269, 314.995<, 832.4477, 305.4<, 842.222, 323.089<, 837.1027, 332.996<,838.1875, 332.895<, 847.2932, 322.031<, 842.0692, 332.049<, 838.703, 218.122<,836.4612, 194.01<, 847.6758, 198.519<, 838.5935, 196.653<, 838.2406, 199.568<,843.0054, 204.808<, 836.0255, 203.895<, 856.352, 209.123<, 859.0633, 183.57<,840.7101, 207.079<, 841.1449, 205.533<, 852.8201, 196.057<, 854.7895, 206.629<,850.7699, 229.784<, 850.6926, 211.375<, 835.2656, 196.524<, 842.6998, 203.971<,855.0983, 207.255<, 855.5019, 198.457<, 860.9343, 193.931<, 856.8829, 205.904<,833.4431, 216.174<, 834.6863, 204.52<, 838.9026, 206.235<, 843.6044, 205.6<,848.7996, 212.308<, 850.0088, 219.368<, 831.7798, 198.055<, 837.7703, 189.922<,840.0205, 207.757<, 843.6844, 201.934<, 838.3396, 207.866<, 837.0702, 200.409<,853.1986, 121.915<, 853.1607, 127.551<, 848.9779, 105.31<, 853.8099, 97.3036<,850.2034, 112.347<, 847.1715, 111.681<, 853.942, 106.855<, 854.3754, 103.005<,849.6105, 114.576<, 856.855, 118.022<, 857.1711, 101.052<, 847.695, 111.818<,852.7212, 107.011<, 846.1149, 113.76<, 846.795, 128.804<, 855.9425, 106.113<,863.3834, 117.036<, 825.1225, 310.611<, 854.6965, 255.874<, 865.4923, 85.7552<,848.4871, 198.189<, 820.2326, 112.13<, 869.1343, 324.317<, 88.99474, 358.115<,851.1167, 99.811<, 872.9256, 260.923<, 860.8258, 54.1449<, 834.0343, 14.1389<<

In[12]:= ListEqualAreaPointPlot@poles, 0.02, Style ® 8Purple, [email protected], EdgeForm@BlackD<D

Out[12]=

0

90

180

270

Poles can be converted back to their dip vectors using PoleToDipline

8 StereonetIntroduction.nb

Page 9: Stereo Net Introduction

In[13]:= Map@PoleToDipline, polesD

Out[13]= 8848.5633, 133.768<, 862.8382, 148.475<, 846.1772, 126.336<,858.5452, 164.238<, 847.6193, 143.345<, 859.9836, 158.994<,847.565, 135.096<, 855.7423, 126.205<, 856.6758, 140.118<, 855.3017, 143.385<,848.6889, 149.024<, 855.7114, 139.444<, 845.2786, 133.417<,852.9731, 134.995<, 857.5523, 125.4<, 847.778, 143.089<, 852.8973, 152.996<,851.8125, 152.895<, 842.7068, 142.031<, 847.9308, 152.049<, 851.297, 38.1217<,853.5388, 14.0104<, 842.3242, 18.5187<, 851.4065, 16.6529<, 851.7594, 19.5685<,846.9946, 24.8077<, 853.9745, 23.8949<, 833.648, 29.1232<, 830.9367, 3.56971<,849.2899, 27.0795<, 848.8551, 25.5334<, 837.1799, 16.0565<, 835.2105, 26.6289<,839.2301, 49.7843<, 839.3074, 31.3755<, 854.7344, 16.5241<, 847.3002, 23.9714<,834.9017, 27.2546<, 834.4981, 18.4568<, 829.0657, 13.9306<, 833.1171, 25.9041<,856.5569, 36.1743<, 855.3137, 24.5196<, 851.0974, 26.2351<, 846.3956, 25.6004<,841.2004, 32.3076<, 839.9912, 39.3676<, 858.2202, 18.0546<, 852.2297, 9.92212<,849.9795, 27.7572<, 846.3156, 21.9342<, 851.6604, 27.8662<, 852.9298, 20.4086<,836.8014, 301.915<, 836.8393, 307.551<, 841.0221, 285.31<, 836.1901, 277.304<,839.7966, 292.347<, 842.8285, 291.681<, 836.058, 286.855<, 835.6246, 283.005<,840.3895, 294.576<, 833.145, 298.022<, 832.8289, 281.052<, 842.305, 291.818<,837.2788, 287.011<, 843.8851, 293.76<, 843.205, 308.804<, 834.0575, 286.113<,826.6166, 297.036<, 864.8775, 130.611<, 835.3035, 75.8745<, 824.5077, 265.755<,841.5129, 18.189<, 869.7674, 292.13<, 820.8657, 144.317<, 881.0053, 178.115<,838.8833, 279.811<, 817.0744, 80.9235<, 829.1742, 234.145<, 855.9657, 194.139<<

Mathematica has sophisticated comparison capabilities, so the fact that PoleToDipline worked correctly can be verified bytesting whether the result (using the Mathematica shorthand symbol % for the previous output line) is logically equal to datausing the == operator.

In[14]:= % � data

Out[14]= True

Stereographic Projections

Stereonet also includes the functions ListStereoPointPlot and ListStereoArcPlot for plotting lower hemisphere stereo-graphic, rather than equal area, projections. Their syntax is identical to the corresponding equal area functions.

Contouring

Contouring the density of dip vectors or poles is one of the most common ways to visualize real (i.e., noisy) data, and Stereonetoffers two options:

The traditional approach using a counting circle and contour interval of essentially arbitrary size (the standard is generall 1% of the projection area) and

magnitude. As implemented in Stereonet, however, both the counting circle size and contour interval are user specified. Additionally, the user can specifythe order of the polynomial used to interpolate the surface that is actually contoured (the default value is linear interpolation).

Kamb's method in which the counting circle size and contour interval are statistically determined and will vary from data set to data set.

Here's a simple illustration, again using data, with the traditional 1% counting circle area, 5% contour interval, and linearinterpolation:

StereonetIntroduction.nb 9

Page 10: Stereo Net Introduction

In[15]:= ListEqualAreaContourPlot@data, 0.01, 0.05D

Out[15]=

0

90

180

270

Although the contour lines are not labeled, holding the cursor over a contour line will cause its value to appear. Cubic interpola-tion produces smoother contours:

In[16]:= ListEqualAreaContourPlot@data, 0.01, 0.05, InterpolationOrder ® 3D

Out[16]=

0

90

180

270

Interpolation orders can be can be any integer 1, 2, 3... (although values greater than 3 are likely to cause problems) or None. Thetraditional 1% counting circle area isn't justified statistically unless sample sizes are very large (many hundreds of points. Pollardand Fletcher (2005) and Kamb (1959) discuss the reasons in detail; we'll illustrate using an example. If the counting circle areaand contour interval are both changed to 5%, the plot shows definitely two and maybe three clusters or sets:

10 StereonetIntroduction.nb

Page 11: Stereo Net Introduction

In[17]:= ListEqualAreaContourPlot@data, 0.05, 0.05, InterpolationOrder ® 3D

Out[17]=

0

90

180

270

Notice that some of the maxima in the first plot disappear when the counting circle area is increased, suggesting that they werespurious rather than real concentrations of dip vectors. The contour interval is changed correspondingly, as well, because thevalue being contoured is the percentage of data points falling within the counting circle. As the counting circle area increases, sodoes the percentage of points falling within it; thus, a larger contour interval is useful.

Filled contours can be distracting if they are combined with the individual data points, and can be removed using the standardContourShading option for Mathematica contour plots.

In[18]:= ListEqualAreaContourPlot@data, 0.05, 0.05, InterpolationOrder ® 3, ContourShading ® FalseD

Out[18]=

0

90

180

270

As before, Show can be used to build up composite plots like the dip vector points superimposed on the contours.

StereonetIntroduction.nb 11

Page 12: Stereo Net Introduction

In[19]:= Show@ListEqualAreaContourPlot@data, 0.05, 0.05, InterpolationOrder ® 3, ContourShading ® FalseD,ListEqualAreaPointPlot@data, 0.02, Style ® 8Red, [email protected], EdgeForm@BlackD<D

D

Out[19]=

0

90

180

270

0

90

180

270

Note that the individual dip vector clusters don't coincide exactly the the contour maxima, although they should always be close.There are three reasons for that. First, the data are relatively sparse. Second, it's not the actual dip vectors that are being con-toured, but instead their spatial density as measured on a counting circle grid (Stereonet calculates the values on a 20 ́20 grid,but you're welcome to change that if it suits you). Thus, the visual center of a given cluster might not correspond exactly to acounting circle grid point. Third, the contouring is done by interpolating a surface between all of the counting circle grid points.That's not to say that contouring dip vector or pole concentrations isn't a good thing to do, just that it's a process full of assump-tions and approximations and its important to understand how all of them affect the final results.

By way of comparison, here is a Kamb-contoured plot of the same data. The counting circle area is based on the number ofpoints (in this case n = 38) and a statistical assessment of the number of points that one might expect to find in a given area ifthey were randomly distributed (see Kamb, 1959, for details). In this case, the counting circle area is 19%. Contours are specifiedin terms of the standard deviation of the data, Σ. Because they are calculated, rather than user-specified, this function returnsinformation about the counting circle area and data statistics.

In[20]:= ListKambPlot@data, 2, InterpolationOrder ® 3D

12 StereonetIntroduction.nb

Page 13: Stereo Net Introduction

N = 81

A = 0.1%

Μ = 25.4469

Σ = 4.17762

CI = 2 Σ

Out[20]=

0

90

180

270

This is a good time to introduce another capability of Mathematica: real time manipulation of functions and plots. Here is a shortmini-application with sliders to vary both the counting circle area (A) and the contour interval (CI) to illustrate to simply chang-ing either of those two values can change the appearance of the contour plot.

StereonetIntroduction.nb 13

Page 14: Stereo Net Introduction

In[21]:= ListEqualAreaPointPlot@data, 0.02, Style ® 8Red, [email protected], EdgeForm@BlackD<D

Out[21]=

0

90

180

270

In[22]:=

14 StereonetIntroduction.nb

Page 15: Stereo Net Introduction

In[23]:= Manipulate@Show@ListEqualAreaContourPlot@data, A, CI, InterpolationOrder ® 3, ContourShading ® FalseD,ListEqualAreaPointPlot@data, 0.02, Style ® 8Red, [email protected], EdgeForm@BlackD<D

D, 88A, 0.05<, 0.01, 0.25, Appearance ® "Labeled"<,88CI, 0.05<, 0.01, 0.25, Appearance ® "Labeled"<

D

Out[23]=

A 0.05

CI 0.05

0

90

180

270

0

90

180

270

Outlier Removal

It can often be desirable to remove stray points—outliers—before analyzing data. Regardless of the data type, this must alwaysbe done with caution and geologic insight about the possible signifiicance of the points being removed. In structural geology orrock engineering, it might be justifiable to remove random non-systematic joint orientations when there is clear evidence thatthey are insignificant compared to more strongly developed systematic joint sets. On the other hand, apparent outliers mayactually be valid members of significant joint sets that are under-represented because of inaccessibility, outcrop or boreholesampling bias, or other factors. For example, a set may contain a only a few joints but if they are very persistent or favorablyoriented with respect to the prevailing state of stress, they may exert an influence on mechanical behavior of fluid flow that isdisproportionate to their numbers.

Outliers can be removed by manual editing, although that process is tedious and subjective. Stereonet includes an implementationof the objective probabilistic method proposed by Mahtab and Yegulalp (1982), also described in Priest (1993), which uses auser-specified angular radius to remove outliers if it appears that they do not have enough nearby neighbors to be part of a clusteror set. Here is how it might be applied to the example data set:

StereonetIntroduction.nb 15

Page 16: Stereo Net Introduction

In[24]:= filtered = OutlierRemoval@data, 20D

Out[24]= 8848.5633, 133.768<, 862.8382, 148.475<, 846.1772, 126.336<, 858.5452, 164.238<,847.6193, 143.345<, 859.9836, 158.994<, 847.565, 135.096<, 855.7423, 126.205<,856.6758, 140.118<, 855.3017, 143.385<, 848.6889, 149.024<, 855.7114, 139.444<,845.2786, 133.417<, 852.9731, 134.995<, 857.5523, 125.4<, 847.778, 143.089<,852.8973, 152.996<, 851.8125, 152.895<, 842.7068, 142.031<, 847.9308, 152.049<,851.297, 38.1217<, 853.5388, 14.0104<, 842.3242, 18.5187<, 851.4065, 16.6529<,851.7594, 19.5685<, 846.9946, 24.8077<, 853.9745, 23.8949<, 833.648, 29.1232<,849.2899, 27.0795<, 848.8551, 25.5334<, 837.1799, 16.0565<, 835.2105, 26.6289<,839.2301, 49.7843<, 839.3074, 31.3755<, 854.7344, 16.5241<, 847.3002, 23.9714<,834.9017, 27.2546<, 834.4981, 18.4568<, 829.0657, 13.9306<, 833.1171, 25.9041<,856.5569, 36.1743<, 855.3137, 24.5196<, 851.0974, 26.2351<, 846.3956, 25.6004<,841.2004, 32.3076<, 839.9912, 39.3676<, 858.2202, 18.0546<, 852.2297, 9.92212<,849.9795, 27.7572<, 846.3156, 21.9342<, 851.6604, 27.8662<, 852.9298, 20.4086<,836.8014, 301.915<, 836.8393, 307.551<, 841.0221, 285.31<, 836.1901, 277.304<,839.7966, 292.347<, 842.8285, 291.681<, 836.058, 286.855<, 835.6246, 283.005<,840.3895, 294.576<, 833.145, 298.022<, 832.8289, 281.052<, 842.305, 291.818<,837.2788, 287.011<, 843.8851, 293.76<, 843.205, 308.804<, 834.0575, 286.113<,826.6166, 297.036<, 864.8775, 130.611<, 841.5129, 18.189<, 838.8833, 279.811<<

In that form, the results are not very insightful. However, it is good to have them available. The easiest way to see the effect is toplot them along with the original data. The following statements make two plots (showing neither, because the semi-colonsupresses Mathematica output) and then uses Show to combine them. In this case, the original data are the small red circles andthe filtered data are the larger blue circles.

In[25]:= ListEqualAreaPointPlot@data, 0.02, Style ® 8Red, [email protected], EdgeForm@BlackD<D;ListEqualAreaPointPlot@filtered, 0.04, Style ® 8Blue, [email protected], EdgeForm@BlackD<D;Show@%, %%D

Out[27]=

0

90

180

270

0

90

180

270

If the degree of filtering appears too strong, the angular radius can be increased to loosen the criterion for determining whether apoint is a member of a cluster. Here are the results for a 30° radius:

16 StereonetIntroduction.nb

Page 17: Stereo Net Introduction

In[28]:= filtered2 = OutlierRemoval@data, 30D;ListEqualAreaPointPlot@data, 0.02, Style ® 8Red, [email protected], EdgeForm@BlackD<D;ListEqualAreaPointPlot@filtered2, 0.04, Style ® 8Green, [email protected], EdgeForm@BlackD<D;Show@%, %%D

Out[31]=

0

90

180

270

0

90

180

270

Cluster Delineation

Stereonet includes a clustering function that is an angular adaptation of the standard Mathematica function FindClusters, inwhich the distance metric used to group clusters is the angle between each pair of vectors, taking into account the fact that whenonly one hemisphere is used the data can be wrapped from one hemisphere to the other. The clustering algorithms can be used oneither dip vectors or poles, as the situation dictates.

In[32]:= clusters = FindDiplineClusters@dataD

Out[32]= 88848.5633, 133.768<, 862.8382, 148.475<, 846.1772, 126.336<, 858.5452, 164.238<,847.6193, 143.345<, 859.9836, 158.994<, 847.565, 135.096<, 855.7423, 126.205<,856.6758, 140.118<, 855.3017, 143.385<, 848.6889, 149.024<, 855.7114, 139.444<,845.2786, 133.417<, 852.9731, 134.995<, 857.5523, 125.4<, 847.778, 143.089<,852.8973, 152.996<, 851.8125, 152.895<, 842.7068, 142.031<, 847.9308, 152.049<,864.8775, 130.611<, 820.8657, 144.317<, 881.0053, 178.115<, 855.9657, 194.139<<,

8851.297, 38.1217<, 853.5388, 14.0104<, 842.3242, 18.5187<, 851.4065, 16.6529<,851.7594, 19.5685<, 846.9946, 24.8077<, 853.9745, 23.8949<, 833.648, 29.1232<,830.9367, 3.56971<, 849.2899, 27.0795<, 848.8551, 25.5334<, 837.1799, 16.0565<,835.2105, 26.6289<, 839.2301, 49.7843<, 839.3074, 31.3755<, 854.7344, 16.5241<,847.3002, 23.9714<, 834.9017, 27.2546<, 834.4981, 18.4568<, 829.0657, 13.9306<,833.1171, 25.9041<, 856.5569, 36.1743<, 855.3137, 24.5196<, 851.0974, 26.2351<,846.3956, 25.6004<, 841.2004, 32.3076<, 839.9912, 39.3676<, 858.2202, 18.0546<,852.2297, 9.92212<, 849.9795, 27.7572<, 846.3156, 21.9342<, 851.6604, 27.8662<,852.9298, 20.4086<, 835.3035, 75.8745<, 841.5129, 18.189<, 817.0744, 80.9235<<,

8836.8014, 301.915<, 836.8393, 307.551<, 841.0221, 285.31<, 836.1901, 277.304<,839.7966, 292.347<, 842.8285, 291.681<, 836.058, 286.855<,835.6246, 283.005<, 840.3895, 294.576<, 833.145, 298.022<, 832.8289, 281.052<,842.305, 291.818<, 837.2788, 287.011<, 843.8851, 293.76<, 843.205, 308.804<,834.0575, 286.113<, 826.6166, 297.036<, 824.5077, 265.755<,869.7674, 292.13<, 838.8833, 279.811<, 829.1742, 234.145<<<

Mathematica automatically decides that the best solution is to have 3 clusters, but that can be hard to see. So, use Length to seehow many lists are included in clusters

StereonetIntroduction.nb 17

Page 18: Stereo Net Introduction

Mathematica automatically decides that the best solution is to have 3 clusters, but that can be hard to see. So, use Length to seehow many lists are included in clusters

In[33]:= Length@clustersD

Out[33]= 3

Stereonet has a function specifically for plotting the output of FindDiplineClusters (it will also work on data that you groupor cluster in other ways, as long as it has the same format). Here are the results, in this case demonstrated using a nested series offunctions.

In[34]:= EqualAreaClusterPlot@FindDiplineClusters@dataDD

Out[34]=

0

90

180

270

0

90

180

270

0

90

180

270

By default, FindDiplineClusters will try to determine the optimal number of clusters. In this case, the results look veryreasonable. The automatic determination can be overridden by specifying the number of clusters to delineate. Here is an examplein which 2 clusters are specified:

18 StereonetIntroduction.nb

Page 19: Stereo Net Introduction

In[35]:= EqualAreaClusterPlot@FindDiplineClusters@data, 2DD

Out[35]=

0

90

180

270

0

90

180

270

The result isn't nearly as good, so it would be better to stick with 3 clusters in this case.

Location and Dispersion Statistics

Once sets are identified, either manually or statistically using FindDiplineClusters, their mean values and degree of scattercan be summarized with a variety of spherical statistics.

The mean vector of a set is calculated using MeanVector. In the case of results from FindDiplineClusters, there are threelists of data comprising a single list of results. Again, Map is a very useful function because it distributes MeanVector across thethree lists

In[36]:= meanvecs = Map@MeanVector, clustersD

Out[36]= 8853.5936, 143.921<, 845.4572, 27.4721<, 839.156, 287.159<<

The mean poles can be shown together with the individual clusters for comparison, again by making two plots while suppressingoutput with a semi-colon, then using Show to combine them.

StereonetIntroduction.nb 19

Page 20: Stereo Net Introduction

In[37]:= EqualAreaClusterPlot@clustersD;ListEqualAreaPointPlot@meanvecs, 0.05, Style ® 8Gray, [email protected]<D;clusterplot = Show@%, %%D

Out[39]=

0

90

180

270

0

90

180

270

0

90

180

270

0

90

180

270

The scatter or dispersion inherent in each cluster—which may be caused by a variety of factors including instrument error,human error, and natural variability—can be quantified using several statistics available in Stereonet. The angular standarddeviations for the three clusters are:

In[40]:= stddevs = Map@AngularStdDev, clustersD

Out[40]= 813.7193, 15.1032, 15.5756<

The angular confidence radii for the mean (at an Α = 0.05 level of significance) are:

In[41]:= Map@AngularConfidenceRadius, clustersD

Out[41]= 85.03971, 4.45317, 6.13509<

Fisher's K statistics are:

In[42]:= Map@FisherK, clustersD

Out[42]= 835.4431, 29.7511, 27.8221<

Cronin's Β values (Cronin, 2008) for uncertainty in the mean strikes of the clusters are:

In[43]:= Map@CroninBeta, clustersD

Out[43]= 88.57487, 6.38143, 7.97284<

The angular standard deviations and confidence radii can be plotted using the Stereonet function EqualAreaCirclePlot. Of course, it would always be possible to plot just one circle but there are three sets in the example. So, this is how one mightmake a table by taking the centers of each cluster from meanpoles and their angular standard deviations from stddevs, create atable of plots, and then show them together:

20 StereonetIntroduction.nb

Page 21: Stereo Net Introduction

In[44]:= Show@Table@EqualAreaCirclePlot@meanvecs@@iDD, stddevs@@iDDD, 8i, 3<

D, clusterplotD

Out[44]=

0

90

180

270

0

90

180

270

0

90

180

270

0

90

180

270

0

90

180

270

0

90

180

270

0

90

180

270

Another way to remove outliers might be to perform clustering, calculate some measure of dispersion (like the angular standarddeviation), and filter out any points that fall outside of that threshold.

You say that one standard deviation isn't enough? Here's how to do the same thing but with circles showing both one and twoangular standard deviations:

StereonetIntroduction.nb 21

Page 22: Stereo Net Introduction

In[45]:= Show@Table@EqualAreaCirclePlot@meanvecs@@iDD, stddevs@@iDDD, 8i, 3<

D,Table@EqualAreaCirclePlot@meanvecs@@iDD, 2 stddevs@@iDDD, 8i, 3<

D,clusterplot

D

Out[45]=

0

90

180

270

0

90

180

270

0

90

180

270

0

90

180

270

0

90

180

270

0

90

180

270

0

90

180

270

0

90

180

270

0

90

180

270

0

90

180

270

Eigenvalue Fabric Analysis

Stereonet implements eigenvalue fabric analysis as described by Woodcock (1977), Scheidegger (1965), and others. The keylimitation is that it must be applied thoughtfully, for example to measurements representing a single joint set. Here are the resultsfor the first set delineated by the clustering function:

In[46]:= eigen = EigenFabricAnalysis@clusters@@1DDD

Out[46]= 8854, 144<, 822.7626, 0.864028, 0.373371<, 88-0.351507, 0.478367, 0.804741<,80.737576, -0.387887, 0.552744<, 8-0.576563, -0.787851, 0.216487<<<

The direction cosines of the first eigenvector define the mean vector, which is returned separately by EigenFabricAnalysis

In[47]:= eigen@@1DD

Out[47]= 854, 144<

and identical to the result calcuated by MeanVector

In[48]:= Round@MeanVector@clusters@@1DDDD

Out[48]= 854, 144<

The three eigenvalues, the ratios of which characterize the shape of girdles or clusters (see Woodcock, 1977) are

22 StereonetIntroduction.nb

Page 23: Stereo Net Introduction

In[49]:= eigen@@2DD

Out[49]= 822.7626, 0.864028, 0.373371<

Finally, the three eigenvectors, should you have need for them, are

In[50]:= eigen@@3DD

Out[50]= 88-0.351507, 0.478367, 0.804741<,80.737576, -0.387887, 0.552744<, 8-0.576563, -0.787851, 0.216487<<

It's easy to verify that the first eigenvector comprises the direction cosines of the mean vector.

In[51]:= CosinesToDipline@-eigen@@3, 1DDD

Out[51]= 853.5852, 143.691<

The minus sign ensures a downward-directed mean dip vector, and is required because the third or z components of the eigenvec-tors are positive.

Optimal Drilling Directions

Given the three joint example joint sets, is there a single optimal drilling direction that will maximize intersection of a boreholewith all three sets, either for rock mass characterization or fluid production? More than one optimal direction? Stereonet includesthe capability to produce equal area projections of the linear sampling angular deviation (LSAD) defined by Haneberg (2009)

In[52]:= Show@EqualAreaLSADPlot@meanvecsD,ListEqualAreaPointPlot@meanvecs, 0.04D,EqualAreaMesh@D

D

Out[52]=

0

90

180

270

0

90

180

270

The most optimal drilling directions correspond to LSAD minima, and the most significant minimum in this case suggests anessentially vertical borehole (80°/210° plunge/azimuth). The second most significant minimum is defined by a vector orientedapproximately 25°/300°. LSAD maxima, here shown in light colors, represent the most unfavorable drilling directions.

Fisher Random Deviates

StereonetIntroduction.nb 23

Page 24: Stereo Net Introduction

Fisher Random Deviates

It is sometimes useful to generate random deviates, for example in probabilistic simulations of fracture orientation distributions.Stereonet includes the function FisherRandomDeviate, which generates a single random sample from a Fisher distributionwith a specified mean and Κ value. In this example, Κ = 100.

In[53]:= FisherRandomDeviate@835, 135<, 100D

Out[53]= 836.8329, 122.979<

For probabilistic modeling it's often necessary to generate large numbers of random deviates. This is how one can generate atable of 100 random deviates:

In[54]:= fisher = Table@FisherRandomDeviate@835, 135<, 100D, 8i, 100<

D;

And, here is what they look like:

In[55]:= ListEqualAreaPointPlot@fisher, 0.02, Style ® 8Orange, [email protected], EdgeForm@BlackD<D

Out[55]=

0

90

180

270

As a check, calculate the mean vector and Fisher K statistic for the simulated data. They're pretty close to the input values:

In[56]:= MeanVector@fisherDFisherK@fisherD

Out[56]= 834.8406, 135.413<

Out[57]= 93.9326

24 StereonetIntroduction.nb

Page 25: Stereo Net Introduction

Markland Plots

Markland (1972) plots are often used in rock engineering to perform preliminary kinematic analyses of slope stability in jointedrock masses, and Stereonet includes a function for creating simplified Markland plots. EqualAreaMarklandPlot requires 1) aset of discontinuity orientation data for the slope being analyzed, 2) an estimate of the angle of internal friction along the disconti-nuities, and 3) the orientation of the rock face (which is assumed to be planar). Discontinuities and the slope face are specified bytheir dip vectors, and the angle of internal friction is given in degrees. Using the example data set, a slope oriented 45°/340°, andan angle of internal friction of Φ = 25°, here is the result:

In[58]:= EqualAreaMarklandPlot@data, 845, 340<, 25D

Out[58]=

0

90

180

270

In the Stereonet implementation of Markland's method, the friction circle is represented by the cream or light yellow color, theslope face is represented by the thick red great circle, and the discontinuities are represented by blue great circles. Great circleintersections or dip vectors that fall between the slope face and the edge of the friction circle (colored orange) daylight from theslope and dip at angles steeper than the angle of internal friction. Thus, they are kinematically susceptible to wedge (great circleintersections) or plane (dip vectors) failure under dry, cohesionless, and static conditions. Many practitioners further limit thezone of potential instability to discontinuity dip vectors or discontinuity intersections that fall within ±30° of the slope face dipvector. In this example, the Markland plot indicates a high potential for wedge failures controlled by the NE and NW dippingdiscontinuity sets. The SE dipping set does not pose a wedge or plane failure hazard.

As currently written, the Stereonet implementation of Markland's plot does not include the potential for toppling.

BibliographyBorradaile, G., 2003, Statistics of Earth Science Data: Springer, 378 pp.

Cronin, V.S., 2008, Finding the mean and 95 percent confidence interval of a set of strike-and-dip or lineation data: Environmental & Engineering Geoscience, v. 14, p. 113-119.Fisher, N.I., Lewis, T., and Embleton, B.J.J., 1993, Statistical Analysis of Spherical Data: Cambridge, 344 pp.

Haneberg, W.C., 2009, Improved optimization and visualization of drilling directions for rock mass discontinuity characterization: Environmental & Engineering Geoscience, v. 15, p. 107-113.Haneberg, W.C., 2004, Computational Geosciences with Mathematica: Springer, 382 pp.

Kamb, W.B., 1959, Ice petrofabric observations from Blue Glacier, Washington, in relation to theory and experiment: Journal of Geophysical Research, v. 64, p. 1891-1909.Mahtab, M.A. and Yegulalp, T.M, 1982, A rejection criterion for definition of clusters in orientation data, in Issues in Rock Mechanics, Proceedings, 23rd. Symposium on Rock Mechanics, pp. 116-123.

StereonetIntroduction.nb 25

Page 26: Stereo Net Introduction

Mahtab, M.A. and Yegulalp, T.M, 1982, A rejection criterion for definition of clusters in orientation data, in Issues in Rock Mechanics, Proceedings, 23rd. Symposium on Rock Mechanics, pp. 116-123.Markland, J.T.,1972, A useful technique for estimating the stability of rock slopes when the rigid wedge slide type of failure is expected: Imperial College, London, Rock Mechanics Research Reprint 19.Pollard, D.D. and Fletcher, R.C., 2005, Fundmentals of Structural Geology: Cambridge, 512 pp.

Priest, S.D., 1993, Discontinuity Analysis for Rock Engineering: Chapman & Hall, 496 pp.

Scheidegger, A.E., 1965, On the statistics of the orientation of bedding planes, grain axes and similar sedimentological data: U.S. Geological Survey Professional Paper 525-C, p. C164-C167.Watson, G.S., 1966, The statistics of orientation data: Journal of Geology, v. 74, p. 786-797.

Woodcock, N.H., 1977, Specification of fabric shapes using an eigenvalue method: GSA Bulletin, v. 88, p. 1231-1236.

26 StereonetIntroduction.nb