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
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])