コード例 #1
0
ファイル: test_fwrd.py プロジェクト: junxie01/pyMCinv
vpr.model.ttimod.update()
vpr.get_vmodel(mtype='tti')

vpr.model.dipArr[vpr.model.dipArr != 0.] = 90.
vpr.model.strikeArr[vpr.model.strikeArr != 0.] = 33.
vpr.model.init_etensor()
vpr.model.rot_dip_strike()
vpr.model.decompose()
vpr.compute_tcps(wtype='ray')
vpr.compute_tcps(wtype='love')

#
import tcps
import numpy as np

tcpsR1 = tcps.tcps_solver(vpr.model)
vpr.model.flat = 0
tcpsR1.init_default_4()
tcpsR1.dArr = vpr.model.get_dArr()
tcpsR1.solve_PSV()

CR1 = []
azArr = np.arange(360) * 1.
for az in np.arange(360) * 1.:
    tcpsR1.psv_azi_perturb(az, False)
    CR1.append(tcpsR1.CA[1])

CR1 = np.array(CR1)

tcpsL = tcps.tcps_solver(vpr.model)
vpr.model.flat = 0
コード例 #2
0
Spherical Earth:
1. dh = 1., 2., 4.; derived kernels are correct
    But the larger the dh, the larger the difference between the directly-computed and derived kernels!

"""
import eigen, tcps
import vmodel
import numpy as np
import matplotlib.pyplot as plt

m = vmodel.model1d()
m.model_ak135_cps()
m.flat = 1

tcps1 = tcps.tcps_solver(m)
tcps1.init_default()
tcps1.solve_PSV()

#
# tcps2 = tcps.tcps_solver(m)
# tcps2.init_default(nl=100, dh=2.)
# tcps2.verbose=1
# tcps2.solve_PSV()
#
# tcps3 = tcps.tcps_solver(m)
# tcps3.init_default(nl=50., dh=4.)
# tcps3.verbose=1
# tcps3.solve_PSV()

#
コード例 #3
0
ファイル: tilt_ak135.py プロジェクト: unmover/pyfwrd
# # model perturbation: isotropic -> VTI
# 
# # m.add_perturb_layer_love(0, 20., 4, -0.1, True)
# # m.add_perturb_layer_love(0, 20., 3, -0.3, True)
#
# m.add_perturb_layer_love(0, 20., 0, -0.05, True)
# m.add_perturb_layer_love(0, 20., 1, 0.05, True)
# m.add_perturb_layer_love(0, 20., 3, -0.05, True)
# m.add_perturb_layer_love(0, 20., 4, 0.05, True)

m.add_perturb_layer_love(0, 35, 0, -0.02, True)
m.add_perturb_layer_love(0, 35, 1, 0.02, True)
# m.add_perturb_layer_love(0, 20., 3, -0.05, True)
m.add_perturb_layer_love(0, 35, 4, 0.02, True)
tcpsR0 = tcps.tcps_solver(m)
tcpsR0.init_default()
tcpsR0.solve_PSV()


m.init_tilt()
m.dipArr[-1] = 90; m.dipArr[-2] = 90
m.strikeArr[-1] = 0; m.strikeArr[-2] = 0

m.rot_dip_strike()
# m.rot_dip_strike()
m.decompose()
#
# m.dipArr[-1] = 180; m.dipArr[-2] = 180
tcpsR = tcps.tcps_solver(m)
tcpsR.init_default_2()
コード例 #4
0
ファイル: psv_kernels.py プロジェクト: unmover/pyfwrd
"""
import eigen, tcps
import vmodel
import numpy as np
import matplotlib.pyplot as plt

m=vmodel.model1d()
m=vmodel.model1d()
m=vmodel.read_model(m, 'ak135.txt')
# m.earth_flattening()
eig1 = eigen.eigen_solver(m)
eig1.init_default()
eig1.solve_PSV()


tcps1 = tcps.tcps_solver(m)
tcps1.init_default()
tcps1.solve_PSV()

tcps2 = tcps.tcps_solver(m)
tcps2.init_default(nl=100., dh=2.)
tcps2.verbose=1
tcps2.solve_PSV()


i=5
plt.plot((6371000. - eig1.r[::-1])/1000., (eig1.Kvsvdata[0,i,::-1]), 'ro-', ms=10)
plt.plot(tcps1.dArr.cumsum(), tcps1.Kvsvdata[i, :]*4., 'bo-', ms=10)
#     
# for i in xrange(10):
#     # plt.figure()
コード例 #5
0
ファイル: tilt_ak135_tcps_psv.py プロジェクト: unmover/pyfwrd
import matplotlib.pyplot as plt

m=vmodel.model1d()
m.model_ak135_cps()
m.flat=1
# 

# # model perturbation: isotropic -> VTI
# 
# # m.add_perturb_layer_love(0, 20., 4, -0.1, True)
# # m.add_perturb_layer_love(0, 20., 3, -0.3, True)
#
m.add_perturb_layer_love(0, 20., 0, -0.1, True)
m.add_perturb_layer_love(0, 20., 3, -0.1, True)
m.add_perturb_layer_love(0, 20., 4, 0.1, True)
tcpsR0 = tcps.tcps_solver(m)
tcpsR0.init_default()
tcpsR0.solve_PSV()

m.init_tilt()

m.dipArr[-1] = 70; m.dipArr[-2] = 70
m.strikeArr[-1] = 0.; m.strikeArr[-2] = 0.

m.rot_dip_strike()
m.decompose()
# 
tcpsR1 = tcps.tcps_solver(m)
tcpsR1.init_default()
tcpsR1.solve_PSV()
# 
コード例 #6
0
import matplotlib.pyplot as plt

m=vmodel.model1d()
m.model_ak135_cps()
m.flat=1
# 

# # model perturbation: isotropic -> VTI
# 
# # m.add_perturb_layer_love(0, 20., 4, -0.1, True)
# # m.add_perturb_layer_love(0, 20., 3, -0.3, True)
#
m.add_perturb_layer_love(0, 20., 0, -0.1, True)
m.add_perturb_layer_love(0, 20., 3, -0.1, True)
m.add_perturb_layer_love(0, 20., 4, 0.1, True)
tcpsL0 = tcps.tcps_solver(m)
tcpsL0.init_default()
tcpsL0.solve_SH()

m.init_tilt()

m.dipArr[-1] = 60; m.dipArr[-2] = 60
m.strikeArr[-1] = 0.; m.strikeArr[-2] = 0.

m.rot_dip_strike()
m.decompose()
# 
tcpsL1 = tcps.tcps_solver(m)
tcpsL1.init_default()
tcpsL1.solve_SH()
# 
コード例 #7
0
m2.add_perturb_layer(0, 20., 2, 6.06, False)
m2.add_perturb_layer(0, 20., 3, 6.24, False)
m2.add_perturb_layer(0, 20., 4, 0.72, False)
m2.add_perturb_layer(0, 20., 5, 2.73, False)

m2.init_tilt()
m2.dipArr[-1] = 27
m2.dipArr[-2] = 27
m2.strikeArr[-1] = 110
m2.strikeArr[-2] = 110

m2.rot_dip_strike()
m2.decompose()

#
tcpsR1 = tcps.tcps_solver(m1)
tcpsR1.init_default()
tcpsR1.solve_PSV()

#
tcpsR2 = tcps.tcps_solver(m2)
tcpsR2.init_default()
tcpsR2.solve_PSV()

#
CR1 = []
for baz in np.arange(36) * 10.:
    tcpsR1.psv_azi_perturb(baz, True)
    CR1.append(tcpsR1.CA[1])

CR2 = []
コード例 #8
0
Spherical Earth:
    T = 5 - 100. sec, dT = 5 sec
        Results are consistent (< ~ 0.1%), result can be more consistent if nl is larger and dh is smaller. But this is computationally more expensive.

"""
import eigen, tcps, aniproppy
import vmodel
import numpy as np
import matplotlib.pyplot as plt

m=vmodel.model1d()
m.model_ak135_cps()
m.flat=1

tcpsR = tcps.tcps_solver(m)
tcpsR.init_default_2()
tcpsR.solve_PSV()

tcpsL = tcps.tcps_solver(m)
tcpsL.init_default_2()
tcpsL.solve_SH()
# 
ani  = aniproppy.aniprop_solver(m)
# ani.init_default(nl=50, dh=4.)
ani.init_default_2()
ani.solve_surf(0.)


# 
# m.flat=1