Version 2#

Investigator allows a user to connect a Python script or Jupyter Notebook to a running Investigator providing access to investigations and the ability to plot investigation data from Python.

Investigator was previously known as InvestigatorPy.

Version 2.0#

New features#

The previous release (InvestigatorPy) has found by users to be very restrictive and difficult to use. These issues are mainly due to the need for very specific setup, it only running on Windows and it requiring a specific Python version.

Flexible deployment#

Investigator provides support for more flexible deployment scenarios and removes the restriction on Python version.

Investigator is powered by Hub which allows data integration across different platforms. This allows the user to run Python either on a local machine, connected to a local Petrel or alternatively to access a Petrel instance from a remote Python environment running in the cloud or a corporate data centre. As such, the Python environment can now be running on a Linux machine.

Investigation access#

The equivalent InvestigatorPy functionality (from version 1.0) to query the investigation definition, access the data via a dataframe and inject prediction and classification equations directly from Python continue to be unlicensed when running in a local setup. This setup now supports data transfer without having to export/import via files.

Investigations from Dataframes#

Support has been added to create an investigation from a Python dataframe. This allows the Investigator functionality to be used for any data the user can access in Python. It is not necessary for the data to be loaded into Petrel or even for the data to be geo-science in nature. For example, an investigation could be created from a dataframe read from a CSV file in Python. Once the investigation has been created all Investigator functionality (including plots) are available. To enable the enriched geo-specific plots, it is necessary to include additional information with the dataframe to help Investigator correctly display the data. For example, to plot a map it is necessary to have either sample index columns (eg I/J) and/or spatial columns (eg X/Y) in the dataframe.


Plotting support is a new feature in Investigator allowing investigation data to be rendered and displayed in different plots from Python. Access to plotting features required a named user license in Keystone. Plots are rendered using the connected Blueback Investigator plugin in Petrel and displayed in Python. This has a number of advantages:

  • the data in the investigation is not transferred out of Petrel

  • the Petrel colorscale will be used for rendering ensuring consistency between plots shown in Python and that data displayed directly in Petrel

Depending on the data available in the investigation, the following plots may be created:

  • Histogram

  • Crossplot

  • Matrix

  • Parallel Coordinates Plot

  • Log tracks - This requires 1D datasets contains Z or TVD dimensions

  • Seismic line - This requires 2D or 3D datasets containing sample index columns

  • Map - This requires 2D or 3D datasets containing either sample index columns (I,J) or spatial columns (X,Y)

  • Model intersection - This requires a 3D dataset created from a grid model in Petrel.

The plots available for the investigation will depend on the data enrichment that is available in the investigation. Investigations created in Petrel will contain the necessary enrichment but this is not always possible for investigations created from dataframes.

Changed features#

Invpy files#

The ability to transfer data from Petrel using invpy files remains but is no longer essential. It is now possible to access investigation data in a running Petrel instance directly from Python. This behaves much like the Python Tool Pro product. From Python, a connection to the Blueback Investigator plugin running in Petrel is established. Python can then show a list of available investigations in the Petrel project and also access these investigations and transfer data to Python as required.

Removed features#

InvestigatorPy is now retired, and all users must convert existing Python code to use Investigator.

Removal of IronPython and Python.Net#

The ability to use IronPython and Python.Net directly from Blueback Investigator within Petrel has been removed. To use Python functionality from Petrel it is now necessary to use the Investigator functionality which is described above.