Tectonic_Utils.seismo package

MT_calculations

Calculations that deal with seismic moment tensors. Notes from Lay and Wallace Chapter 8:

  • Decomposition 1: Mij = isotropic + deviatoric

  • Decomposition 2: Mij = isotropic + 3 vector dipoles

  • Decomposition 3: Mij = isotropic + 3 double couples

  • Decomposition 4: Mij = isotropic + 3 CLVDs

  • Decomposition 5: Mij = isotropic + major DC + minor DC

  • Decomposition 6: Mij = isotropic + DC + CLVD

The most useful in practice are Decomposition 1 and Decomposition 6.

decompose_iso_dc_clvd(MT)

Decompose a full moment tensor into an isotropic part, a double-couple, and a CLVD component.

Returns

three np.arrays, each 3x3 matrix

diagonalize_MT(MT)

Build a diagonal matrix whose elements are the ordered eigenvalues of original matrix MT.

Returns

np.array, 3x3 matrix

get_MT(mrr, mtt, mpp, mrt, mrp, mtp)

Build a matrix from the six components of the moment tensor

Returns

np.array, 3x3 matrix

get_clvd_dc_from_deviatoric_MT(MT)

Calculate the dc and clvd components of a deviatoric MT, from Shearer Equation 9.14.

Returns

two np.arrays, each 3x3 matrix

get_deviatoric_MT(MT)

Get deviatoric MT from a full MT.

Returns

np.array, 3x3 matrix

get_iso_MT(MT)

Calculate the isotropic moment tensor from a full MT.

Returns

np.array, 3x3 matrix

get_percent_double_couple(MT)

Get the percent double couple and percent clvd moment from a deviatoric moment tensor. When isotropic term is involved, this can get more complicated and there are several approaches. See Shearer equation 9.17 for epsilon. See Vavrycuk, 2001 for other approaches when isotropic component is involved.

Parameters

MT – np.array, 3x3 matrix

Returns

percentage double couple, percentage CLVD

Return type

float, float

get_total_scalar_moment(MT)

Shearer Equation 9.8: quadratic sum of element of moment tensor components, in newton-meters.

Parameters

MT – np.array, 3x3 matrix

Returns

Mo, scalar moment

Return type

float

moment_calculations

Utilities that convert between moment and magnitude, etc.

moment_from_muad(mu, A, d)

moment = mu * A * d.

Parameters
  • mu (float) – shear modulus, in Pa

  • A (float) – area, in m^2

  • d (float) – slip, in m

Returns

moment, in Newton-meters

Return type

float

moment_from_mw(Mw)

Definition of moment magnitude from Hanks and Kanamori (1979). Takes magnitude, returns moment in newton-meters.

Parameters

Mw (float) – moment magnitude

Returns

moment in Newton-meters

Return type

float

mw_from_moment(moment)

Definition of moment magnitude from Hanks and Kanamori (1979). Takes newton-meters, returns moment magnitude.

Parameters

moment (float) – moment in Newton-meters

Returns

magnitude

Return type

float

second_focal_plane

Utility tool for computing the second possible strike, rake, and dip in a focal mechanism, given the strike, rake, and dip of the first focal plane. Inspiration from Vince Cronin’s website.

find_aux_plane(strike, dip, rake)

Find the second auxiliary plane in a double couple focal mechanism from the given slip plane/vector.

Parameters
  • strike (float) – strike of first focal plane, in degrees

  • dip (float) – dip of first focal plane, in degrees

  • rake (float) – rake of slip vector on first focal plane, in degrees

Returns

[strike, dip, rake] of second focal plane

Return type

list of 3 floats

unit_vector(v)

Computes unit vector associated with 3-component vector.

vector_angle(v1, v2)

Returns angle between two vectors, in radians.

vector_norm(v)

Computes norm of vector.

wells_and_coppersmith

Set of functions that calculate important scaling relationships between earthquake magnitude and other parameters. From Wells and Coppersmith, 1994.

  • FAULT_TYPE = SS, R, N, All

  • a, b = parameters in equation

  • sa, sb = parameter uncertainties

  • s = estimate uncertainty

  • r = R correlation coefficient

Average displacements, Max displacements, and inverse relationships not included.

RA_from_M(M, fault_type)

Rupture Area from Magnitude, computed using log(RA)=a + b*M

Parameters
  • M (float) – magnitude

  • fault_type (string) – fault_type [“SS”, “N”, “R”, “ALL”]

Returns

rupture area, in km^2

Return type

float

RLD_from_M(M, fault_type)

Subsurface rupture length from Magnitude, computed using log(RLD)=a + b*M

Parameters
  • M (float) – magnitude

  • fault_type (string) – fault_type [“SS”, “N”, “R”, “ALL”]

Returns

subsurface rupture length, in km

Return type

float

RW_from_M(M, fault_type)

Downdip rupture width from Magnitude, computed using log(RW)=a + b*M

Parameters
  • M (float) – magnitude

  • fault_type (string) – fault_type [“SS”, “N”, “R”, “ALL”]

Returns

downdip rupture width, in km

Return type

float

SLR_from_M(M, fault_type)

Surface rupture width from Magnitude, computed using log(SLR)=a + b*M

Parameters
  • M (float) – magnitude

  • fault_type (string) – fault_type [“SS”, “N”, “R”, “ALL”]

Returns

surface rupture length, in km

Return type

float

check_fault_types(fault_type)

Ensure that provided fault type is within [“SS”, “N”, “R”, “ALL”]

get_magnitude_from_rectangle(length, width, slip, mu=30000000000.0)
Parameters
  • length (float) – fault length, in m

  • width (float) – fault width, in m

  • slip (float) – fault slip, in m

  • mu (float, optional) – shear modulus, in Pa, defaults to 30 GPa

Returns

magnitude

Return type

float

rectangular_slip(length, width, magnitude, mu=30000000000.0)

Magnitude to slip on rectangular patch

Parameters
  • length (float) – fault length, in m

  • width (float) – fault width, in m

  • magnitude (float) – magnitude

  • mu (float, optional) – shear modulus, in Pa, defaults to 30 GPa

Returns

slip, in m

Return type

float