Скачать презентацию Les 2 velmod py from numpy import Скачать презентацию Les 2 velmod py from numpy import

les2_python.pptx

  • Количество слайдов: 12

Les 2 Les 2

velmod. py from numpy import * import rsf. api as rsf N 1=200 задаем velmod. py from numpy import * import rsf. api as rsf N 1=200 задаем параметры модели N 2=200 N 3=50 O 1=-10 O 2=-10 D 1=0. 1 D 2=0. 1 i=1 j=1 k=N 1 -N 3 a=array(range(N 3))+150 задаем параметры модели velmod=zeros((N 2, N 1), 'f') output_tmp=rsf. Output("extvelmod. rsf") output_tmp. put('n 1', N 1) output_tmp. put('n 2', N 2) output_tmp. put('o 1', O 1) output_tmp. put('o 2', O 2) output_tmp. put('d 1', D 1) output_tmp. put('d 2', D 2)

X=linspace(-10, 200, endpoint=True) Y=linspace(-10, 200, endpoint=True) for i in range(N 2): for j in X=linspace(-10, 200, endpoint=True) Y=linspace(-10, 200, endpoint=True) for i in range(N 2): for j in range(N 1): velmod[i][j]=-0. 5*exp(-0. 2*(X[i]**2+Y[j]**2))+1 for j in a: velmod[i][j]=1. 5 для последних 50 -ти элементов вместо гауссиана задаем постоянное значение скорости = 1. 5 output_tmp. write(velmod) output_tmp. close() v=rsf. sfgrey(title='Velocity model‘, bias=‘ 1’)["extvelmod. rsf"] v. show()

extvelmod. py from numpy import * import rsf. api as rsf N 1=200 N extvelmod. py from numpy import * import rsf. api as rsf N 1=200 N 2=200 N 3=50 O 1=-10 O 2=-10 D 1=0. 1 D 2=0. 1 Ntop=30 задаем параметры модели Nbottom=20 Nside=20 d=0. 1 a=array(range(N 3))+150 задаем параметры модели b=array(range(Nbottom))+180 c=array(range(Nside))+180 velmod=zeros((N 2, N 1), 'f') extvelmod=zeros((N 2, N 1), 'f') output_tmp=rsf. Output("extvelmod. rsf") output_tmp. put('n 1', N 1) output_tmp. put('n 2', N 2) output_tmp. put('o 1', O 1) output_tmp. put('o 2', O 2) output_tmp. put('d 1', D 1) output_tmp. put('d 2', D 2)

X=linspace(-10, 200, endpoint=True) Y=linspace(-10, 200, endpoint=True) for i in range(N 2): for j in X=linspace(-10, 200, endpoint=True) Y=linspace(-10, 200, endpoint=True) for i in range(N 2): for j in range(N 1): velmod[i][j]=-0. 5*exp(-0. 2*(X[i]**2+Y[j]**2))+1 for j in a: velmod[i][j]=1. 5 создаем скоростную модель for i in range(N 2): for j in range(N 1): extvelmod[i][j]=velmod[i][j] расширенную скоростную модель создаем из «обычной» for i in range(N 2): for j in range(Ntop): extvelmod[i][j]=extvelmod[i][j]*exp(-2*(-7 -X[j])**2) for j in b: extvelmod[i][j]=extvelmod[i][j]*exp(-2*(8 -X[j])**2) сводим скорость к нулю на «крышке» и на «дне» for i in range(Nside): for j in range(N 1): extvelmod[i][j]=extvelmod[i][j]*exp(-2*(-8 -Y[i])**2) for i in c: for j in range(N 1): extvelmod[i][j]=extvelmod[i][j]*exp(-2*(8 -Y[i])**2) сводим скорость к нулю на «бортах» output_tmp. write(extvelmod) output_tmp. close()

output_tmp. write(extvelmod) output_tmp. close() v=rsf. sfgrey(title='Velocity model', bias='1')[ output_tmp. write(extvelmod) output_tmp. close() v=rsf. sfgrey(title='Velocity model', bias='1')["extvelmod. rsf"] vert=rsf. sfwindow(n 2='1', f 2='100')["extvelmod. rsf"] срез по второй переменной (вертикально) gor=rsf. sfwindow(n 1='1', f 1='100')["extvelmod. rsf"] срез по первой переменной (горизонтально) vertgr=rsf. sfgraph(title='Vertical')[vert] gorgr=rsf. sfgraph(title='Gorizontal')[gor] рисуем срезы d=rsf. Side. By. Side (vertgr, gorgr) рисуем срезы рядом d. show() выводим на экран vertgr. show() gorgr. show() v. show()

source. py from numpy import * import rsf. api as rsf N 1=200 N source. py from numpy import * import rsf. api as rsf N 1=200 N 2=200 O 1=-10 O 2=-10 D 1=0. 01 D 2=0. 01 K 1=51 K 2=101 out_tmp=rsf. Output("source. rsf") a_arr=zeros((N 1, N 2), 'f') a_arr[K 1, K 2]=1 создаем м-цу 200*200 состоящую из нулей, кроме (51, 101) out_tmp. put('n 1', N 1) out_tmp. put('n 2', N 2) out_tmp. put('o 1', O 1) out_tmp. put('d 1', D 1) out_tmp. write(b_arr) out_tmp. close()

ricker. py from numpy import * import rsf. api as rsf N 1=2000 D ricker. py from numpy import * import rsf. api as rsf N 1=2000 D 1=0. 001 O 1=0 K 1=201 frq=10 out 1_tmp=rsf. Output("ricker. rsf") out 2_tmp=rsf. Output("delta. rsf") delta_arr=zeros(2000, 'f') delta_arr[K 1]=1 out 2_tmp. put('n 1', N 1) out 2_tmp. put('d 1', D 1) out 2_tmp. put('o 1', O 1) out 2_tmp. write(delta_arr) out 2_tmp. close() ricker_obj=rsf. sfricker 1(frequency='10')["delta. rsf"] свертка дельта-импульса с функцией Рикера a_arr=array(ricker_obj) out 1_tmp. put('n 1', N 1) out 1_tmp. put('d 1', D 1) out 1_tmp. put('o 1', O 1) out 1_tmp. write(a_arr) out 1_tmp. close() ricker 1=rsf. sfgraph(title='Signal')["ricker. rsf"] ricker 1. show()