Ejemplo n.º 1
0
def get_stress_tensor(row):
    pt = row['pt_index']
    (topo_xx, topo_yy, topo_xy,
     topo_zz, topo_xz, topo_yz) = lms_df[lms_stress_cols].iloc[pt]

    T = hsp.make_xyz_stress_tensor(sig_xx = topo_xx + row['tect_xx'],
                                   sig_yy = topo_yy + row['tect_yy'],
                                   sig_xy = topo_xy + row['tect_xy'],
                                   sig_zz = topo_zz, sig_xz = topo_xz,
                                   sig_yz = topo_yz)
    return T
Ejemplo n.º 2
0
s3['tau_cs'] = s3['lat_deg'] - s3['lat_deg']

s4['sig_nn'] = s4['lat_deg'] - s4['lat_deg']
s4['tau_dd'] = s4['lat_deg'] - s4['lat_deg']
s4['tau_ss'] = s4['lat_deg'] - s4['lat_deg']
s4['tau_cs'] = s4['lat_deg'] - s4['lat_deg']

s5['sig_nn'] = s5['lat_deg'] - s5['lat_deg']
s5['tau_dd'] = s5['lat_deg'] - s5['lat_deg']
s5['tau_ss'] = s5['lat_deg'] - s5['lat_deg']
s5['tau_cs'] = s5['lat_deg'] - s5['lat_deg']

for i in s1.index:
    s1_tens_xyz[i] = hsp.make_xyz_stress_tensor(sig_xx=s1['xx_stress'].ix[i],
                                                sig_zz=s1['zz_stress'].ix[i],
                                                sig_yy=s1['yy_stress'].ix[i],
                                                sig_xz=s1['xz_stress'].ix[i],
                                                sig_xy=s1['xy_stress'].ix[i],
                                                sig_yz=s1['yz_stress'].ix[i])

    s1['sig_nn'].ix[i] = hsp.norm_stress_from_xyz(s1_strike, s1_dip,
                                                  s1_tens_xyz[i])
    s1['tau_dd'].ix[i] = hsp.dip_shear_stress_from_xyz(s1_strike, s1_dip,
                                                       s1_tens_xyz[i])
    s1['tau_ss'].ix[i] = hsp.strike_shear_stress_from_xyz(
        s1_strike, s1_dip, s1_tens_xyz[i])
    s1['tau_cs'].ix[i] = hsp.coulomb_shear_stress_from_xyz(
        s1_strike, s1_dip, s1_tens_xyz[i])

for i in s2.index:
    s2_tens_xyz[i] = hsp.make_xyz_stress_tensor(sig_xx=s2['xx_stress'].ix[i],
                                                sig_zz=s2['zz_stress'].ix[i],
print 'doing normal and shear stress calculations'
lms_tens_xyz = {}

lms['sig_nn'] = 0.
lms['tau_dd'] = 0.
lms['tau_ss'] = 0.
lms['tau_cs'] = 0.

#lms['strike'] = lms['azimuth'] + 180.  # converting to right hand rule
#lms['dip'] = np.abs( lms['dip'] )

for i in lms.index:
    lms_tens_xyz[i] = hsp.make_xyz_stress_tensor(sig_xx=lms['xx_stress'].ix[i],
                                                 sig_yy=lms['yy_stress'].ix[i],
                                                 sig_zz=lms['zz_stress'].ix[i],
                                                 sig_xy=lms['xy_stress'].ix[i],
                                                 sig_xz=lms['xz_stress'].ix[i],
                                                 sig_yz=lms['yz_stress'].ix[i])

    lms['sig_nn'].ix[i] = hsp.norm_stress_from_xyz(lms.strike.ix[i],
                                                   lms.dip.ix[i],
                                                   lms_tens_xyz[i])

    lms['tau_dd'].ix[i] = hsp.dip_shear_stress_from_xyz(
        lms.strike.ix[i], lms.dip.ix[i], lms_tens_xyz[i])

    lms['tau_ss'].ix[i] = hsp.strike_shear_stress_from_xyz(
        lms.strike.ix[i], lms.dip.ix[i], lms_tens_xyz[i])

    lms['tau_cs'].ix[i] = hsp.coulomb_shear_stress_from_xyz(
        lms.strike.ix[i], lms.dip.ix[i], lms_tens_xyz[i])
lms['x_pixel'] = lms_xyz[0]
lms['y_pixel'] = lms_xyz[1]
lms['z_pixel'] = lms_xyz[2]

print 'doing normal and shear stress calculations'
lms_tens_xyz = {}

lms['sig_nn'] = 0.
lms['tau_dd'] = 0.
lms['tau_ss'] = 0.
lms['tau_cs'] = 0.


for i in lms.index:
    lms_tens_xyz[i] =hsp.make_xyz_stress_tensor(sig_xx = lms['xx_stress'].ix[i],
            sig_yy = lms['yy_stress'].ix[i], sig_zz = lms['zz_stress'].ix[i],
            sig_xy = lms['xy_stress'].ix[i], sig_xz = lms['xz_stress'].ix[i],
            sig_yz = lms['yz_stress'].ix[i] )
    
    lms['sig_nn'].ix[i] = hsp.norm_stress_from_xyz( lms.strike.ix[i], 
                                                 lms.dip.ix[i], lms_tens_xyz[i])

    lms['tau_dd'].ix[i] = hsp.dip_shear_stress_from_xyz( lms.strike.ix[i], 
                                                 lms.dip.ix[i], lms_tens_xyz[i])

    lms['tau_ss'].ix[i] = hsp.strike_shear_stress_from_xyz( lms.strike.ix[i], 
                                                 lms.dip.ix[i], lms_tens_xyz[i])

    lms['tau_cs'].ix[i] = hsp.coulomb_shear_stress_from_xyz( lms.strike.ix[i], 
                                                 lms.dip.ix[i], lms_tens_xyz[i])

print 'done!  now making new dataframes.'
s4['tau_cs'] = s4['lat_deg'] - s4['lat_deg']

s5['sig_nn'] = s5['lat_deg'] - s5['lat_deg']
s5['tau_dd'] = s5['lat_deg'] - s5['lat_deg']
s5['tau_ss'] = s5['lat_deg'] - s5['lat_deg']
s5['tau_cs'] = s5['lat_deg'] - s5['lat_deg']







for i in s1.index:
    s1_tens_xyz[i] = hsp.make_xyz_stress_tensor(sig_xx = s1['xx_stress'].ix[i],
                sig_zz = s1['zz_stress'].ix[i],
                sig_yy = s1['yy_stress'].ix[i], sig_xz = s1['xz_stress'].ix[i],
                sig_xy = s1['xy_stress'].ix[i], sig_yz = s1['yz_stress'].ix[i])

    s1['sig_nn'].ix[i] = hsp.norm_stress_from_xyz(s1_strike, s1_dip,
                                                  s1_tens_xyz[i])
    s1['tau_dd'].ix[i] = hsp.dip_shear_stress_from_xyz(s1_strike, s1_dip,
                                                       s1_tens_xyz[i])
    s1['tau_ss'].ix[i] = hsp.strike_shear_stress_from_xyz(s1_strike, s1_dip,
                                                          s1_tens_xyz[i])
    s1['tau_cs'].ix[i] = hsp.coulomb_shear_stress_from_xyz(s1_strike, s1_dip,
                                                           s1_tens_xyz[i])

for i in s2.index:
    s2_tens_xyz[i] = hsp.make_xyz_stress_tensor(sig_xx = s2['xx_stress'].ix[i],
                sig_zz = s2['zz_stress'].ix[i],
                sig_yy = s2['yy_stress'].ix[i], sig_xz = s2['xz_stress'].ix[i],
print 'calculating shear and normal stresses'
s1['tau_dd_1'] = 0.
s1['tau_ss_1'] = 0.
s1['sig_nn_1'] = 0.
 
s1['tau_dd_2'] = 0.
s1['tau_ss_2'] = 0.
s1['sig_nn_2'] = 0.

stress_tens_xyz = {}

for i, fault_patch in enumerate(s1.index):
    stress_tens_xyz[i] = hsp.make_xyz_stress_tensor(
                            sig_xx = s1.xx_stress.iloc[i],
                            sig_yy = s1.yy_stress.iloc[i],
                            sig_zz = s1.zz_stress.iloc[i],
                            sig_xy = s1.xy_stress.iloc[i],
                            sig_xz = s1.xz_stress.iloc[i],
                            sig_yz = s1.yz_stress.iloc[i])

    s1['tau_dd_1'].iloc[i] = hsp.dip_shear_stress_from_xyz(
                            s1.strike1.iloc[i], s1.dip1.iloc[i],
                            stress_tens_xyz[i])
    
    s1['tau_dd_2'].iloc[i] = hsp.dip_shear_stress_from_xyz(
                            s1.strike2.iloc[i], s1.dip2.iloc[i],
                            stress_tens_xyz[i])
    
    s1['tau_ss_1'].iloc[i] = hsp.strike_shear_stress_from_xyz(
                            s1.strike1.iloc[i], s1.dip1.iloc[i],
                            stress_tens_xyz[i])