⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 paper.tex

📁 国外免费地震资料处理软件包
💻 TEX
📖 第 1 页 / 共 4 页
字号:
it simply jumped from a well value at one pointto a seismic value at a neighboring point.The map would contain discontinuities around each well.Our philosophy of finding an earth model $\bold m$is that our earth map should contain no obvious ``footprint'' of the data acquisition (well locations).We adopt the philosopy that the differencebetween the final map (extended wells)and the seismic information $\bold x=\bold m-\bold s$ should be smooth.Thus,we seek the minimum residual $\bold r$which is the roughened difference between the seismic data $\bold s$and the map $\bold m$ of hypothetical omnipresent wells.With roughening operator $\bold A$ we fit\begin{equation}\bold 0\quad\approx\quad \bold r \eq \bold A ( \bold m - \bold s )	\eq \bold A \bold x\label{eqn:unconmap}\end{equation}along with the constraintthat the map should match the wells at the wells.We could write this as$\bold 0 = (\bold I-\bold J) ( \bold m - \bold w )$.We honor this constraint by initializing the map $\bold m = \bold w$to the wells (where we have wells, and zero elsewhere).After we find the gradient direction to suggest some changesto $\bold m$, we simply will not allow those changes at well locations.We do this with a mask.We apply a "missing data selector" to the gradient.It zeros out possible changes at well locations.Like with the goal (\ref{eqn:misfitgoal2}),we have\begin{equation}\bold 0\quad\approx\quad \bold r \eq\bold A \bold J \bold x + \bold A \bold x_{\rm known}\end{equation}After minimizing $\bold r$ by adjusting $\bold x$,we have our solution $ \bold m =  \bold x + \bold s $.\parNow we prepare some roughening operators $\bold A$.We have already coded a 2-D gradient operator\texttt{igrad2} \vpageref{lst:igrad2}.Let us combine it with its adjoint to get the 2-D laplacian operator.(You might notice that the laplacian operator is ``self-adjoint'' meaningthat the operator does the same calculation that its adjoint does.Any operator of the form $\bold A'\bold A$ is self-adjoint because$(\bold A'\bold A)'=\bold A'\bold A''=\bold A'\bold A$. )\par\opdex{laplac2}{Laplacian in 2-D}{34}{78}{user/fomels} Subroutine \texttt{lapfill()}\vpageref{lst:lapfill} is the same idea as \texttt{mis1()}\vpageref{lst:mis1} except that the filter $\bold A$ has been specialized to the laplacianimplemented by module \texttt{laplac2} \vpageref{lst:laplac2}. \moddex{lapfill}{Find 2-D missing data}{63}{76}{user/fomels}\parSubroutine \texttt{lapfill()}can be used for each of our two problems,(1) extending the seismic data to fill space, and(2) fitting the map exactly to the wells and approximately to the seismic data.When extending the seismic data,the initially non-zero components $\bold s \ne \bold 0$ are fixedand cannot be changed.\begin{comment}That is done by calling\texttt{lapfill()} with \texttt{mfixed=(s/=0.)}.When extending wells,the initially non-zero components $\bold w \ne \bold 0$ are fixedand cannot be changed.That is done by calling\texttt{lapfill()} with \texttt{mfixed=(w/=0.)}.\end{comment}\parThe final map is shown in Figure \ref{fig:finalmap}.\plot{finalmap}{width=4.5in,height=3in}{  Final map based on Laplacian roughening.}\parResults can be computed with various filters.I tried both $\nabla^2$ and $\nabla$.There are disadvantages of each,$\nabla$ being too cautious and$\nabla^2$ perhaps being too aggressive.Figure \ref{fig:diffdiff} shows the difference $\bold x$ betweenthe extended seismic data and the extended wells.Notice that for $\nabla$ the difference showsa localized ``tent pole'' disturbance about each well.For $\nabla^2$ there could be large overshoot between wells,especially if two nearby wells have significantly different values.I don't see that problem here.\parMy overall opinion is that the Laplacian does the better job in this case.I have that opinion because in viewing the extended gradientI can clearly see where the wells are.The wells are where we have acquired data.We'd like our map of the world to not show where we acquired data.Perhaps our estimated map of the world cannot help but show wherewe have and have not acquired data, but we'd like to minimize that aspect.\par\boxit{ A good image of the earth hides our data \bx{acquisition footprint}.  }\plot{diffdiff}{width=5in,height=2.25in}{  Difference between wells (the final map)  and the extended seismic data.  Left is plotted at the wells (with gray background for zero).  Center is based on gradient roughening and shows  tent-pole-like residuals at wells.  Right is based on Laplacian roughening.}\parTo understand the behavior theoretically,recall that in one dimension the filter $\nabla$ interpolates with straight linesand $\nabla^2$ interpolates with cubics.This is because the fitting goal$\bold 0 \approx \nabla \bold m$,leads to${\partial \over\partial \bold m'} \bold m'\nabla'\nabla \bold m = \bold 0$or $\nabla'\nabla \bold m = \bold 0$, whereas the fitting goal         $\bold 0 \approx \nabla^2 \bold m$leads to        $\nabla^4 \bold m = \bold 0$which is satisfied by cubics.In two dimensions, minimizing the output of $\nabla$gives us solutions of Laplace's equation with sources at the known data.It is as if $\nabla$ stretches a rubber sheet over poles at each well,whereas $\nabla^2$ bends a stiff plate.\parJust because $\nabla^2$ gives smoother maps than  $\nabla$does not mean those maps are closer to reality.This is a deeper topic, addressed in Chapter~\ref{mda/paper:mda}.It is the same issue we noticed when comparingfigures \ref{fig:mlines}-\ref{fig:mbest}.\section{SEARCHING THE SEA OF GALILEE}\sx{Sea of Galilee}\sx{Galilee, Sea of}\inputdir{galilee}Figure \ref{fig:locfil} shows a bottom-sounding surveyof the Sea of Galilee\footnote{        Data collected by Zvi \bx{ben Avraham}, TelAviv University.        Please communicate with him {\tt zvi@jupiter1.tau.ac.il}        for more details or if you make something        publishable with his data.        }at various stages of processing.The ultimate goal is not only a good map ofthe depth to bottom,but images useful for the purposeof identifying \bx{archaeological}, geological, orgeophysical details of the sea bottom.The Sea of Galilee is uniquebecause it is a {\it fresh}-water lake {\it below} sea-level.It seems to be connected to the great rift (pull-apart)valley crossing east Africa.We might delineate the Jordan River delta.We might find springs on the water bottom.We might find archaeological objects.\par\plot{locfil}{width=6in,height=8.5in}{  Views of the bottom of the Sea of Galilee.}The raw data is 132,044 triples, $(x_i,y_i,z_i)$,where $x_i$ ranges over about 12 km andwhere $y_i$ ranges over about 20 km.The lines you see in Figure \ref{fig:locfil}are sequences of data points, i.e., the track of the survey vessel.The depths $z_i$ are recorded to an accuracy of about 10 cm.\parThe first frame in Figure~\ref{fig:locfil} shows simple binning.A coarser mesh would avoid the empty bins but lose resolution.As we refine the mesh for more detail,the number of empty bins growsas does the care needed in devising a techniquefor filling them.This first frame uses the simple idea from Chapter \ref{ajt/paper:ajt} ofspraying all the data values to the nearest binwith \texttt{bin2()} \vpageref{lst:bin2}and dividing by the number in the bin.Bins with no data obviously need to be filled in some other way.I used a missing data program like that in the recent sectionon ``wells not matching the seismic map.''Instead of roughening with a Laplacian, however,I used the gradient operator \texttt{igrad2} \vpageref{lst:igrad2}% I used the \bx{roughening operator} \texttt{rufftri2()} \vpageref{lst:rufftri2},% which is an impulse minus a broad smoothing operator.The solver is \texttt{grad2fill()}.\moddex{grad2fill}{low cut missing data}{52}{60}{user/fomels}%\par%Having a roughener with an adjustable width in the smoothing operator%allows us to choose a cutoff frequency.%This is interesting for two reasons:%(1) The output of the roughening operator%is interesting to look at; and%(2) Larger filters allow missing data iterations to converge more quickly.\parThe output of the roughening operator is an image,a filtered version of the depth,a filtered version of something real.Such filtering can enhance the appearance of interesting features.For example,scanning the shoreline of the roughened image(after missing data was filled),we see several ancient shorelines, now submerged.\par\boxit{The adjoint is the easiest image to build.The roughened map is often more informative than the map itself.}\parThe views expose several defectsof the data acquisition and of our data processing.The impulsive glitches (St.~Peter's fish?)need to be removed but we must be careful not to throwout the sunken ships along with the bad data points.Even our best image shows clear evidence of the recording vessel's tracks.Strangely, some tracks are deeper than others.Perhaps the survey is assembled from work done in different seasonsand the water level varied by season.Perhaps some days the vessel was more heavily loadedand the depth sounder was on a deeper keel.As for the navigation equipment,we can see that some data values are reported outside the lake!\par%\boxit{ A good image of the earth hides our data \bx{acquisition footprint}.  }\parWe want the sharpest possible viewof this classical site.A treasure hunt is never easyand no one guarantees we willfind anything of great valuebut at least the exercise is a good warm-upfor submarine petroleum exploration.\section{INVERSE LINEAR INTERPOLATION}\inputdir{invint}In Chapter \ref{ajt/paper:ajt} we defined \bx{linear interpolation}\sx{interpolation}as the extraction of values from between mesh points.In a typical setup (occasionally the role of data and model are swapped),a model is given on a uniform meshand we solve the easy problem of extracting valuesbetween the mesh points with subroutine \texttt{lint1()} \vpageref{lst:lint1}.The genuine problem is the inverse problem, which we attack here.Data values are sprinkled all around,and we wish to find a function on a uniform meshfrom which we can extract that data by \bx{linear interpolation}.The adjoint operator for subroutine {\tt lint1()}simply piles data back into its proper location in model spacewithout regard to how many data values land in each region.Thus some model values may have many data points addedto them while other model values get none.We could interpolate by minimizing the energy in the model gradient,or that in the second derivative of the model,or that in the output of any other roughening filterapplied to the model.\parFormalizing now our wishthat data $\bold d$ be extractable by \bx{linear interpolation} $\bold F$,from a model $\bold m$,and our wish that application of a roughening filterwith an operator $\bold A$ have minimum energy, we write the fitting goals:\begin{equation}        \begin{array}{lll}        \bold 0 &\approx & \bold F \bold m - \bold d \\        \bold 0 &\approx & \bold A \bold m        \label{eqn:invintwish}        \end{array}\end{equation}Suppose we take the roughening filter to be the second difference operator$(1,-2,1)$scaled by a constant $\epsilon$,and suppose we have a data point near each end of the modeland a third data point exactly in the middle.Then,for a model space 6 points long,the fitting goal could look like\def\E{\epsilon}\begin{equation} { \left[ \begin{array}{rrrrrr}   .8 & .2 & .  & .  & .  & .  \\   .  & .  & 1  & .  & .  & .  \\   .  & .  & .  & .  & .5 & .5 \\   \hline   \E & .  & .  & .  & .  & .  \\  -2\E& \E & .  & .  & .  & .  \\   \E &-2\E&  \E& .  & .  & .  \\   .  & \E &-2\E&  \E& .  & .  \\   .  & .  &  \E&-2\E&  \E& .  \\   .  & .  & .  &  \E&-2\E&  \E\\   .  & .  & .  & .  &  \E&-2\E\\   .  & .  & .  & .  & .  &  \E  \end{array} \right] \left[         \begin{array}{c}          m_0 \\           m_1 \\           m_2 \\           m_3 \\           m_4 \\           m_5         \end{array}\right] \ -\ \left[ \begin{array}{c}  d_0 \\   d_1 \\   d_2 \\   \hline  0   \\  0   \\  0   \\  0   \\  0   \\  0   \\  0   \\  0  \end{array} \right] \eq\left[ \begin{array}{c}  \bold r_d \\   \bold r_m   \end{array} \right] \quad \approx \ \bold 0\label{eqn:tworegexam}} \end{equation}\parThe residual vector has two parts,a data part $\bold r_d$ on topand a model part $\bold r_m$ on the bottom.The data residualshould vanish except where contradictory data valueshappen to lie in the same place.The model residual is the roughened model.\begin{comment}\parTwo fitting goals (\ref{eqn:invintwish}) are so common in practicethat it is convenient to adopt our least-square fittingsubroutine \texttt{solver_smp} \vpageref{lst:solver_smp} accordingly.The modificationis shown in module \texttt{solver_reg} \vpageref{lst:solver_reg}.In addition to specifying the ``data fitting'' operator $\bold F$(parameter \texttt{Fop}),we need to pass the ``model regularization'' operator $\bold A$(parameter \texttt{Aop}) and thesize of its output (parameter \texttt{nAop}) for proper memory allocation.%\begin{notforlecture}\par(When I first looked at module \texttt{solver_reg} I was appalledby the many lines of code, especially all the declarations.Then I realized how much much worse was Fortran 77 whereI needed to write a new solver for every pair of operators.This one solver module works for all operator pairsand for many optimization descent strategiesbecause these ``objects'' are arguments.These more powerful objects require declarations that are more complicatedthan the simple objects of Fortran 77.As an author I have a dilemma:To make algorithms compact (and seem simple) requires many careful definitions.When these definitions put in the code, they are careful,but the code becomes annoyingly verbose.Otherwise, the definitions must go in the surrounding natural languagewhere they are not easily made precise.)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -