Describing three-dimensional structures with spherical and Cartesian coordinates

Jack Loveless, Smith College

Author Profile


Analyzing three-dimensional orientation data using a stereonet is an important component of any structural geology course, ideally helping students to visualize structural geometry and serving as a springboard for more advanced topics such as fault and fold kinematics. Rather than teaching my students about stereonets using tracing paper and pushpins, I use the newest version of Rick Allmendinger and Néstor Cardozo's OSXStereonet program, which includes elegant, interactive three-dimensional view options. Simultaneously, I teach students transformation of orientation data between spherical coordinates and Cartesian coordinates, using MATLAB functions to carry out the conversions. We simultaneously solve problems involving orientation data using OSXStereonet and MATLAB, allowing students to gain an understanding of the mathematics that OSXStereonet carries out behind the scenes while using the visualization capabilities of OSXStereonet to reinforce the three-dimensional concepts.

Keywords: Stereonet, OSXStereonet, Matlab, spherical, Cartesian, visualization

Used this activity? Share your experiences and modifications



Undergraduate required course in structural geology.

Skills and concepts that students must have mastered

Basic understanding of strike and dip, trend and plunge, and rake. I introduce stereonets in class using a hands-on approach, with each student having a small hemisphere (half a spherical Christmas ornament), a semicircular plane, and a toothpick line.

How the activity is situated in the course

Standalone exercise; hybrid lecture/lab exercise with a short independent assignment.


Content/concepts goals for this activity

Three-dimensional visualization, representation of three-dimensional data, relationships between structural data.

Higher order thinking skills goals for this activity

Validating "black box" computer programs, applications of linear algebra to three-dimensional geometries

Other skills goals for this activity

Learning the basics of MATLAB — defining variables from the command line, grouping variables into arrays, calling functions. Critically thinking about workflow.

Description and Teaching Materials

This activity introduces stereographic projection in a manner different from my own undergraduate experience in structural geology. I learned to plot planes as great circles and lines as points on tracing paper. The tracing paper method provides students with some understanding of three-dimensional structural data and relationships among them (calculating an angle between planes, rotating data, etc.), but the theory behind why a plane is plotted in a particular way is obscured. I decided to teach my students about stereographic projection through linear algebra. Because linear algebra is a foreign concept to many introductory structure students, I introduce the concepts alongside the excellent three-dimensional visualization capability of OSXStereonet.

I introduce stereonets by working through the material in "SphericalCoordsBackground.doc", then walk students through a few exercises to get them accustomed to the OSXStereonet and Matlab interfaces: plot a plane in OSXStereonet, visualize it in three-dimensions, plot and visualize its pole; calculate the Cartesian coordinates of the same pole using Matlab and compare those coordinates with the three-dimensional view of the vector. I then introduce some operations in OSXStereonet, including calculating the angle between two lines, and picking a great circle that contains two lines, and have students first think through the mathematics of those operations, then complete the calculations in Matlab.

Student background reading for stereonet exercise (Microsoft Word 201kB May9 12)
Reference sheet for spherical-Cartesian coordinate conversion (Microsoft Word 113kB May9 12)
Stereonet independent exercise (Microsoft Word 78kB May9 12)
Matlab function for converting spherical to Cartesian coordinates ( 808bytes May9 12)
Matlab function for converting Cartesian to spherical coordinates ( 1kB May9 12)

Teaching Notes and Tips

Students who have not used MATLAB before can be intimidated by the command line interface for entering data. Students who have not taken physics and/or calculus (and even some who have...) will not be familiar with dot products and cross products, or even the concept of a vector, but I chose to devote time in class to go over these topics, knowing that I would return to them at other points in the semester.


I had students submit a stereonet output from OSXStereonet, showing the visual depiction of their results, as well as a print out of the MATLAB commands they executed to solve the problems. I also had them write a step-by-step workflow, justifying each step they take in both OSXStereonet and MATLAB, which seemed to help them not only think through the three-dimensional relationships but also relate each button-click in OSXStereonet to a particular mathematical operation they carried out in MATLAB.

References and Resources