Direct-Current and Induced Polarization (DC-IP) 3D Inversion

cbd55bbaf8554df3ac5945d11b63bd69

This application provides an interface to the open-source SimPEG package for the inversion of direct-current (DC) and induced polarization (IP) data.

  • Direct-current potential data (V) inversion for the recovery of conductivity (S/m).

  • Secondary potentials data (V) for the recovery of chargeability (mV/V).

All inversion are performed on a 3D octree mesh.

New user? Visit the Getting Started page.

Application

The following sections provide details on the different parameters controlling the application. Interactive widgets shown below are for demonstration purposes only.

[1]:
from geoapps.inversion.electricals.application import InversionApp

app = InversionApp(geoh5=r"../../../assets/FlinFlon_dcip.geoh5")
app()

Project Selection

Select and connect to an existing geoh5 project file containing data

OR

Select a *.ui.json input file to re-load parameters from. See the Input ui.json section for details.

[2]:
app.project_panel

See the Project Panel page for more details.

Survey Selection

Object

List of PotentialElectrode surveys available in the target geoh5 that contains data to be inverted.

[3]:
app.objects

Inversion Type

List of available inversion types.

  • direct current: Invert potential (volt) data data for the recovery of conductivity (S/m).

[4]:
app.survey_type_panel

Data Channel Options

Define the geophysical data to be inverted.

[5]:
app.data_channel_choices

Channel Options

Set parameters to invividual channels.

[6]:
app.data_channel_choices.data_channel_options['potential']

Active

Checked if the channel is to be used in the inversion

Channel:

Association between the “data channel” and one of the expected “system channel”.

Uncertainty floor

Estimated data uncertainty floor (constant) value associated with the data channel.

Uncertainty channel

Optionaly, use a data channel to assign point-based uncertainties. Uncertainty floor value is ignored if a channel of uncertainties is selected.

Window Selection

Manual selection of an area of interest and data resolution.

[7]:
app.window_selection

See the Map View Selection page for more details.

Spatial information

Topography

Set the air/ground interface of the inversion model.

[8]:
app.topography_group()

Object

Set the topography based on an object stored in the target geoh5 project. The Z value of the cells/vertices can be assigned based on a chosen Data field.

Relative to Sensor

Topography is defined by a fixed vertical offset from a selected object position (vertices or centroids), also referred to as a “draped height”.

Constant

Topography is defined as a flat surface with constant elevation.

Sensor Location

Defines the sensors position in 3D space.

[9]:
app.sensor()

Set Z from topo + offset

Recommended option for most surface surveys to enforce contact of the electrodes with the active ground cells. Only consider unselecting for borehole measurements.

Constant offsets (dx, dy, dz)

Sensor position shifted by a constant offset from the vertices of the selected object.

  • dx: East(+) or West(-) offset.

  • dy: North(+) or South(-) offset

  • dz: Up(+) or Down(-) offset

Inversion Options

List of parameters controlling the inversion.

[10]:
app.option_choices

Starting Model

Initial model used to begin the inversion.

[11]:
app._starting_model_group()

Model

Model object and values selected from any Points, Curve, Surface, BlockModel or Octree object. Values are interpolated onto the inversion mesh using a nearest neighbor approach.

Constant

Constant background half-space value.

Mesh

Select an existing Octree mesh object from the target geoh5.

[12]:
app._mesh_octree.objects

Regularization Panel

Parameters controlling the regularization function.

[13]:
app.inversion_options['regularization']

Reference model

Reference model values used to constrain the inversion.

[14]:
app._reference_model_group()

None

No reference model used. This is equivalent as setting the Alphas s parameter to zero.

Model

Reference model selected from any Points, Curve, Surface, BlockModel or Octree object. Values are interpolated onto the inversion mesh using a nearest neighbor approach.

Constant

Constant reference half-space value.

Scaling (alpha) parameters

[15]:
app._alphas

Scaling between the components of the regularization function.

See the SimPEG.API for technical details.

\(l_p\)-norms

Approximated norms applied to the components of the regularization.

[16]:
app._norms

See notes on Sparse and Blocky Norms for technical details.

Upper-Lower Bounds

Upper and lower bound constraints applied on physical property model.

[17]:
app.bound_panel

Bounds can be defined as either: - Model: Values defined on a cell-by-cell basis. The values are projected onto the inversion mesh using a nearest neighour interpolation. - Constant: Constant value defining the bounds. - None: The inversion uses [\(-\infty\), \(\infty\)] as physical property bounds.

Ignore Values

[18]:
app.ignore_values

Flag value ignored by the inversion by assigning \(\infty\) uncertainties on the data points.

Optimization

Parameters controlling various aspects of the projected Gauss-Newton inversion algorithm.

[19]:
app.optimization

Max beta Iterations

Maximum number of \(\beta\)-iterations allowed. Note that when applying sparse norms, the inversion may require \(>20\) iterations to converge.

Target misfit

Target data misfit where \(\chi=1\) corresponds to \(\phi_d=N\) (number of data). (See documentation on Data Misfit and Uncertainties for mathematical details)

Starting trade-off (\(\beta\))

ratio: Factor multiplying the initial \(\beta\) defined by the ratio between the initial misfit and regularization:

\begin{equation} \beta_0 = \gamma * \frac{\phi_d}{ \phi_m} \end{equation}

value: Fixed \(\beta\) value specified by the user.

Max CG Iterations

Maximum number of Conjugate Gradient (CG) iterations per Gauss-Newton solve.

CG Tolerance

Threshold on the minimum Conjugate Gradient (CG) step to end the Gauss-Newton solve.

Max CPUs

Maximum number of threads used for the parallelization. Defaults to half the system thread count.

Storage device

Option to store the sensitivities in memory (RAM) or in chunks on a solid-state drive (disk). The RAM execution will be faster but limits the problem size to the available memory. The disk option will be slower as it depends on the read-write speed of the SSD, but the memory requirement is reduced (2-3 times the chunk size times the number of threads). This option permits much larger inversions than the amount RAM available on a machine.

Number of tiles

Number of data tiles used by the mesh decoupling algorithm. Nested sensitivities for each data blocks are interpolated to the global inversion mesh with a volumetric weighted averaging scheme.

Output panel

Setup the inversion and launch the process.

Output Name

[20]:
app.ga_group_name

Name given to the inversion group added to the Geoscience ANALYST project.

Working directory

[21]:
app.export_directory

Specify the working directory where the inversion occurs.

It is highly recommended to chose a location on a solid-state drive (SSD) to fully take advantage of the ``Dask`` parallelization.

Write input

[22]:
app.write

Click to write the input parameters to a *.json file and a workspace (.geoh5) with all required entities.

Run Inversion:

[23]:
app.trigger

Launch the inversion routine. Results will be written directly to the target geoh5 project.

Input ui.json

This application relies on a structured json file to store the parameters and run the program. The ui.json can be used to re-load the parameters from a previous run by selecting the ui.json file from the Project Selection widget, instead of a geoh5 file.

Command line execution

The same input ui.json file can be used to run the program from command line:

activate geoapps

python -m geoapps.inversion.driver [Name].ui.json

This assumes that the geoapps have been installed and that the reference *.ui.json and *.geoh5 project are accessible in the current directory.

Geoscience ANALYST Pro v3.4

Geoscience ANALYST Pro users (v3.4) can execute this application directly from an active session with a drag & drop of a *.ui.json file to the Viewport.

../../_images/GA_pro_grav_mag_inversion.gif