7 research outputs found
Frugal full-waveform inversion: From theory to a practical algorithm
As conventional oil and gas fields are maturing, our profession is challenged to come up with the next-generation of more and more sophisticated exploration tools. In exploration seismology this trend has let to the emergence of wave-equation-based inversion technologies such as reverse time migration and full-waveform inversion. While significant progress has been made in wave-equation-based inversion, major challenges remain in the development of robust and computationally feasible workflows that give reliable results in geophysically challenging areas that may include ultralow shear-velocity zones or high-velocity salt. Moreover, subsalt production carries risks that need mitigation, which raises the bar from creating subsalt images to inverting for subsalt overpressure
Developments in waveform tomography of land seismic data with applications in south-central British Columbia
Waveform tomography (WT) is an advanced class of seismic imaging methods that may be applied to generate detailed models of subsurface velocity and attenuation by analysis of recorded field seismograms. WT comprises two steps: 1) initial velocity model building by traveltime inversion (raytracing) and 2) full-waveform inversion to update the model of velocity based on analysis of refracted data waveforms. The nature of this method requires that the initial model and simulated survey parameters reproduce closely those used for the field data acquisition. The application of WT to on-land seismic data is challenged by the geometry irregularities inherent in crooked-line two-dimensional (2D) seismic data acquisition. This thesis develops two methodologies that permit the inversion of on-land crooked-line vibroseis multi-channel seismic (MCS) reflection data by traveltime tomography (TT) and subsequent viscoacoustic full-waveform inversion (FWI) to generate 2D cross sections of P-wave velocity. The first method uses 2.5D TT and applies a TT-derived static correction to enable the subsequent application of 2D FWI. The second method uses 2.5D or three-dimensional (3D) TT followed by 2.5D full-waveform inversion that models 3D survey geometry (a new development). These technical developments are motivated and tested by a multi-part case study, which analyses data from the 2008 Geoscience BC Nechako Basin seismic survey. Both the static-correction method and 2.5D FWI method are applied to a single acquisition line. The results are analysed and compared with the conclusion that 2.5D WT provides a superior result, but at additional computational cost. This cost is still significantly lower than that associated with 3D FWI. The 2.5D WT method is applied to three datasets from the 2008 survey, and TT alone is applied to a fourth. The resulting models constrain the positions and lithology of Eocene volcanic rock units, Cretaceous strata and Jurassic or earlier basement rocks in the Nechako-Chilcotin Plateau region of south-central British Columbia. These results are synthesized and interpreted in conjunction with colocated surficial-geology maps, exploration well logs and geophysical results by other workers. This interpretation enhances the specific knowledge of lithostratigraphy along these acquisition profiles and informs general geological and geophysical analyses of the region.Science, Faculty ofEarth, Ocean and Atmospheric Sciences, Department ofGraduat
Near Surface Void Detection Using Seismic Q-factor Waveform Tomography
Several shallow, engineering-scale seismic surveys were carried out in Seven Sisters, Manitoba, between 1999 and 2001. The surveys were designed to locate three buried rip-rap targets, located within a constructed clay embankment as a blind test of geophysical imaging methods. While previous studies used near-offset reflection methods to image the targets, in this paper we use Waveform Tomography of the long-offset, refracted arrivals to image the seismic velocity and the seismic attenuation. The refraction surveys were carried out with a 2 m spacing on both source and receiver positions, with 70 source positions and 48 receiver positions respectively. The targets were buried approximately 7 m below the surface of the constructed embankment. Using weight-drop data, with frequencies between 20 and 130 Hz, we were able to resolve the sub-wavelength targets using the seismic-Q images. A very good fit between model and observed data is an indication of the reliability of the results. Major Objectives Our objective was to demonstrate the feasibility of Waveform Tomog-raphy in locating defects and other anomalies within earthen embankments, for tar-gets located at several metres depth. Waveform Tomography is an advanced metho
Frugal full-waveform inversion: From theory to a practical algorithm
As conventional oil and gas fields are maturing, our profession is challenged to come up with the next-generation of more and more sophisticated exploration tools. In exploration seismology this trend has let to the emergence of wave-equation-based inversion technologies such as reverse time migration and full-waveform inversion. While significant progress has been made in wave-equation-based inversion, major challenges remain in the development of robust and computationally feasible workflows that give reliable results in geophysically challenging areas that may include ultralow shear-velocity zones or high-velocity salt. Moreover, subsalt production carries risks that need mitigation, which raises the bar from creating subsalt images to inverting for subsalt overpressure
simpeg/simpeg: Objective functions & Joint Inversions
Major Changes
Composable objective functions
PR #511 (commits from: @lheagy, @rowanc1, @fourndo reviews from: @rowanc1, @fourndo, @leouieda, @sgkang, @jcapriot)
wrote a base objective function class that allows for composable objective functions, so you can now sayphi = alpha_s * Regularization.Smallness(mesh) + alpha_x * Regularization.Smoothness(mesh)
regularization and datamisfit now inherit from this. This results in several namespace changes
reg.eval(m) --> reg(m), dmisfit.eval(m) --> dmisfit(m)
reg.evalDeriv(m) --> reg.deriv(m), dmisfit.evalDerivl(m) --> dmisfit.deriv(m)
reg.eval2Deriv(m) --> reg.deriv(m), dmisfit.eval2Derivl(m) --> dmisfit.deriv(m)
all regularizations and datamisfit now each have their own individual W matrix. There are no longer differently named W's, eg
dmistfit.Wd = Utils.sdiag(1/wd) --> dmisfit.W = Utils.sdiag(1/wd)
Regularization
regularization refactor to be more modular.
For example, Regularization.Tikhonov is now a composite regularization that has an objective function list (reg.objfcts) consisting of Regularization.Smallness, Regularization.Smooth_x, Regularization.Smooth_y, Regularization.Smooth_z, Regularization.Smooth_xx, Regularization.Smooth_yy, Regularization.Smooth_zz.
implemented properties in regularization (requires dev right now) for
indActive
mref
cell_weights
mrefInSmooth
alpha_? (x, y, ...)
any time properites are updated on a CompositeRegularization, those changes are propagated to the objective functions that make it up.
Other impacts
update IRLS directive to hold the l2model (the directive should keep track of that model, it does not need to be stored on the regularization) cc @fourndo
updated Props to include a SimPEGArray and SimPEGFloat that allow Utils.Zero and Utils.Identity @rowanc1
[non-backwards-compatible] update examples to set data weights on dmisfit.W instead of dmisfit.Wd as that will depreciate on these changes
InvProb Compatibility with Composable Objective functions
allow both dmisfit to be either a base objective function or a base data misfit
extend invProb in cases where dmisfit is a combo objective function so that it can stash multiple fields from different problems
Additions
Straight Ray Tomography
PR #511
implement SEIS.StraightRay, Problem, Survey, Src and Rx
example: SEIS_StraightRayTomo.py
Example Joint Inversion
PR #511
include an example "joint" inversion (consists of 2 data misfit terms and a regularization) based on the Heagy et. al., 2014 SEG abstract http://library.seg.org/doi/abs/10.1190/segam2014-1639.1: SEIS_VolumeRegularization.py
Minor Changes
Distribution
PR #576 (commits from: @lheagy. reviews from: @rowanc1)
build universal wheel for SimPEG on travis whenever a tag is submitted
similar to simpeg/discretize#44, however since SimPEG is now pure python, a universal wheel can instead be used. https://packaging.python.org/distributing/#universal-wheels
Sphinx Gallery
PR #588 (commits from @lheagy. reviews from @rowanc1)
minor docs updates to align with sphinx-gallery/sphinx-gallery#151
Survey Pairs
PR #583 (commits from: @lheagy)
have the survey check if it is already paired to problem and raise an error if it is. Usesurvey.unpair() if you are re-using the same survey more than once.
whitespace cleanup in Survey.py
Docs enhancement
PR #595 (commits from @lheagy, reviews from @rowanc1)
Bring in the documentation pages from the previous SimPEG tutorials (as per #544):
"Getting Started for Developers"
"Practices"
Remote Download
PR #598 (commits from: @lheagy, reviews from: @rowanc1, @fourndo)
modify the remoteDownload utils so that more of the string handling is done by the util as per #596
Before
basePath = os.path.sep.join(os.path.abspath(os.getenv('HOME')).split(os.path.sep)+['Downloads']+['SimPEGtemp'])
basePath = os.path.abspath(remoteDownload(url, cloudfiles, basePath=basePath+os.path.sep))
After
basePath = download(url, path='~/Downloads', overwrite=True)
Breaks Backwards compatibility
dmisfit.Wd is now dmisfit.W
Utils.remoteDownload is now Utils.downloa
simpeg/discretize: v0.10.0
<h2>What's Changed</h2>
<ul>
<li>Add black, flake8 and flake8 plugins to environment file by @santisoler in https://github.com/simpeg/discretize/pull/327</li>
<li>Use any Python 3 in pre-commit by @santisoler in https://github.com/simpeg/discretize/pull/328</li>
<li>Simplex stashing by @jcapriot in https://github.com/simpeg/discretize/pull/329</li>
<li>Add new TensorCell class by @santisoler in https://github.com/simpeg/discretize/pull/325</li>
<li>Configure pyvista for doc builds by @jcapriot in https://github.com/simpeg/discretize/pull/330</li>
<li>Add a noexcept clause to the wrapper function by @jcapriot in https://github.com/simpeg/discretize/pull/331</li>
<li>Face props mass matrices by @dccowan in https://github.com/simpeg/discretize/pull/326</li>
<li>Pin flake8 by @jcapriot in https://github.com/simpeg/discretize/pull/335</li>
<li>Add cell_nodes property to TensorMesh by @santisoler in https://github.com/simpeg/discretize/pull/333</li>
<li>Update a test expression to fix a logical short circuit by @munahaf in https://github.com/simpeg/discretize/pull/339</li>
<li>Add export config for git archives by @jcapriot in https://github.com/simpeg/discretize/pull/340</li>
<li>Pyproject.toml by @jcapriot in https://github.com/simpeg/discretize/pull/338</li>
<li>CIbuildwheel by @jcapriot in https://github.com/simpeg/discretize/pull/342</li>
<li>Add Release Notes for 0.10.0 by @jcapriot in https://github.com/simpeg/discretize/pull/343</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li>@munahaf made their first contribution in https://github.com/simpeg/discretize/pull/339</li>
</ul>
<p><strong>Full Changelog</strong>: https://github.com/simpeg/discretize/compare/v0.9.0...v0.10.0</p>
Software Carpentry: Version Control with Git
A half-day introduction to version control with Git and GitHub for researchers, developed and maintained by the Software Carpentry team