AgentStack
SKILL verified MIT Self-run

Rock Physics Avo

skill-steadfastasart-geoscience-skills-rock-physics-avo · by SteadfastAsArt

|

No reviews yet
0 installs
6 views
0.0% view→install

Install

$ agentstack add skill-steadfastasart-geoscience-skills-rock-physics-avo

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Rock Physics Avo? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Rock Physics & AVO Workflow

End-to-end pipeline for rock physics analysis and AVO feasibility studies, from well log preparation through elastic property calculation, Gassmann fluid substitution, AVO modelling, and synthetic seismogram generation.

Skill Chain

lasio / welly          bruges                    segyio / obspy
[Well Log Prep]     --> [Rock Physics]         --> [Synthetics / Tie]
  |                      |                          |
  Load LAS/DLIS          Elastic moduli             Wavelet extraction
  QC & despike           Gassmann fluid sub         Reflectivity series
  Resample curves        AVO intercept/gradient     Convolve synthetic
  Extract Vp, Vs, rho    Backus averaging           Well-seismic tie

Decision Points

| Task | Library | When to Use | |------|---------|-------------| | Load well logs | lasio / dlisio | Always the first step | | Curve QC and management | welly | Multi-curve processing, despiking | | Elastic moduli, AVO equations | bruges | Core rock physics calculations | | Gassmann fluid substitution | bruges | Predict fluid replacement effects | | Wavelet extraction from seismic | segyio + bruges | When tying to seismic | | Synthetic seismogram | bruges | Generate reflectivity and convolve | | Dispersion curves | disba | Surface wave rock physics |

Step-by-Step Orchestration

Stage 1: Well Log Preparation (lasio + welly)

import lasio
import numpy as np
from welly import Well

# Load well with sonic, density, and shear sonic
las = lasio.read('well.las')
df = las.df().dropna()

# Extract elastic logs
depth = df.index.values
vp = 1e6 / df['DT'].values       # P-wave velocity (m/s) from sonic (us/ft)
vs = 1e6 / df['DTS'].values      # S-wave velocity (m/s) from shear sonic
rho = df['RHOB'].values * 1000   # Density (kg/m3) from g/cc

# QC: check ranges
assert np.all(vp > 1500) and np.all(vp  500) and np.all(vs  1500) and np.all(rho  0, G  0  (very soft, dim with offset)

# Zoeppritz exact for full offset range
rc_exact = bruges.reflection.zoeppritz(
    vp1=vp[i], vs1=vs[i], rho1=rho[i],
    vp2=vp[i+1], vs2=vs[i+1], rho2=rho[i+1],
    theta=np.arange(0, 50, 1)
)

Stage 5: Synthetic Seismogram (bruges + segyio)

# Create reflectivity series
rc_series = bruges.reflection.reflectivity(vp, rho)

# Create wavelet
duration = 0.128  # seconds
dt = 0.002        # sample rate (2ms)
wavelet = bruges.filters.ricker(duration=duration, dt=dt, f=25)

# Convolve to create synthetic
synthetic = np.convolve(rc_series, wavelet, mode='same')

# If tying to seismic, extract wavelet from seismic trace
import segyio
with segyio.open('seismic.sgy') as f:
    near_trace = f.trace[0]  # Nearest trace to well
    # Extract statistical wavelet from trace
    # Or use bruges.filters for analytic wavelets

Common Pipelines

AVO Feasibility Study

- [ ] Load well logs (Vp, Vs, Rho, porosity) with lasio
- [ ] QC logs: check ranges, despike, fill gaps
- [ ] If no Vs log: estimate from Castagna or Greenberg-Castagna
- [ ] Calculate elastic moduli and impedances with bruges
- [ ] Run Gassmann fluid substitution (brine to gas/oil)
- [ ] Compare Vp, Vs, density, impedance before/after fluid sub
- [ ] Compute AVO response at target interface (Shuey or Zoeppritz)
- [ ] Classify AVO response (Class I-IV)
- [ ] Generate synthetic seismograms for both fluid scenarios
- [ ] Plot AVO crossplot (intercept vs gradient)

Well-Seismic Tie

- [ ] Load well logs and seismic trace at well location
- [ ] Create time-depth relationship from check shots or sonic
- [ ] Convert logs to time domain
- [ ] Extract wavelet from seismic (statistical or deterministic)
- [ ] Generate synthetic seismogram from reflectivity * wavelet
- [ ] Cross-correlate synthetic with seismic trace
- [ ] Adjust stretch/squeeze to optimize tie
- [ ] Report correlation coefficient

Backus Averaging (Upscaling)

- [ ] Load thin-bed well logs at fine sampling (0.5 ft)
- [ ] Define averaging window (e.g., quarter wavelength at target frequency)
- [ ] Apply Backus averaging to get effective anisotropic elastic properties
- [ ] Compare fine-scale vs upscaled reflectivity
- [ ] Assess thin-bed tuning effects

When to Use

Use the rock physics & AVO workflow when:

  • Performing AVO feasibility studies for exploration prospects
  • Running Gassmann fluid substitution to predict fluid effects
  • Generating synthetic seismograms for well-seismic ties
  • Calculating elastic properties from well logs
  • Classifying AVO response at target horizons

Use individual domain skills when:

  • Only loading well logs (use lasio alone)
  • Only computing dispersion curves (use disba alone)
  • Only creating wavelets or filters (use bruges alone)

Common Issues

| Issue | Solution | |-------|----------| | No shear sonic log | Estimate Vs from Castagna mudrock line or Greenberg-Castagna | | Gassmann gives unrealistic velocities | Check porosity and mineral modulus inputs; phi must be > 0 | | Negative Poisson's ratio | Usually indicates bad Vs data; QC shear sonic | | Poor well-seismic tie | Check time-depth relationship; try different wavelets | | AVO effect too small | May be real; check impedance contrast and Vp/Vs ratio | | Fluid sub in shales | Gassmann assumes connected pore space; not valid for shales |

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.