Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
271 changes: 262 additions & 9 deletions README.md

Large diffs are not rendered by default.

36 changes: 34 additions & 2 deletions docs/IMPLEMENTATION_PLAN.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Implementation plan: integrated borehole and surface seismic well tie (Lewis et al., 2016)

Status: **WP1–WP6 implemented** (see the README); WP7–WP8 to do. This document says what will be built, in what
Status: **WP1–WP7 implemented** (see the README); WP8 to do. This document says what will be built, in what
order, how each part will be checked, and where the method can be improved. It follows the
conventions of the earlier repositories in this series (for example `ES_PHYS_P010`): a Python
package, a `paper.py` that records where each published number comes from, figures redrawn on
Expand Down Expand Up @@ -375,7 +375,39 @@ reservoir AVA gradient against the elastic synthetic, scored numerically.
accuracy;
- Q compensation of a forward-attenuated spike recovers it up to the gain limit.

### WP7: Integration, AVO, multiples and the figures
### WP7: Integration, AVO, multiples and the figures (done)

*As built:* `iwt.welltie`, `iwt.workflow`, `iwt.multiples`, `iwt.avo.linear_resolution`,
`iwt.synthetic.dipping_reservoir_models` and `examples/reproduce_paper.py`, which runs the whole
loop (logs → ZO-VSP → walkaway → surface seismic) on estimated models only and writes
`docs/discrepancy_register.md`. Changes from the plan:

- **The predictions are full-waveform reflectivity, not ray-Born synthetics.** A ray-Born
gather in a smoothed background was built and dropped: beyond about 27° it loses the
cancellation between the tops and bases of the thin fast stringers, and the reservoir AVA
went wrong by tens of per cent.
- **Tie metrics use the complex cross-correlation of the analytic signals.** A real
cross-correlation trades a constant phase rotation for a time shift. The envelope peak gives
the shift; its phase gives the rotation (White & Simm, 2003).
- **The "observed" surface data are the full-physics response of the true earth** (internal
multiples, mode conversion, Q), without free surface (assumed deghosted and free-surface
demultipled). The contamination is measured after identical migration against the Born
primaries. It grows with offset and needs mode conversion: without it, the P-wave interbed
multiples are small. With it, the converted primaries and the multiples largely cancel, so
switching physics off does not split the contamination further.
- **The Vs scenarios (Fig. 4) are tested on contamination-free (Born) data**, as an ideal
demultiple would provide. On synthetic data the truth can also be swapped into the model one
part at a time, which attributes the remaining misfit; field data cannot do this, so the
identifiability study (section 5) is run on the same residual.
- **Acceptance criteria:** the AVA criterion uses 20–44°, not 30–50°, because the seabed
reflection crosses the reservoir at about 54° (WP6).
- **The Fig. 5 analogue is a zero-offset section of 1D columns** (a dipping wedge and a flat
contact), imaged column by column. Its fluid signal (oil section minus brine section) is
scored by depth and thickness. 2D migration is not modelled, so Q compensation can only
sharpen, not focus.
- **Not built:** hold-out validation across data families and Monte Carlo ensembles over the
WP4/WP5 posteriors (both still recommended), and free-surface multiples.


**Builds:**

Expand Down
34 changes: 34 additions & 0 deletions docs/discrepancy_register.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Discrepancy register of `examples/reproduce_paper.py`

Generated by the script on the synthetic well; do not edit by hand.

## Model versions

| # | name | changes |
|---|---|---|
| v0 | logs | sonic, dipole and density as logged (12 kHz / 2 kHz); isotropic; no Q |
| v1 | ZO-VSP calibrated | Vp at 30 Hz with VSP intrinsic Q; Qp from the VSP, Qs = Qp/2; gap from VSP |
| v2 | anisotropic | eps, delta from the calibrated sonic gamma |

## Discrepancies

| # | observation | hypothesis | test | result | decision | version |
|---|---|---|---|---|---|---|
| 1 | Integrated sonic time short of the VSP time by 12 ms at 1650 m | sonic dispersion (12 kHz vs 30 Hz) and layering | move the sonic to 30 Hz with the VSP intrinsic Q, Backus over 40 m | residual drift 0.22 ms RMS | adopt | v1 |
| 2 | Synthetic 8 ms late against the corridor stack (zero-lag correlation -0.06) | the 418-470 m gap above the logs (Quaternary) is filled with log velocities | fill the gap with the VSP interval velocity | correlation 0.93, shift +1.3 ms | adopt | v1 |
| 3 | Isotropic v1 cannot predict non-hyperbolic moveout or walkaway slownesses | VTI overburden (shales) | slowness-polarization inversion at six levels, gamma -> (eps, delta) calibration | eps slope 0.66, delta slope 0.49 per gamma | adopt eps, delta, gamma curves | v2 |
| 4 | Reservoir AVA beyond 20 deg erratic and not predicted (misfit 0.62 at the Stø top) | interbed multiples and mode conversion from the overburden stringers | compare physics variants of the true-earth gathers after identical processing | full - Born = 0.9 x Born (Stø), 1.5 x (Fruholmen), growing with offset (0.26 at <= 300 m); without mode conversion the P-wave multiples are only 0.14, 0.23 x Born; converted primaries and multiples each exceed the total and largely cancel; contamination-free misfit 0.14 | elastic (converted-wave) contamination: an acoustic demultiple would not repair the AVA; test the remaining hypotheses on contamination-free data | – |
| 5 | Contamination-free reservoir AVA still off: misfit 0.14 (Stø), 0.06 (Fruholmen) | sonic and seismic see Vs differently: dipole Vs is dispersed (2 kHz vs 30 Hz) | Vs moved to 30 Hz with Qs = Qp/2 (the article's rock-physics Vs analogue) | misfit 0.16 (Stø), 0.05 (Fruholmen) | reject: no overall improvement | – |
| 6 | (synthetic only) The true earth itself predicts +10% amplitude at all angles | Q compensation too weak: no VSP receivers between the seabed and 450 m, so the Quaternary (true Q 30) takes the first block's Q (46) | re-migrate the measurement with the true Q above the logs, then everywhere | mean misfit 0.088 -> 0.056 -> 0.040 | explained; constrain the shallow t* (VSP source signature, seabed multiples) on field data | – |
| 7 | (synthetic only) v2's Stø AVA falls with angle against the true earth's | the calibrated eps and delta, or the log resolution of the stringers | swap one part of v2 into the true earth | Stø misfit 0.40 with v2's eps and delta, 0.23 with v2's Vp, Vs and rho; 0.14 with both | not separable: the 5 m-smoothed gamma gives the isotropic stringers shale anisotropy, which v2's equally smoothed velocities partly cancel; keep one resolution | – |
| 8 | Flat oil-water contact hard to see under a dipping reservoir (Fig. 5) | Q-PSDM sharpens it; anisotropy positions it | zero-offset images of an oil and a brine section, VTI vs isotropic, with and without Q | VTI places the fluid signal at 684 m, isotropic at 701 m; Q compensation thins it from 44.6 to 43.2 m | anisotropy is what matters in 1D; the image improvement needs 2D/3D imaging | – |

## Acceptance criteria (fixed before tuning)

| criterion | value | threshold | passed |
|---|---|---|---|
| VSP first-break residual after calibration | 0.221 ms | <= 1 ms | yes |
| corridor stack vs synthetic, correlation | 0.934 | >= 0.8 | yes |
| reservoir event time shift (near-offset tie) | 0.0181 ms | <= 2 ms | yes |
| Stø-top AVA gradient, contamination-free, \|predicted/measured - 1\| | 0.396 | <= 0.1 | **no** |
| Stø-top AVA gradient, as acquired, \|predicted/measured - 1\| | 0.727 | <= 0.1 | **no** |
Binary file added docs/figures/wp7_ava.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/figures/wp7_section.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/figures/wp7_tie.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading