Analysis and results visualisation

Deep diving into the EVEREST optimization results is important and necessary in order to quality check, analyze and understand the results. One must consider whether the optimized strategy makes sense (given your current field knowledge) or not. Examine the output files from the EVEREST optimization to study details from the optimization process. Use visualization tools such as Resinsight and Everviz (described in the section below) to plot and examine simulation and optimization results. If necessary, fix errors, refine and improve the setup and consider the use of constraints to make the setup more robust. The vizualization is just one step of this iterative process of validating results, which is rather case (field) dependent.

  1. Everviz visualization.

  2. Special considerations.

  3. Export and external visualization options.

Visualization using Everviz

In order to visualize optimization results, data is needed from an ongoing experiment or a finished one. The command that start the visualization plug-in should be run after an optimization experiment.

Open a unix command window and type the following line

cd everest/model
everest results <config_file.yml>

The above command will start Everviz for the case name specified in the loaded configuration file, config_file.

Warning

If no visualization plugin is installed the message: No visualization plugin installed! will be displayed in the console.

If necessary, the plug-in can be manually installed using pip

pip install everviz

After a successful launch, Everviz will open as a web application in your default Internet browser.

home page

The home menu. Each item on the home menu is described in details in the following sections.

Objectives

The first set of plots focuses on the objective function, and its evolution across the batches is plotted as presented in the figure below.

obj1

Note

Scrolling over the plots with the cursor displays the exact values of the function.

The menu on the left hand side of the plot allows to select which objective functions to display. The drop down list allows to select from all available objective functions, along with the display options. The user is encouraged to go through the various display setting in order to achieve a personalized plot.

menu plot 1

The objective of the optimization experiment can also be visualized as a weighted average in the case of a multi objective experiment, or as the average of the individual realizations in the case of a single objective experiment with its evolution across the batches.

obj 2

Single objective (NPV) experiment with the objective plotted as the average of different realizations

obj 3

Multi objective experiment (NPV and FWPT) where objective function is plotted as a weighted average (50-50) of the two objectives.

The top right corner menu of the plot allows to zoom in/out into the plot, zoom into selection, hover over data points and compare data. On the far right of the menu there are options for screenshot the plot (which will export it as an jpg image), expand to full page view, and download the plot data as a csv file.

corner obj 2

Summary Values

Eclipse summary keys can be plotted in two ways, as a function of time (while choosing which batches to plot) and as a function of batch (choosing for which report steps to plot). Both plots allow for display of statistics and filter of realizations. As explained in the section above, all Everviz plots can export data and capture snapshot of the plot.

Important

As a general rule, the selection of the data to be plotted is available on the left hand side drop-down menu.

Keywords from different batches can be plotted together on the same plot, so it is completely up to the user how/what data is being displayed.
smr1

In this example, we chose to plot FOPT and WOPT for producer OP_5 for batches 0, 2 and 12. Furthermore, all realizations are included in the plot.

smr2

The dates available to plot the summary values as a function of batches are the dates defined as report steps in the EVEREST configuration file.

model:
        report_steps: ['2000-01-01', '2001-01-01', '2002-01-01', '2003-01-01', '2004-01-01', '2005-01-01', '2006-01-01', '2007-01-01', '2008-01-01', '2009-01-01', '2010-01-01', '2011-01-01', '2012-01-01', '2013-01-01', '2014-01-01', '2015-01-01']

Well rates

Similar to the previous section, well rates can be visualized as a function of time, across multiple batches. The user can toggle through the production and injection rates using the left hand side drop down menu. Batches are selected in the same manner.

If the optimization experiment has a prescribed rate, this can be added to the plot.
rates1

Cross plots

This plot will load all the data from EVEREST export and all columns can be visualized in a crossplot. All available keywords can be chosen from the drop down menus, along with the choice of axis (linear or logarithmic).

cross1

Controls

The evolution of the control varialbles over batches can be visualised through the Controls plot tab. Multiple controls can be added to the same plot.

ctrl1

The plot below offers on overview of all initial control variables defined for the experiment against their optimized values.

Note

Scrolling over the plots with the cursor displays the exact values of the function.

ctrl2

Objectives Delta Values

The plots of this section display the difference between initial and optimal as bar charts. The first plot focuses on the objective functions and the second one on the summary keys. Similarly to previous plots, multiple keywords/objectives can be plotted together in the same plot. The choice of variables to plot is done through the drop down menus on the left hand side of the plots.

delta1

Note

Scrolling over the plots with the cursor displays the exact values of the function.

delta2

Config editor

Everviz configuration is customizable through the editor tab.

Note

The Everviz configuation is written in yaml syntax, and based on the underlying Webviz. For more detailed information and examples regarding the configuration please refer to the detailed Webviz documentation.

To edit the configuration:

To start editing the current configuration press the EDIT button at the bottom of the page.
This will render the entire text editable.
Once changes are made, press the SAVE button, this will reload the entire Webviz page in order to reflect these changes.

Through this editor the user can change the appearance of the entire Everviz application: title, pages included, content of these pages, removing and adding plots etc.

Presented below is an example of the standard Everviz configuration file.

title: EVEREST Optimization Report
pages:
- title: EVEREST
  content: []
- title: Objectives
  content:
  - '## Objective function values'
  - ObjectivesPlot:
      csv_file: (path to experiment output)/everviz/objective_values.csv
  - '## Objective'
  - SingleObjectivesPlot:
      csv_file: (path to experiment output)/everviz/total_objective_values.csv
- title: Summary Values
  content:
  - '## Summary values as a function of date'
  - SummaryPlot:
      csv_file: (path to experiment output)/everviz/summary_values.csv
      xaxis: date
  - '## Summary values as a function of batch'
  - SummaryPlot:
      csv_file: (path to experiment output)/everviz/summary_values.csv
      xaxis: batch
- title: Well rates
  content:
  - '## Well rate values as a function of date'
  - WellsPlot:
      csv_file: (path to experiment output)/everviz/summary_values.csv
- title: Cross plots
  content:
  - This plot will load all the data from everest export and all columns can be visualized
    in a crossplot
  - Crossplot:
      data_path: path to experiment output)/config_file_name.csv
  - This plot will load the indexed control values and they can be visualized in a
    crossplot
  - CrossplotIndexed:
      data_path: (path to experiment output)/config_file_name.csv
- title: Controls
  content:
  - '## Control value per batch'
  - ControlsPlot:
      csv_file: (path to experiment output)/everviz/controls_per_batch.csv
  - '## Initial controls versus best controls'
  - TablePlotter:
      lock: true
      csv_file: (path to experiment output)/everviz/controls_initial_vs_best.csv
      plot_options:
        x: control
        y: value
        type: scatter
        color: batch
- title: Objectives Delta Values
  content:
  - '## Objective functions: Difference between best and initial batch'
  - DeltaPlot:
      csv_file: (path to experiment output)/everviz/objective_delta_values.csv
      pre_select: all
  - '## Summary keys: Difference between best and initial batch'
  - DeltaPlot:
      csv_file: (path to experiment output)/everviz/summary_delta_values.csv
      pre_select: none
- title: Config editor
  content:
  - ConfigEditor:
      data_path: (path to experiment output)/everviz/everviz_webviz_config.yml

Shutdown Everviz

In order to close the current Everviz application return to the origin terminal and press: Ctrl + C.

The message is also being displayed in bold green in the terminal window.

Special considerations

Sometimes Eclipse simulations fail during the optimization process, both when you are using one single and multiple realizations.

Warning

If you have multiple realizations, EVEREST will compensate for this by assigning an average value for the objective function for this specific realization (averaged over the successful realizations).

Note

Since this is the default implemented behaviour, EVEREST will not give any warning about this, so it is advised to study plots in Everviz, similar to the ones below, in order to spot and examine the impact of this, since it might have some consequences for the reported optimised results.

In the example provided in the plots below, realization #478 fails in batch_0 and is therefore given an average value of the objective function. Due to this we get a relatively high objective function value (see lower most plot), which is reported as accepted and the best batch in the run. Similar, in batch_6 realization #471 fails, and the result this time is a drop in the total averaged objective function. Those batches (#0 and #6) have objective function values that are “artificially” different from the rest due to this handling of failed realizations. However the impact of this will be dependent on how many realizations you have included in your optimization, how many realizations failed, and finally, whether the realizations that fail are likely to be far from the mean objective function or not.

It is strongly advised to keep an eye on this behaviour, since in this case a sub-optimal objective function value is reported as the best and it is likely that subsequent batches represent improved strategies, even though they are reported as rejected (in this case all realizations finish successfully in the following batches, and EVEREST will not report any improvement after batch_0).

The plots below illustrate how this issue could can be spotted through visualization of the results. It is important to stress that the impact of failed realizations on the optimization results is strongly case dependent.

failed 1

failed 2

EVEREST export and external visualization tools

Data from any finished experiment can be exported to a csv format file by running the export command:

Open a unix command window and type the following line (don’t include the “$”)

$ cd everest/model
$ everest export <config_file.yml>

The above command will create the export file at everest/output/case_name/config_file.csv.

Important

For more detailed information and examples regarding this functionality please refer to the detailed documentation.

Once exported, the optimization results can be imported into other visualization tools supporting csv imports.

For more curve plotting, but also 3D visualization, Eclipse simulation data can be imported into ResInsight.

resinsight