From e782fd3bfe56bd9294db4f23f1d4b23c3bc1b3f1 Mon Sep 17 00:00:00 2001 From: cako Date: Mon, 9 Oct 2023 15:59:56 -0700 Subject: [PATCH] improve language --- pylops/waveeqprocessing/kirchhoff.py | 22 +++++++++++----------- pytests/test_kirchhoff.py | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/pylops/waveeqprocessing/kirchhoff.py b/pylops/waveeqprocessing/kirchhoff.py index 3ea6b6f4..5c7fef59 100644 --- a/pylops/waveeqprocessing/kirchhoff.py +++ b/pylops/waveeqprocessing/kirchhoff.py @@ -137,18 +137,18 @@ class Kirchhoff(LinearOperator): .. math:: d(\mathbf{x_r}, \mathbf{x_s}, t) = - \widetilde{w}(t) * \int_V \frac{2 cos(\theta)} {v(\mathbf{x})} + \widetilde{w}(t) * \int_V \frac{2 \cos\theta} {v(\mathbf{x})} G(\mathbf{x_r}, \mathbf{x}, t) G(\mathbf{x}, \mathbf{x_s}, t) m(\mathbf{x}) \,\mathrm{d}\mathbf{x} where :math:`G(\mathbf{x}, \mathbf{x_s}, t)` and :math:`G(\mathbf{x_r}, \mathbf{x}, t)` are the Green's functions from source-to-subsurface-to-receiver and finally - :math:`\widetilde{w}(t)` is a filtered version of the wavelet :math:`w(t)` - as explained below (or the wavelet itself when ``wavfilter=False``). + :math:`\widetilde{w}(t)` is either a filtered version of the wavelet :math:`w(t)` + as explained below (``wavfilter=True``) or the wavelet itself when (``wavfilter=False``). Moreover, an angle scaling is included in the modelling operator, - where :math:`\theta=(\theta_s-\theta_r)/2` is half of the opening angle, - where :math:`\theta_s` and :math:`\theta_r` are the angles between the source-side - and receiver-side rays and the vertical at the image point. + where the reflection angle :math:`\theta=(\theta_s-\theta_r)/2` is half of the opening angle, + with :math:`\theta_s` and :math:`\theta_r` representing the angles between the source-side + and receiver-side rays and the vertical at the image point, respectively. In our implementation, the following high-frequency approximation of the Green's functions is adopted: @@ -168,14 +168,14 @@ class Kirchhoff(LinearOperator): On the other hand, when ``dynamic=True``, the amplitude scaling is defined as - * ``2D``: :math:`a(\mathbf{x}, \mathbf{y})=\frac{1}{\sqrt{dist(\mathbf{x}, \mathbf{y})}}` - * ``3D``: :math:`a(\mathbf{x}, \mathbf{y})=\frac{1}{dist(\mathbf{x}, \mathbf{y})}` + * ``2D``: :math:`a(\mathbf{x}, \mathbf{y})=\frac{1}{\sqrt{\text{dist}(\mathbf{x}, \mathbf{y})}}` + * ``3D``: :math:`a(\mathbf{x}, \mathbf{y})=\frac{1}{\text{dist}(\mathbf{x}, \mathbf{y})}` approximating the geometrical spreading of the wavefront. For ``mode=analytic``, - :math:`dist(\mathbf{x}, \mathbf{y})=\|\mathbf{x} - \mathbf{y}\|`, whilst for - ``mode=eikonal``, this is instead computed internally by the eikonal solver. + :math:`\text{dist}(\mathbf{x}, \mathbf{y})=\|\mathbf{x} - \mathbf{y}\|`, whilst for + ``mode=eikonal``, this is computed internally by the Eikonal solver. - The wavelet filtering is applied as follows: + The wavelet filtering is applied as follows [3]_: * ``2D``: :math:`\tilde{W}(f)=\sqrt{j\omega} \cdot W(f)` * ``3D``: :math:`\tilde{W}(f)=j\omega \cdot W(f)` diff --git a/pytests/test_kirchhoff.py b/pytests/test_kirchhoff.py index b210a95b..64139544 100755 --- a/pytests/test_kirchhoff.py +++ b/pytests/test_kirchhoff.py @@ -287,7 +287,7 @@ def test_kirchhoff3d(par): ) def test_kirchhoff2d_trav_vs_travsrcrec(par): """Compare 2D Kirchhoff operator forward and adjoint when using trav (original behavior) - or trav_src and trav_rec (new reccommended behaviour)""" + or trav_src and trav_rec (new recommended behaviour)""" # new behaviour Dop = Kirchhoff(