Skip to content

Notebooks on production optimisation and history matching

License

Notifications You must be signed in to change notification settings

patnr/HistoryMatching

Repository files navigation

History matching tutorial

Screenshots

Run in the cloud (no installation required)

  • on Colab (requires Google login): Open In Colab
  • on a NORCE server (not generally available): JupyterHub

OR: install

Use this option for development, or if you simply want faster computations (your typical laptop is 10x faster than Google's free offering).

Prerequisite: Python>=3.10

If you're an expert, setup a python environment however you like. Otherwise: Install Anaconda, then open the Anaconda terminal and run the following commands:

conda create --yes --name my-env python=3.10
conda activate my-env
python --version

Ensure the printed version is 3.10 or higher.
Keep using the same terminal for the commands below.

Install

  • git clone this repository (see the green button up top).
    You could instead download & unzip, but then you will have to manually download any later updates.
  • Move the resulting folder wherever you like
  • cd into the folder
  • Install requirements:
    pip install -r [path/to/]requirements-dev.txt

Launch

  • Launch the "notebook server" by executing:
    jupyter notebook
    This will open up a page in your web browser that is a file navigator.
  • Click on HistoryMatch.ipynb.

Developer guide

I prefer to develop mostly in the format of standard python script, which is why each notebook corresponds to a .py file synced via jupytext. The synchronization is done whenever the notebook is saved. Also, if you run pre-commit install, then the notebooks will get synced with the .py files before committing.

Linting (which is, as of now, just a suggestion) can be run with ruff check --output-format=grouped.

Contributors

This work has been developed by Patrick N. Raanes, researcher at NORCE. The project has been funded by DIGIRES, a project sponsored by industry partners and the PETROMAKS2 programme of the Research Council of Norway.