From SubSurfWiki
Jump to navigation Jump to search
AVO app screenshot.png

AVO* is a simple AVO modeling tool for geophysicists and seismic interpreters. The idea is to show the behaviour of amplitude with offset for a single interface, based on the Aki–Richards equation and Shuey approximation, widely-used approximations to the Zoeppritz equations. It also implements fluid substitution with the Gassmann equation.

When it was released in June 2011, the app cost $2 in the Android Market, but Agile* applied a 100% discount from September 2011 because of slow adoption.


You provide some acoustic properties: VP, VS (optional), and density. The app does four basic things:

  • Computes the elastic moduli of the two layers and displays them (tap Moduli)
  • Performs Gassmann fluid substitution, for a variety of pre-defined scenarios, on the lower layer
  • Shows the magnitude vs 'offset' (actually incidence angle) behaviour for the base case and the fluid sub case
  • Shows the AVO crossplot for the base case and the fluid sub


Link to YouTube video
Scan to visit the Market and install

Version 0.8.3

  • Released 27 September 2011
  • Enabled app to work in European language modes that perform math with the comma as a decimal marker (user request)

Version 0.8.2

  • Released 11 August 2011
  • Added ability to scale the x-axis on the Curve plot, so you can reduce the angle range (user request)
  • Added ability to not reset the axis scales, so you can keep them fixed for the session
  • Fixed bug that messed up fluid substitution labelling on reset

Version 0.8

  • Released 27 June 2011
  • Save cases to an in-device database; case includes all the input parameters, including the current fluid substitution scenario
  • To accommodate this, some buttons have been moved into 'pop up' panel of buttons
  • Delete single cases from the database, or clear all cases
  • Long press on Store to save to database with date/time instead of name (leaving the name field blank does the same thing)
  • You can now optionally enter parameters in km/s and g/cm3; numbers less than 10 are interpreted this way
  • Critical angle now reported in email
  • Fixed bug that caused email to crash the app sometimes
  • Fixed bug with colours for cross-plot label

Version 0.6

  • Released 20 June 2011
  • Choose a lithology for the lower layer
  • Choose a fluid substitution scenario to see the models with replacement fluids
  • Removed the 'shake to reset' feature and added a Reset button instead
  • Added the fluid substitution details to the email
  • Improved chart labeling

Version 0.4

  • Released 6 June 2011
  • Display a chart showing magnitude vs incidence angle for your parameters
  • Display an intercept vs gradient crossplot
  • Displays elastic moduli for both layers
  • Email your inputs and results, to save you remembering your inputs
  • Link to help: there's a link to the app's page in AgileWiki for detailed help
  • Improved chart labeling


Basic workflow

  • Enter VP and ρ, perhaps most often for a shale in the Upper layer and a water-wet sandstone in the Lower layer
  • Leave VS blank for one or both layers, unless you know it
  • Leave Axis max blank, unless you know what you want to use
  • Look at the Curve and Crossplot, to see what the expected AVO response is like

Simple fluid substitution

  • Do the basic workflow, above
  • Select a lithology for the Lower layer from the Rock type picker: this sets the mineral bulk modulus, and the porosity, both of which are required for fluid substitution
  • Nothing happens after you do this, unless you've already selected a fluid substitution scenario, in which case the app redraws the current plot
  • Next select a fluid scenario, which simply involves selecting the fluid before and the fluid after the substitution. For example, if you gave the rock properties for a water-wet sandstone, and you want to see what happens to the AVO response if you switch the fluid to gas, then simply select Brine > Gas
  • If you were already displaying a plot, the plot redraws with the selected fluid scenario; if not, select one now
  • The base-case and the new, fluid-substituted, response are shown; see the footnote for which is which
  • The only way to see the rock and fluid parameters (the bulk moduli and densities of the fluids, for example) is to hit Email, which puts all the data into an email; a future release will allow you to change and save scenarios


The app uses three basic equations:

You provide the following parameters for two layers, Upper and Lower:

P-wave or compression-wave velocity, in m/s.
Optional. S-wave or shear-wave velocity, in m/s. If you leave this field blank, the app assumes that the VP:VS ratio is 2.0.
Bulk density in kg/m3.

There are some options for doing fluid substitution. This involves giving some information about the rock you entered for the Lower layer. You can only substitute fluid into the Lower layer.

Rock type
Optional. To do fluid substitution, the app requires the rock type for the Lower layer, because the effect of changing the fluid depends on the porosity and elastic properties of the rock. You can choose the closest approximation to your rock from a list. Future versions will allow you to edit this list and create custom types. If you leave this field blank and choose to do fluid substitution, the app assumes a clean sand with 20% porosity.
Fluid sub
Optional. To do fluid substitution, the app also requires the fluid 'scenario'. You choose the initial and substitute fluids from the list. Future versions will allow you to edit this list and create custom scenarios. If you leave this field blank and choose to do fluid substitution, the app assumes you gave a water-wet case and want to see a gas-saturated case.

There is one optional display parameter.

Plot max
The maximum value for R(0) in the Curve view, and the max for R(0) and G in the Crossplot view. The default is 1.0. Useful values are generally between 0.1 and 0.5, depending on the rocks you entered.


Example crossplot, annotated with AVO classes

We are looking for ways to build more interpretive help into the app. We are very open to suggestions; please get in touch.

We have not yet found a nice way to add the annotation shown here to the cross-plot screen.


AVO cheatsheet 1200px.png


This is an example from Castagna et al (1998[1]), from their Figure 8. AVO fluid sub example1.png

Bugs and deficiencies

  • The app has not been tested on many devices, only a Samsung Nexus S and Samsung Captivate; it probably looks awful on a tablet (please let us know!)
  • The background image ('graph paper') squashes when the keyboard pops up
  • There is no sanity check on numbers
  • Some phones make a buzzing sound (vibe?) when calling the charts

For future release

  • Allow freeform parameters for fluid sub, and ability to save these
  • Allow partial saturation scenarios, pressure scenarios, etc
  • Use biy.ly or goo.gl to shorten the links in the email
  • Add an LMR plot
  • Annotate the crossplot (and curve plot?) with region names
  • Allow the user to store an optional default send-to email address
  • Interact with the plots
  • Add a synthetic gather display
  • Refactor code

See also

Agile* links

External links

  • AVO* — Android Market page for the app
  • App Inventor — Google's page about App Inventor


  1. Reference: Castagna, J., Swan, H., and Foster, D. [1998] Framework for AVO gradient and intercept interpretation. Geophysics, 63, 948–956. DOI 10.1190/1.1444406.