Step 29: Compile data on azimuths of most-compressive horizontal principal-stress axes

If you ever do neotectonic modeling with a dynamic (forward) F-E code like my program Shells, then
the stress-equilibrium equation (aka the “conservation-of-momentum equation”) will be built-in, and therefore
principal stress directions (and principal strain-rate directions in unfaulted lithosphere) will only rotate slowly and smoothly
in space, in response to applied boundary forces and variations of the strength of the lithosphere.

However, in kinematic (inverse) F-E modeling like we do with NeoKinema,
that kind of realism is not built-in.  Instead, it has to be provided through a stress-direction dataset!

Fortunately, azimuths of most-compressive horizontal principal-stress axes can be obtained from several kinds of data:

·       The trends of “P” principal axes of focal mechanism solutions (“fault-plane solutions”) for earthquakes;

·       The azimuths of hydrofractures formed in controlled borehole experiments;

·       The orientations of “borehole breakouts” observed after less-controlled drilling;

·       Stress tensors measured by overcoring studies on flat bedrock outcrops;

·       The azimuths of dike intrusions (if geologically young, and relevant to neotectonics); and/or

·       Principal axes of seismic anisotropy in the upper crust (where it is usually controlled by crack populations).

It is also fortunate that groups like the World Stress Map Project have done much of this collection work for you!
They also provide on-line tools to download all stress data within a (longitude, latitude) rectangle, for free!
(They only ask that you remember to cite and acknowledge them when you present your finished work.)

When you collect stress-direction data to constrain your NeoKinema project, do NOT restrict the data to exactly
the area of your F-E grid (.feg file).  Instead, understand that the data will be interpolated with the algorithm of Bird & Li [1996],
or with the method of Carafa & Barba [2013, Geophys. J. Int., 193, 531-548] and that the former algorithm may use data
from as much as 22° distance from the edge of the grid.  So, “cast a wide net.”

Whatever your data source, you will need to format the stress-directions into a plain-ASCII flat-file table,
with 6 columns:

·       A text label (e.g., country & site#?) of no more than 30 bytes;

·       Another text label (e.g., state or district name?) of no more than 30 bytes;

·       East longitude of the site in decimal degrees (using negative numbers for West);

·       North latitude of the site in decimal degrees (using negative numbers for South);

·       Azimuth of sigma_1h = most-compressive horizontal principal stress axis, in degrees clockwise from North; integer;

·       Quality code for this datum: Either a letter (A, B, C, D, or E), or standard error of the azimuth (integer, in degrees).

As with previous plain-ASCII flat-file tables in this project (Step 10, Step 16) it may be useful to use a spreadsheet
(e.g., Microsoft Excel, or Apache OpenOffice Calc) to build your data table, and then convert it to a
monospaced font (e.g., Courier New, Bold, 9 points) before outputting it as Space-Delimited Text (.prn or .txt).

As the last step, you open your new .prn or .txt file with a plain-ASCII text editor
(e.g., Microsoft NotePad, or EditPad Pro), and add two lines at the top:

·       A Fortran FORMAT specification, enclosed in “()”, that lets NeoKinema read the table, and

·       Human-readable column headers to remind everyone what the columns mean.

End by saving your stress-direction data table with a name like s*.nki, where * is whatever you like.

A few lines from the beginning of an actual stress-direction dataset are listed below:

(A8,1X,  A8,1X,   F8.3,F8.3,1X,    I3,1X,A1)
text1    text2    E_long. N_lat.   azi quality
CAN    1 BC  1    -121.060  59.790   0 C
CAN    2 BC  2    -121.020  59.700  78 B
CAN    3 BC  3    -121.680  58.700  63 B
CAN    4 BC  4    -122.170  58.410  67 A
CAN    5 BC  5    -121.650  56.800  36 B
CAN    6 BC  6    -122.670  58.090  62 A
CAN    7 BC  7    -121.490  55.900  34 A
CAN    8 BC  8    -127.020  49.650  23 B
CAN    9 BC  9    -127.200  49.500  20 C
CAN   10 BC 10    -126.000  49.300  37 C
CAN   10 AB 76    -115.520  53.230  49 B
CAN   10 AB 77    -115.430  53.210  47 B
CAN   10 AB 79    -115.750  53.170  44 B
CAN   10 AB 80    -114.550  53.190  34 C
CAN   10 AB 81    -116.930  53.090  57 B
CAN   10 AB 82    -115.870  53.090  41 B
CAN   10 AB 83    -116.460  52.990  56 A
CAN   10 AB 84    -117.440  53.210  67 C
CAN   10 AB 85    -116.230  52.910  45 A
CAN   10 AB 86    -116.040  52.910  58 B

NOTE: If the data uncertainty were an angle in degrees, then the last format item would be
an INTEGER format like “I3” instead of a CHARACTER format like “A1”.