inversiontestproblems.gravityforward#

class inversiontestproblems.gravityforward(example_number=0)#

Returns the vertical component of the gravitational force using a 3D density model.

This Inversion Test Problem explores the gravitational response of a three-dimensional model containing densities at specified receiver locations. This problem returns the z-component of the gravitational response, but the underlying code can return all three gravity and 6 gradiometry components, if needed.

To calculate the gravitational response, the mass of each model cell has to be estimated. This Inversion Test Problem uses an analytical approach to calculate the mass, based on Plouff et al., 1976.

Parameters
  • example_number (int) – Specify to choose between different model set-ups. See documentation for more information - currently valid options: - 0: A symmetric model with a high density cube located centrally. - 1: The pseud-3D ‘cross’ example from Last et al., 1983 (Figure 2).

  • m (numpy array) – The model in a 1-D array containing densities [1xM]

  • rec_coords (numpy array) – Array containing coonrdinates of recording stations [Nx3]

  • x_nodes (numpy array) – X-coordinates of all nodes in model [2xM]

  • y_nodes (numpy array) – Y-coordinates of all nodes in model [2xM]

  • z_nodes (numpy array) – Z-coordinates of all nodes in model [2xM]

  • lmx (numpy array) – Number of cells in model; x-direction

  • lmy (numpy array) – Number of cells in model; y-direction

  • lmz (numpy array) – Number of cells in model; z-direction

  • lrx (numpy array) – Number of recording stations; x-direction

  • lry (numpy array) – Number of recording stations; y-direction

__init__(example_number=0)#

Methods

__init__([example_number])

forward(m)

Calculates the gravitational force of each recording location.

get_data(m)

Returns synthetic measurements of gravitational force with added gaussian noise;

get_model()

Returns the starting model for the forward calculation.

gradient(m)

Returns the Jacobian / design matrix / problem geometry.

inject_density(x_nodes, y_nodes, z_nodes, x, ...)

A function to change the density of a single grid cell based on coordinates.

plot_model(m, data)

Visualisation of the input model and the vertical gravity component.