David T. Allison Department of Earth Sciences University of South Alabama dallison@southalabama.edu http://www.usouthal.edu/geography/allison/research/VectorMethods.pptx Presentation Outline • Mathematical and Geometrical Basis of 3D Vector Manipulation • Implementation of Spreadsheets with Examples • Special Considerations for Spreadsheets Running on Tablet and/or Smart Phones 3D Coordinate system for orientation data -Z +Y (North) Orthogonal coordinate system using directional angles alpha, beta, and gamma. +X (East) -X (West) Data Vector= unit length -Y (South) +Z Projection of data vector upon 3D axes = directional componets (x,y,z) Projection of data vector upon Z axis (cos ) Directional components of the (x, y, z) axes are equal to cos(α), cos(β), and cos(γ) respectively Key mathematical concepts for manipulating 3D vectors • Data Conversion: standard azimuth and plunge of a linear orientation can be converted to directional components (x,y,z) or directional angles (α,β,γ) • Dot Product: calculates the angle between two non-parallel vectors • 3D Vector addition: operates in the same fashion as 2D “headto-tail” method but with the additional z component • Cross Product: calculates the vector that is perpendicular to the plane containing 2 non-parallel vectors • Rotation: the rotation of a 3D vector about a 3D rotation axis uses a combination of the above calculations Converting Orientation Data to 3D Vectors • Planar orientations must be converted to poles • Azimuth and plunge of a linear orientation can be converted to directional components with below equations: • x = sin (azimuth) * sin (90-plunge) • y = cos (azimuth) * sin (90-plunge) • z = cos (90-plunge) • Note that the directional angles , , and are related to the directional components by: • = cos-1 (x) • = cos-1 (y) • = cos-1 (z) Dot Product of 2 Non-Parallel Vectors • For 2 non-parallel data vectors with directional angles (α1,β1,γ1) and (α2,β2,γ2) respectively: cos( ) cos( 1 ) cos( 2 ) cos( 1 ) cos( 2 ) cos( 1 ) cos( 2 ) Cross Product • Cross Product Method: given two non-parallel vectors calculates the orientation of the pole (perpendicular) to the plane that contains the two given vectors. • Orientation data must be converted to directional components. • The dot-product is used to calculate the angle θ between the given nonparallel vectors. • The answer is calculated by 3 separate equations: one for each axis component. • The magnitude of the cross-product vector is not important for orientation calculations, but is = (vector 1)(vector 2)(sin θ) cos( ) [cos( 1 ) cos( 2 ) cos( 1 ) cos( 2 )] sin( ) cos( ) [cos(1 ) cos( 2 ) cos( 1 ) cos( 2 )] sin( ) cos( ) [cos(1 ) cos( 2 ) cos( 1 ) cos( 2 )] sin( ) Geometry of the Cross Product Vector Plane defined by data vectors 1 and 2 Data vector 1 Data vector 2 Perpendicular vector from cross product with magnitude = (vector 1)(vector)(sin θ) Rotational path generated by a horizontal rotation axis Equal-Area Lower Hemisphere R • Rotation of a vector (030, 0=“start”) about an axis (000, 0=“R”) through 360 degrees clockwise as viewed from the center of the net toward the trend of the rotation axis (R) • Note: rotation angles are “mathematical” therefore clockwise angles are negative start -180 -135 -315 -360 -90 -270 -45 -225 -180 Horizontal versus non-horizontal rotational axes • Rotation about a horizontal (plunge=0) axis generates a stereonet small circle path • Rotation about a plunging axis generally creates an elliptical path that does not match either a small circle or great circle on the stereonet Equal Area Projection NR1 10 350 340 20 330 30 320 40 310 50 300 60 290 70 280 80 R2 W E 260 100 250 110 240 120 230 130 220 140 210 150 200 190 S 170 160 Geometry of the Rotational 3D Vector Method Circle of rotation Lower hemisphere surface θ Rotational axis V= rotated data attitude X Data vector O +S= original data attitude +S (x,y,z) A(a,b,c) P +Q P -Q r Circle of rotation plane -S -S Y Method of 3D Vector Addition Utilized to Process Rotations OP OA OA OS PQ OA PS PQ OS OA PX cos( r) PS PY sin( r) PQ OV OP PX PY OP is the rotational axis multiplied by the dot product of the rotation axis and data vector. This yields the vector with head at the center of the circle of rotation (OP). PQ is the vector perpendicular to the cross product of OA and OS. The magnitude of the cross product is equal to (OA)(OS)(sin θ) where θ is the angle between OA and OS. Since OA and OS are unity, PQ is exactly the magnitude to "touch" the circle of rotation. PS is then calculated by taking the cross product of PQ and OA. PX is the projection of the rotated data vector (PV) upon the PS vector. The rotation amount is “r” PY is the projection of the rotated data vector (PV) upon the PQ vector. By adding OP, PX, and PY "head-to-tail", the rotated data vector is calculated in terms of the orthogonal coordinate system defined above. MathCAD © Worksheet link: http://www.usouthal.edu/geography/allison/GY403/RotationByComponents.mcd http://www.usouthal.edu/geography/allison/GY403/RotationByComponents.pdf Programming example of rotational calculations • Given a data vector (x1,y1,z1) and a rotation axis vector (x2,y2,z2) and a rotation angle r, the following equations calculate the new rotated orientation: • tp = (x1*x2+y1*y2+z1*z2) * (1-cos(r)) • rot_x = cos(r)*x1+tp*x2+[sin(r)*(y2*z1-z2*y1)] • rot_y = cos(r)*y1+tp*y2-[sin(r)*(x2*z1-z2*x1)] • rot_z = cos(r)*z1+tp*z2+[sin(r)*(x2*y1-y2*x1)] • Note that the rotated position may result in a negative z component that would plot in the upper hemisphere of a stereonet (i.e. a negative plunge). In that case the (x, y, z) components should be multiplied by -1 to “reflect” it back to the lower hemisphere projection. Implementation of 3D Vector Analysis as Excel 2010 Spreadsheets Problem Angle between 2 Linear orientations Orientation of intersection of 2 non-parallel planes Orientation of Plane containing to 2 non-parallel lines Rotate a line around a rotational axis by a specified angle Mathematical Method Dot Product Cross Product Cross Product Cross Product, Dot Product Spreadsheet Application N/A IntersectingPlanes.xlsm CommonPlane.xlsm Rotation.xlsm • Quickoffice spreadsheets are simplified versions of Excel 2010 • Quickoffice runs on Android, iPad, iPhone OS • Formatting: • Blue cells: data entered • Magenta cells: labels or formulae • Green cells: calculation results Spreadsheet Implementation: Intersecting Planes (IntersectingPlanes.xlsm)- 2 Fold Limbs Projection: Data I.D.: Plane 1: Plane 2: Equal Area Ex 1A, Prob. 1 Strike Azimuth Dip 310.00 40.00 Dip Quad. 70.00 20.00 E E Pole Az. Pole Pl. 220.000 20.000 310.000 70.000 NETPROG diagram Pole 1 Pole 2 Cos(alpha) Cos(beta) Cos(gamma) Cos(alpha) Cos(beta) Cos(gamma) Theta(rad.s) Theta(deg.s) -0.604 -0.720 0.342 -0.262 0.220 0.940 1.244 71.253 Fold Hinge Intersection Cos(alpha) Cos(beta) Cos(gamma) 3D -0.794 0.505 -0.339 Lower hemi.: 0.794 -0.505 0.339 N Limb 2 Limb 1 040, 20E 310, 70E Intersection Azimuth Plunge 122.454 19.840 W • In this case the intersecting planes were 2 planar fold limbs, therefore, the intersection is the hinge orientation (122.5, 19.8) E Hinge S 122.5, 19.8 Application of Cross-Product and Dot-Product Example: yields attitude of fold hinge given the two limb attitudes Intersecting Planes: Apparent Dip Example Projection: Data I.D.: Plane 1: Plane 2: Equal Area App. Dip Strike Azimuth Dip 50.00 290.00 Dip Quad. 40.00 90.00 Pole Az. Pole Pl. E 320.000 50.000 E 200.000 0.000 Apparent Dip Pole 1 Pole 2 Cos(alpha) Cos(beta) Cos(gamma) Cos(alpha) Cos(beta) Cos(gamma) Theta(rad.s) Theta(deg.s) N -0.413 0.492 0.766 -0.342 -0.940 0.000 1.898 108.747 Example Plane 1 Intersection Cos(alpha) Cos(beta) Cos(gamma) 3D 0.760 -0.277 0.588 Lower hemi.: 0.760 -0.277 0.588 050, 40E Plane 2 290, 90 Intersection Azimuth Plunge 110.000 36.005 • Given strike & dip of 050, 40E (Plane 1), calculate apparent dip along vertical plane trending 110 • Apparent dip plane is equivalent to 290, 90 (Plane 2) strike & dip W E 110, 36 App. Dip Intersection S Spreadsheet Implementation: Common Plane (CommonPlane.xlsm) to 2 Non-parallel Linear Data- Find Strike & Dip from 2 Apparent Dips Projection: Equal Area Linear 1 Data ID Azimuth Strike & Dip Ex. 310.000 Linear 1 Cos(alpha) Cos(beta) -0.740 0.621 Theta Theta Angle(rad.s) Angle(deg.s) 1.560 89.367 Cross-product Cos(alpha) 3D 0.540 Lower hemisphere 0.540 Plane Strike azimuth Dip 329.462 Linear 2 Azimuth plunge 210.000 35.000 Linear 2 Cos(gamma) Cos(alpha) Cos(beta) Cos(gamma) 0.259 -0.410 -0.709 0.574 plunge 15.000 Strike & Dip Example N App. Dip 1 Cos(beta) Cos(gamma) Pole Pole 0.318 0.779 Azimuth Plunge 0.318 0.779 59.462 51.194 Quadrant 38.806 W True Dip Vector True Dip Vector True Dip Vector Azimuth Plunge Cos(gamma) W 239.462 38.806 0.627 • Note that Cross-Product calculates pole to plane that contains the 2 apparent dip linear vectors • The true dip trend is always 180 degrees from the pole trend, and the dip angle is always = 90 – pole plunge Pole to Plane E Strike & Dip: 329.5,38.8W App. Dip 2 S Application of Common Plane Spreadsheet to Strike & Dip Calculation from 2 Apparent Dips Lineation vector 1 Plane containing lineations 1 & 2 Cross-product vector of lineations 1 & 2 = perpendicular (pole) to plane containing lineations 1 & 2 angle between poles 1&2 Lineation vector 2 Rotational Problem Scenarios • Rotational fault • Retro-deforming a fold limb • Rotating cross-bedding to original attitude Spreadsheet Implementation: Rotation of a line about a rotational axis (Rotation.xlsm) - Rotational Fault Projection Equal Area Data set Bedding Data vector Cos(alpha) Az. data T_dot Factor Pl. data Az. axis Pl. axis 50.000 300.000 30.000 Axis vector Cos(beta) Cos(gamma) Cos(alpha) Cos(beta) Cos(gamma) 0.000 0.643 0.766 -0.750 0.433 0.500 Axis/Data Axis/Data Theta(rad.s) Theta(deg.s) 0.992 0.848 48.597 0.000 Rotated 3D Lower hemisphere Rotated Azimuth 129.489 Rotated planar Strike 39.489 rotation angle Cos(alpha) -0.735 0.735 Rotated Plunge 17.729 Rotated planar Dip 72.271 Cos(beta) Cos(gamma) 0.606 -0.305 -0.606 0.305 Rotational Fault Example 350 N 10 340 20 330 30 Rotation Path 120 320 310 300 50 P 48.6 60 L R 290 40 70 280 Rotated planar dip quadrant W current increment 120.000 5.000 80 Fault Plane W 260 100 Rotated Bedding L' N 39.5 E 72.3 W 250 110 P' 240 increment macro: <ctrl>+i decrement macro: <ctrl>+d E 230 Given a rotational fault axis (300,30) and that bedding (090,40S) was rotated 120 degrees calculate the new bedding attitude = 39.5, 72.3W 120 130 220 140 210 150 200 190 S 170 160 Special Considerations for Tablet/Smart Phone Spreadsheets • Spreadsheet layout should be compact for limited screen area • Currently “named” cells are not supported • Graphics are generally not practical or are not supported • VB macros are not supported • Downloadable spreadsheets have been tested with Quickoffice on the Android OS Compact Layout of “CommonPlane.xlsx” in Quickoffice Excel “Named” Cell Constraints • “Named cells” uses symbolic names to represent cell addresses to clarify formulae • Named cells cannot be used with current Tablet/Smart Phone Excel compatible spreadsheets (example from “CommonPlane.xlsx” • =SIN(RADIANS(Az_1))*SIN(RADIANS(90-Pl_1)) • =SIN(RADIANS(B4))*SIN(RADIANS(90-C4)) Excel Graphics and VB Macros • • VB macros are not supported in current Tablet/Smart Phone applications Graphics are not practical with smart phones but may be possible on tablets Web Site Resources • Excel 2010 Spreadsheets with graphics and dynamic VB macros: • http://www.usouthal.edu/geography/allison/GY403/CommonPla ne.xlsm • http://www.usouthal.edu/geography/allison/GY403/IntersectingP lanes.xlsm • http://www.usouthal.edu/geography/allison/GY403/Rotation.xls m • Smart Phone/ Tablet compatible spreadsheet versions: • http://www.usouthal.edu/geography/allison/GY403/CommonPla ne.xlsx • http://www.usouthal.edu/geography/allison/GY403/IntersectingP lanes.xlsx • http://www.usouthal.edu/geography/allison/GY403/Rotation.xlsx • NETPROG stereonet application: • http://www.usouthal.edu/geography/allison/w-netprg.htm • QuickOffice web site: • http://www.quickoffice.com/ Concluding Scenario…