Thursday, March 26, 2020

Calculating the strikes of lineaments through GIS (ArcMap 10.4)

Hi everyone! I'll be outlining a way to automatically calculate the end-to-end strike/trend values of lineaments or faults which you have plotted in GIS software. This method uses ArcGIS, but can be adjusted and followed for QGIS. Let's get to it.

Note: When dealing with digital structural data, azimuthal bearing is the convention of choice. If you are used to quadrantal bearing, slowly re-familiarize yourself with the azimuth concept, as it is much simpler to encode.

Software used: ArcMap 10.4

0. Make sure your files use a UTM projection.

1. Open the attribute table of your lineament shapefile.

2. Add fields for the starting x and y coordinates, ending x and y coordinates. I used a Double filetype. Calculate these by right-clicking the field heading and select Calculate Geometry...


3. Then add a new field (I call it lineSlope; Double type) and calculate it using the Field Calculator and using the formula: rise over run, or:


(yEnd - yStart) / (xEnd - xStart)

4. Add a new field (I call it strikeRad; Float type). Use the Field Calculator again. Use the Python parser. Use the formula:

arctan(lineSlope) = strikeRad
or
strikeRad = math.atan( !lineSlope! )

5. Add a new field (I call it strikeDeg; Float type). Use the Field Calculator again. Use the Python parser. Use the formula:

strikeRad * (360/2pi) = strikeDeg
or
strikeDeg = ( [strikeRad] * 360 ) / ( 2 * 3.14159 )

6. You're almost done! The problem is, strikeDeg will give a 0 value for the x-axis, and goes positive counter-clockwise. Azimuthal directions are 0 at the y-axis, and increase clockwise. To correct it, add a new field (I call it strikeCor; Float type). Use the Field Calculator with the following formula:

strikeCor = 90 - [strikeDeg]

And that's it! Export your table if you want to work with it more. In fact, you can actually export the table after Step 2. and do the rest of your calculations on Excel or any other spreadsheet program.

All right that's it. Let me know in the comments if you have any questions. Till next time, fellow AGs!

No comments:

Post a Comment