Seismic Imaging Toolbox For Python
Seismic Imaging Toolbox For Python
Why Python?
I Cross-platform, portability
I Community
I Not MATLAB ($$)
I Open parallel libraries
I General fan of the language
http://www.pysit.org
SciPy [www.scipy.org]
I Fundamental library for scientific computing
Matplotlib [www.matplotlib.org]
I Plotting and visualization
ObsPy [www.obspy.org]
I Python framework for seismology
I Data reading, writing, and processing
mpi4py [mpi4py.scipy.org]
I MPI wrapper for Python
Hessian approximations
I Stochastic approximation of FWI Hessian (Willemsen et al.)
I Matrix probing of FWI Inverse Hessian (Hewett et al.)
Uncertainty quantification
I Non-gaussianity of the FWI posterior (Li et al.)
modeling = T e m p o r a l M o d e l i n g ( solver )
u = F(m) ⇔ L(m)u = f
modeling . forward_model ( shot , m , ...)
δL
δu = Fm0 δm ⇔ L(m0 ) = − [δm]u0
δm
modeling . l i n e a r _ f o r w a r d _ m o d e l ( shot , m0 , dm , ...)
δL
δm = − < q, δm u0 >
δm = Fm∗ 0 S ∗ r ⇔
s.t. L (m0 )q = S ∗ r
∗
modeling . adjoint_model ( shot , m0 , r , ...)
objective = T e m p o r a l L e a s t S q u a r e s ( solver )
J(m) = 1
2 ||d − F(m)||22
objective . evaluate ( shots , m , ...)
# Setup solver
solver = C o n s t a n t D e n s i t y A c o u s t i c W a v e ( mesh , trange =(0.0 , 3.0))
# P o p u l a t e s y n t h e t i c data
g e n e r a t e _ s e i s m i c _ d a t a ( shots , solver , true_model )
# Define o b j e c t i v e f u n c t i o n
objective = T e m p o r a l L e a s t S q u a r e s ( solver )
# Define o p t i m i z a t i o n a l g o r i t h m
invalg = LBFGS ( objective )
# Run i n v e r s i o n for 5 i t e r a t i o n s
result = invalg ( shots , initial_value , 5)
# V i s u a l i z e results
vis . plot ( result .C , mesh )
Russell J. Hewett (TOTAL E&P USA and MIT) PySIT 12 / 14
FWI Results with PySIT
0
20
40
60
80
100
120
140
0 100 200 300 400 500
0
20
40
60
80
100
120
140
0 100 200 300 400 500
0
20
40
60
80
100
120
140
0 100 200 300 400 500
http://www.pysit.org