This specification describes technologies for computational modeling and seismic data processing.
In data processing, for example, seismic data processing, computational modeling techniques including waveform inversion may be employed, for example, to generate a seismic velocity model of a subterranean (rock) formation based. The models may be based on certain characteristics of seismic signals. A technique that may be used for a high-resolution seismic imaging based the entire content of seismic traces is known as Full Waveform Inversion (FWI). FWI may be used for refining detailed seismic (acoustic) velocity fields in order to achieve improved subsurface images.
An example method is for producing a seismic wave velocity model of a subsurface area. The method includes receiving, by a processor of a computing system, from a seismic receiver, seismic data input comprising a recorded seismic wave field. The method includes receiving, by the processor, an initial 1D velocity model of the subsurface area. The method includes receiving, by the processor, data input comprising a maximum misfit value and maximum iteration value. The method includes determining, by the processor, a Laplace-Fourier transform of the recorded seismic wave field.
The method includes setting, by the processor, a current 1D velocity model to the initial 1D velocity model. The method includes setting, by the processor, an iteration value n to zero. The method includes regenerating, by the processor, the current 1D velocity model to generate inverted data representing the subsurface area.
The method includes generating, by the processor, a modeled synthetic wave field in the Laplace-Fourier domain using the current 1D velocity model (step (i)). The method includes comparing the modeled synthetic wave field with the recorded seismic wave field to determine a misfit value (step (ii)). The method includes if the determined misfit value is less than the maximum misfit value, outputting the current 1D velocity model as the final 1D velocity model (step (iii)). The method includes if the determined misfit value is greater than the maximum misfit value, and if the iteration value is equal to or greater than the maximum iteration value, outputting the current 1D velocity model as the final velocity model (step (iv)). The method includes, if the determined misfit value is greater than the maximum misfit value, and if the iteration value is less than the maximum iteration value, generating a corrected current 1D velocity model using a gradient of a misfit function and setting the iteration value to n+1 (step (v)). The method includes repeating steps (i) through (v).
The method may include performing, by the processor, an upscaling of a plurality of 1D velocity models to produce a 3D velocity model.
Generating a modeled synthetic wave field in the Laplace-Fourier domain may include calculating an inverse Hankel transformation integral using an iterative horizontal wavenumber line segmentation process to determine locations for sampling the integrand and the upper limit at which to truncate the transformation integral. The segmentation process may include determining an end to a segment using the Newton-Raphson method.
Generating a modeled synthetic wave field in the Laplace-Fourier domain may include calculating an inverse Hankel transformation using an adaptive sampling technique to determine horizontal wavenumbers to be sampled in a segment. The adaptive sampling technique may include iteratively splitting the segment into two or more intervals of equal or unequal length.
The adaptive sampling technique may include determining convergence at two or more points in each segment. The method may include generating, by the processor, a seismic image of the subsurface area using the inverted data.
One or more example non-transitory machine-readable storage media are for storing instructions for producing a seismic wave velocity model of a subsurface area. The instructions are executable by one or more processing devices to perform one or more operations.
The operations include receiving, from a seismic receiver, seismic data input comprising a recorded seismic wave field. The operations include receiving, an initial 1D velocity model of the subsurface area. The operations include receiving, data input comprising a maximum misfit value and maximum iteration value. The operations include determining, a Laplace-Fourier transform of the recorded seismic wave field.
The operations include setting, a current 1D velocity model to the initial 1D velocity model. The operations include setting, an iteration value n to zero. The operations include regenerating, the current 1D velocity model to generate inverted data representing the subsurface area.
The operations include generating, a modeled synthetic wave field in the Laplace-Fourier domain using the current 1D velocity model (step (i)). The operations include comparing the modeled synthetic wave field with the recorded seismic wave field to determine a misfit value (step (ii)). The operations include if the determined misfit value is less than the maximum misfit value, outputting the current 1D velocity model as the final 1D velocity model (step (iii)). The operations include if the determined misfit value is greater than the maximum misfit value, and if the iteration value is equal to or greater than the maximum iteration value, outputting the current 1D velocity model as the final velocity model (step (iv)). The operations include, if the determined misfit value is greater than the maximum misfit value, and if the iteration value is less than the maximum iteration value, generating a corrected current 1D velocity model using a gradient of a misfit function and setting the iteration value to n+1, and repeating steps (i) through (v).
The operations may include performing an upscaling of a plurality of 1D velocity models to produce a 3D velocity model.
Generating a modeled synthetic wave field in the Laplace-Fourier domain may include calculating an inverse Hankel transformation integral using an iterative horizontal wavenumber line segmentation process to determine locations for sampling the integrand and the upper limit at which to truncate the transformation integral. The segmentation process may include determining an end to a segment using the Newton-Raphson method.
Generating a modeled synthetic wave field in the Laplace-Fourier domain may include calculating an inverse Hankel transformation using an adaptive sampling technique to determine horizontal wavenumbers to be sampled in a segment. The adaptive sampling technique may include iteratively splitting the segment into two or more intervals of equal or unequal length.
The adaptive sampling technique may include determining convergence at two or more points in each segment. The operations may include generating, by the processor, a seismic image of the subsurface area using the inverted data.
An example system includes one or more non-transitory machine-readable storage media storing instructions for producing a seismic wave velocity model of a subsurface area. The system includes one or more processing devices to execute the instructions to perform one or more operations.
The operations include receiving, from a seismic receiver, seismic data input comprising a recorded seismic wave field. The operations include receiving, an initial 1D velocity model of the subsurface area. The operations include receiving, data input comprising a maximum misfit value and maximum iteration value. The operations include determining, a Laplace-Fourier transform of the recorded seismic wave field.
The operations include setting, a current 1D velocity model to the initial 1D velocity model. The operations include setting, an iteration value n to zero. The operations include regenerating, the current 1D velocity model to generate inverted data representing the subsurface area.
The operations include generating, a modeled synthetic wave field in the Laplace-Fourier domain using the current 1D velocity model (step (i)). The operations include comparing the modeled synthetic wave field with the recorded seismic wave field to determine a misfit value (step (ii)). The operations include if the determined misfit value is less than the maximum misfit value, outputting the current 1D velocity model as the final 1D velocity model (step (iii)). The operations include if the determined misfit value is greater than the maximum misfit value, and if the iteration value is equal to or greater than the maximum iteration value, outputting the current 1D velocity model as the final velocity model (step (iv)). The operations include, if the determined misfit value is greater than the maximum misfit value, and if the iteration value is less than the maximum iteration value, generating a corrected current 1D velocity model using a gradient of a misfit function and setting the iteration value to n+1, and repeating steps (i) through (v).
The operations may include performing an upscaling of a plurality of 1D velocity models to produce a 3D velocity model.
Generating a modeled synthetic wave field in the Laplace-Fourier domain may include calculating an inverse Hankel transformation integral using an iterative horizontal wavenumber line segmentation process to determine locations for sampling the integrand and the upper limit at which to truncate the transformation integral. The segmentation process may include determining an end to a segment using the Newton-Raphson method.
Generating a modeled synthetic wave field in the Laplace-Fourier domain may include calculating an inverse Hankel transformation using an adaptive sampling technique to determine horizontal wavenumbers to be sampled in a segment. The adaptive sampling technique may include iteratively splitting the segment into two or more intervals of equal or unequal length.
The adaptive sampling technique may include determining convergence at two or more points in each segment. The operations may include generating, by the processor, a seismic image of the subsurface area using the inverted data.
These and other features, aspects, and advantages of the present technologies will become better understood with regard to the following descriptions, claims, and accompanying drawings. It is to be noted, however, that the drawings illustrate only several implementations and are therefore not to be considered limiting.
Like reference numerals in the figures indicate like elements.
Seismic imaging includes the analysis of sound waves, which may be reflected, refracted, or absorbed by underground rock structures. Generally, seismic imaging techniques include generating intense acoustic energy (sound) by a source and directing the energy into the ground. Receivers, for example, geophones, which are analogous to microphones, may detect sound waves or “echoes” that travel back (up) through the ground. The parameters of these echo waves (for example, intensity, time, amplitude, or wavelength) may be recorded and analyzed on a computer. The wave signals are analyzed and may be converted into images of the geologic structure.
As part of the analysis and image generation, a technique known as waveform inversion may be employed to generate a seismic model of a subterranean formation, for example, a hydrocarbon-bearing rock formation. Wave measurements and analysis may be used, for example, to reveal oil- or gas-bearing formations or reservoirs. A specific type of waveform inversion is known as Full Waveform Inversion (FWI), which internally employs full wave field modeling, that is, modeling both amplitudes and arrival times of seismic events. FWI may be used to develop seismic velocity models that can be in turn used to produce seismic reflectivity images.
The quality of the seismic reflectivity images strongly depends on the quality of the corresponding seismic velocity model. A technique known as 3D FWI in the Laplace-Fourier domain may be used for retrieving accurate velocity models, but this technique may be computationally expensive. It is possible, however, to approximate a 3D medium by an effective 1.5D medium and invert for independent 1D-velocity profiles that can be then merged and upscaled to form a 3D volume. In order to achieve this task, a computationally efficient Laplace-Fourier 1.5D forward modeling solution may be used. A forward modeling solution as described in this specification is used internally by the Laplace-Fourier FWI.
This specification describes algorithms and workflows to accelerate the computation of Laplace-Fourier 1.5D forward modeling by means of an adaptive sampling technique.
This specification describes a technology including new algorithms and workflows for implementing a fast calculation of Laplace-Fourier 1.5D forward modeling. The resulting model may then be used in various decision-making processes including well-placement, the decision to construct (or not construct) a new well, the decision to take additional sampling data (for example, seismic data, among other possible data types) in a specific geographic area, the decision to continue to operate a production well (or alternatively, to take a well out of production) based on one or more model predictions, and/or other decisions that result in a real-world action step being taken. For example, once a 1D or 1.5D model is finalized, the embodiments disclosed herein may also include taking any of these additional actions steps (i.e., constructing a well in a specific location, taking a well out of production, performing data sampling (for example, seismic data) in a specific geographic area, as well as other action steps as disclosed here etc.) as a result of the model predictions. An example workflow for a method to produce a 1D seismic velocity model is shown in
As next step, a Laplace-Fourier transform of the recorded seismic wave fields is determined. A current 1D velocity model is then set to the initial 1D velocity model and an iteration value is set to zero. A modeled synthetic wave field in the Laplace-Fourier domain is then (re)generated using the current 1D velocity model. The modeled synthetic wave field is compared with the recorded seismic wave field to determine a misfit value. If the determined misfit value is less than the maximum misfit value, the current 1D velocity model is outputted as the final 1D velocity model. If the determined misfit value is greater than the maximum misfit value, and if the iteration value is equal to or greater than the maximum iteration value, the current 1D velocity model is outputted as the final 1D velocity model. If the determined misfit value is greater than the maximum misfit value, and if the iteration value is less than the maximum iteration value, a corrected 1D current velocity model is generated using the gradient of the misfit function. The iteration value is increased by 1, the steps are repeated starting at the generation of a modeled synthetic wave field in the Laplace-Fourier domain using an updated 1D velocity model.
The final outputted 1D velocity model constitutes the result of Laplace-Fourier full waveform inversion (FWI). A plurality of such 1D velocity models can be generated using different recorded wave fields as input. These 1D velocity models can then be upscaled to form a 3D model. The 3D model may be displayed as an image on a computer screen. It may also be used as a starting model for 3D FWI or to perform seismic migration.
Various steps of the present embodiments that are computationally intensive may be off-loaded from a central processing unit (CPU) to one or more computing components (such as a graphics processing unit (GPU), a tensor processing unit (TPU), an application-specific integrated circuit (ASC), and/or a field programmable gate array (FPGA)) that are specifically configured for parallelization (that is, parallel computing). For example, referring to
In some implementations, the technologies described in this specification provide a novel approach to carry out the numerical integration used in the calculation of the inverse Hankel transformation, a process required by the Laplace-Fourier 1.5D forward modeling when generating the modeled synthetic wave field. The technologies include the implementation of two novel algorithms (KRMAX and ADS,) for the automatic choice of truncation limit (upper horizontal wavenumber) for the Hankel transform integral, as well as the automatic sampling of the integrand. Moreover, the technologies include a novel algorithm for carrying out the numerical integration, combining a piecewise-linear approximation of the integrand with analytic expressions for calculating the integral of the product of a piecewise-linear function with a Bessel function of the first kind of order 0. This latter algorithm is fully automatic and does not require setting any input parameters in contrast to other methods. The accuracy of the overall implementation and workflow has been tested on synthetic data.
The technologies described in this specification provide a technical advantage over the available methods by improving processing speed and ease of use. For example, the method described in Tripathi (2014) is more general, as it can evaluate Hankel transforms of arbitrary order, but its formulation involves an infinite series that must be truncated. Choosing the number of terms to keep for an accurate result is not straightforward, especially for an application such FWI, where the inverse Hankel transform needs to be calculated for a function that changes every iteration. Choosing to keep a very high number of terms is an option, but may lead to excessive evaluations of Bessel functions, which may render the process (computationally) expensive. The methods described in this specification have a more limited scope, as they are designed specifically for the Hankel transform of order zero, but they use a different formulation that avoids the need to explicitly truncate an infinite series. Determining the horizontal wavenumber at which to truncate the integration involved in calculating the Hankel transform is also a detail that is often not discussed, e.g., in Krenk (1989), or is a piece of information assumed to be known, e.g., in Xu (1985) or in Hai-Ming (2001). The algorithm KRMAX included in the methods described in this specification means that the end user does not have to set an explicit upper horizontal wavenumber, that might need to vary per problem, but a rather easier to set tolerance value. Moreover, the technologies described may be used not only for FWI, but may also be used with techniques using the computation of an inverse Hankel transformation, such as electromagnetic (EM)/optical wave field propagation and ocean acoustics modeling.
The technologies described in this specification relate to velocity modeling and inversion for seismic exploration. The technologies may improve the reliability of seismic images, thus enhancing the discovery of new resources. The described approach may generally be used in any other technology that requires the computation of an inverse Hankel transformation.
In some implementations, the technologies described in this specification solve the problem of speeding up 1.5D forward modeling in the Laplace-Fourier domain. In an inversion process the forward modeling problem has to be solved multiple times. The proposed technologies may be used to speed up the Laplace-Fourier FWI process significantly.
Full waveform inversion (FWI) is becoming the current standard technology to derive seismic velocity models but this technology requires a very good initial velocity model and is computationally expensive, especially in its 3D implementations. 3D FWI in the Laplace-Fourier domain is less sensitive to the initial velocity model but it can be still comparatively computationally expensive. It is possible to locally approximate the 3D medium by an effective 1.5D medium and invert for independent 1D velocity profiles that can be then merged and upscaled to a 3D volume. This specification describes technologies including a novel algorithm for implementing a fast calculation of Laplace-Fourier 1.5D forward modeling.
The 1.5D Laplace-Fourier forward modeling method includes two steps. The first step is to solve a version of the depth-separated 1D wave equation. For the purposes of the present disclosure, it takes the form
which is the constant density acoustic Laplace-Fourier-Hankel wave equation. Here s=σ+jω is the Laplace-Fourier complex frequency. Its two components are the damping factor σ (real part) and the angular frequency ω (imaginary part). Variable z represents the depth, r the offset and kr the horizontal wavenumber. The modeled wave field, the forcing term, and the 1D velocity model are denoted with {tilde over (p)}(kr, z; s), f (kr, z; s) and c(z) respectively.
The second step is to perform the inverse Hankel transform in order to transform the solution from the Laplace-Fourier-Hankel to the Laplace-Fourier domain (converting the horizontal wavenumber dimension to offset):
where J0( ) is the Bessel function of the first kind of order 0 and {tilde over (g)}(kr, z; s)={tilde over (p)}(kr, z; s)kr.
The technologies described in this specification address the challenges associated with carrying out (2). It is assumed that there exists a modeling function L( ) such that
{tilde over (p)}(kr,z;s)=L(kr,z;s). (3)
Although the acoustic case is described in detail in this specification, in principle L( ) could be extended to handle more complex propagation, such as through elastic/anisotropic media.
Any scheme used to calculate the integral in (2) has to address at least the following issues:
First is the truncation of the integral. In practice the integral has to be truncated at some maximum horizontal wavenumber. For accurate modeling the value should be high enough so that all significant contributions of the integrand are included.
Second is the choice of horizontal wavenumbers at which to evaluate {tilde over (g)}(kr, z; s). As evaluating {tilde over (g)}(kr, z; s) involves solving the ordinary differential equation (1) it is a relatively expensive operation. To keep modeling fast, evaluations of {tilde over (g)}(kr, z; s) should be kept at a minimum. For accurate modeling, on the other hand, sampling should be dense enough to accurately capture the shape of {tilde over (g)}(kr, z; s), which might be characterized by complications, such as the presence of pseudopoles and rapid magnitude variations. Depending on how the integration is performed, the oscillatory nature of J0(rkr) may also need to be taken into account when deciding the sampling requirements.
Third is the choice of an integration scheme that carries out (2), given a set of discrete horizontal wavenumbers and the values of the modeling function at each of those.
The methods described in the present specification address the first two issues using a combination of two algorithms, which will be referred to as KRMAX and ADS. KRMAX determines where the truncation of the integral should occur. ADS uses adaptive sampling to determine the horizontal wavenumbers to be sampled. The set of chosen horizontal wavenumbers is then used to construct a piecewise-linear approximation of {tilde over (g)}(kr, z; s). For this approximation, the integral (2) can be computed analytically, which is the approach to addressing the third issue listed above.
The technologies described in this specification exploit the fact that {tilde over (g)}(kr, z; s) is generally varying much slower than J0(rkr), except for regions near pseudopoles, especially when the product rkr is large. This prompts treating {tilde over (g)}(kr, z; s) and J0(rkr) separately, rather than their product as a single entity in the integration scheme. Adaptive sampling allows one to build the piecewise-linear approximation by sampling densely in areas regions where {tilde over (g)}(kr, z; s) varies quickly and sparsely in regions of slow variation. Thus, the number of evaluations of {tilde over (g)}(kr, z; s) is kept at a minimum. Keeping the number of evaluations of {tilde over (g)}(kr, z; s) at a minimum helps minimize the computational effort spent in solving (1). Solving (2) analytically has certain advantages in that it is not necessary to set any additional parameters and that it is exact for all offset ranges. The accuracy of the inverse Hankel transform computed this way is only limited by the accuracy of the piecewise-linear approximation. In total, the KRMAX/ADS approach only requires setting two parameters that are scale-independent.
KRMAX works by dividing the horizontal wavenumber line into segments. The number of these segments is not known a priori, but is determined by an iterative process. Each of these segments has a minimum and a maximum length of Δkr and 10Δkr respectively, where
The value of Δkr is chosen such that it lies approximately at the beginning of the evanescent part of {tilde over (p)}(kr, z; s). The algorithm starts by calling ADS on the segment [0, Δkr]. ADS returns a set of horizontal wavenumbers, s as well as a set of corresponding values
s with
is={tilde over (g)}(
is, z; s). These are then appended to initially empty sets
and {tilde over (g)}. After appending,
={kr
={{tilde over (g)}(kr
This concludes the process for the first segment or interval. (See
where the first derivative at the end of the previous segment has been approximated using the last two elements of . In some implementations, other approximations to the first derivative, possibly involving more elements of
, may also be used. If required, kr,end is clipped so that kr,end∈[kr,start+Δkr, kr,start+10Δkr]. This guards against issues such as having kr,end≤kr,start or very small (big) segments caused by very big (small) values of the first derivative. Then, ADS is called on the new segment or interval and the same procedure is repeated (See
Using the Newton-Raphson method offers a practical way of determining an upper horizontal wavenumber at which the evanescent part of the wave field has become sufficiently weak. Truncating there is expected to capture most significant contributions of {tilde over (g)}(kr, z; s) while carrying out the inverse Hankel transform (2). It is noted that the described approach differs from known methods: for example, Georgiadis et al. (1999) also employ the Newton-Raphson method in their approach, but their purpose for doing so is to locate Rayleigh peaks, rather than to implement the segmentation described in this specification.
The ADS algorithm
The ADS algorithm is based on the method outlined in Krenk (1989). The method works within a segment [kr,start, kr,end] and calculates the area below the resulting linear segment. (See s and {tilde over (g)}(kr,split, z; s) to
s. The two subintervals are further bisected in the following iterations (See
Note that when (kr
The sets and
returned by KRMAX/ADS can be used to construct a piecewise-linear approximation to {tilde over (g)}(kr, z; s),
where Π(kr
Replacing {tilde over (g)}(kr, z; s) with {tilde over (g)}lin(kr, z) in (2), yields
p(r,z;s)≈∫0∞{tilde over (g)}lin(kr,z;s)J0(rkr)dkr, (6)
By using KRMAX/ADS to approximate {tilde over (g)}(kr, z; s) rather than {tilde over (p)}(kr, z; s), it becomes easy to calculate the integral (6), given the fact that the integrand for each segment [kr
The values ΔAi and ΔBi are given by
Here Ai and Bi are given in terms of Bessel functions of the first kind and v-th order, Jv( ) and Struve functions Hv( ). To evaluate the Struve functions involved, an accurate and fast method was used discussed in (Theodoulidis, On the closed-form expression of Carson's integral, 2015).
The method uses Chebyshev expansion for smaller values of the argument and rational approximation for the larger ones, and a Matlab implementation can be found in (Theodoulidis, Struve functions, 2019).
To test the correctness of the method the following test was performed. The velocity model shown in
The results at depths z=20 m and z=125 m are shown in
Both the ADS and KRMAX algorithms make use of the function
which calculates the absolute value of the trapezoidal rule of a function evaluated at x1 and x2, with corresponding values y1 and y2.
The KRMAX algorithm takes as input the forward modeling function L( ), Δkr as defined in (4), the depth and complex frequency at which to model (z and s respectively), as well as two parameters that are used in stopping criteria, τads and τkrmax. As output it provides a set of horizontal wavenumbers, , and a set of modeled data at those horizontal wavenumbers.
← { },
← { },
← { }
s,
s,
s} ← ADS(kr
←
∪
s,
←
∪
s,
←
∪
s
|
N −
N−1)/(
N −
N−1)
N/d
s,
s,
s} ← ADS(Kr
,
In each iteration of KRMAX, an interval [kr,start, kr,end] is determined and ADS is called to adaptively sample it. ADS works by dividing this interval successively into smaller subintervals and sampling {tilde over (g)}(kr, z; s) at the edges of those subintervals. The process stops once dividing further does not significantly change the estimated area below {tilde over (g)}(kr, z; s). The relevant tolerance is controlled via τads. The output is a set of sampled horizontal wavenumbers, s within the interval [kr,start, kr,end], as well as the corresponding values of {tilde over (g)}(kr, z; s) as members of the set
s.
s ← {kr,start, Kr,end}
s ← {L(kr,start, z, s), L(kr,end, z, s)}
s ← {0}
s ← {T(
1s,
2s,
1s,
2s)}
is :
is = 0
s|−1
is = 0 then
is +
i+1s)/2
is, kr,split,
is, {tilde over (g)}split)
i+1s, {tilde over (g)}split,
i+1s)
← {
1s, ...,
is, krsplit,
i+1s, ...,
N}
← {
1s, ...,
is, {tilde over (g)}split,
i+1s, ...,
Ns
s ← {
is, ...,
i−1s, 0, 0,
i+1s, ...
N−1s}
s ← {
is, ...,
i−1s, 1, 1,
i+1s, ...
N−1s}
← { 1s, ..., i−1s, vlsplit, vrsplit, i+1s, ... N−1s
s,
s,
s
The inverse Hankel transform of the piecewise-linear approximation to {tilde over (g)}(kr, z; s) can be carried out analytically. Substituting (5) into (6) yields
After splitting the integral into sub-integrals from kr
Ai and Bi are given b
The derivation can be found in the sections titled “Calculating Ai in terms of J1( )” and “Calculating Bi in terms of Struve functions H0( ) and H1( )”. Calculating (6) for every offset r is a linear operation with respect to the field samples {tilde over (g)}i and can be conveniently implemented as a dot product. To see this, we rearrange the terms in (9):
Using (10) the inverse Hankel transform is evaluated at a single offset. By grouping multiple of these dot products as a matrix-vector product, the inverse transform can be evaluated for multiple offsets r in a single operation.
Calculating Ai in terms of J1( )
Using the change of variables
and defining a=rkr
Using 6.561-5 (p. 676) from Gradshteyn (2007),
Setting v=0, it follows that
Calculating B1 in Terms of Struve Functions H0( ) and H1( )
Using the change of variables
and a=rkr
From Gradshteyn (2007) eq. 6.561-1 (p. 675),
which for v=0 becomes
using the fact that Γ(½)=√{square root over (π)}. Therefore,
It is possible to modify (11) such that it is given in terms of H1(x) rather than H−1(x). From Gradshteyn (2007) eq. 8.552-1 (p. 943), we have
where Ev( ) is the Weber function of order v. For n=1 and using Γ(3/2)=√{square root over (π)}/2,
From Gradshteyn (2007) eq. 8.552-2 (p. 943) we have that
We then use the following relationship between (Gradshteyn, 2007) eq. 8.582-4 (p. 948) is a useful relationship between Weber functions:
E
v−1(x)+Ev+1(x)=2vx−1Ev(x)−2(πx)−1(1−cos(vπ)),
which for v=1 becomes
E
−1(x)+E1(x)=0. (14)
Equations (12), (13) and (14) form the system of linear equations
H
1(x)+E1(x)=2/π
H
−1(x)+E−1(x)=0
E
−1(x)+E1(x)=0.
Elimination of E−1(x) and E1(x) yields
Plugging into (11), we get
At least part of the systems and methods described in this specification and their various modifications may be implemented or controlled, at least in part, by a computer program product, such as a computer program tangibly embodied in one or more information carriers, such as in one or more tangible machine-readable storage media, for execution by, or to control the operation of, data processing apparatus, for example a programmable processor, a computer, or multiple computers.
A computer program may be written in any form of programming language, including compiled or interpreted languages, and it may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program may be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a network.
Actions associated with implementing the systems may be performed by one or more programmable processors executing one or more computer programs to perform the functions of the calibration process. All or part of the systems may be implemented as special purpose logic circuitry, for example a field programmable gate array (FPGA) or an ASIC application-specific integrated circuit (ASIC), or both.
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only storage area or a random access storage area or both. Components of a computer (including a server) include one or more processors for executing instructions and one or more storage area devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from, or transfer data to, or both, one or more machine-readable storage media, such as mass storage devices for storing data, for example magnetic, magneto-optical disks, or optical disks. Non-transitory machine-readable storage media suitable for embodying computer program instructions and data include all forms of non-volatile storage area, including by way of example, semiconductor storage area devices, for example erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and flash storage area devices; magnetic disks, for example internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
Each computing device, such as a surface-locating computing system, may include a hard drive for storing data and computer programs, and a processing device (for example a microprocessor) and memory (for example RAM) for executing computer programs. Each computing device may include an image capture device, such as a still camera or video camera. The image capture device may be built-in or simply accessible to the computing device.
Each computing device may include a graphics system, including a display screen. A display screen, such as a liquid crystal display (LCD) or a CRT (Cathode Ray Tube) displays, to a user, images that are generated by the graphics system of the computing device. As is well known, display on a computer display (for example a monitor) physically transforms the computer display. For example, if the computer display is LCD-based, the orientation of liquid crystals may be changed by the application of biasing voltages in a physical transformation that is visually apparent to the user. As another example, if the computer display is a CRT, the state of a fluorescent screen may be changed by the impact of electrons in a physical transformation that is also visually apparent. Each display screen may be touch-sensitive, allowing a user to enter information onto the display screen via a virtual keyboard. On some computing devices, such as a desktop or smartphone, a physical QWERTY keyboard or Arabic keyboard and scroll wheel may be provided for entering information onto the display screen. Each computing device, and computer programs executed on such a computing device, may also be configured to accept voice commands, and to perform functions in response to such commands. For example, the process described in this specification may be initiated at a client, to the extent possible, via voice commands.
Components of different implementations described in this specification may be combined to form other implementations not specifically set forth in this specification. Components may be left out of the systems, computer programs, databases, etc. described in this specification without adversely affecting their operation. In addition, the logic flows shown in, or implied by, the figures do not require the particular order shown, or sequential order, to achieve desirable results. Various separate components may be combined into one or more individual components to perform the functions described here.