drilling-sequence-optimizer / README.md

Drilling Sequence Optimizer

PDO Drilling Sequence Optimizer

Last updated: 4/16/2026GitHub

Drilling Sequence Optimizer

Intro:

This is a tool that allows users to create an optimal and feasible drilling sequence (the order in which a rig drills wells). The optimal ascpect is achieved by providing statistical analysis to compare different scenarios, as well as an auto optimizer that places wells the best possible places. The feasible aspect is achieved by allowing users to manually drag and drop wells, as well as adding constraints on how/when a well can be drilled.

Requirements:

  • Docker access to harbor, you should be able to see dso as a project. If you don't let someone know to add grant you access. Get your credentials from the top right and login using: docker login harbor.rihal.tech
  • create a ~/.netrc file with the following contents: machine github.com login <github username> password <github token>
    • where <github token> can be generated as explained here
    • Give the token access to everything and no expiration date.
  • create a ~/.npmrc file all details are explained here
  • ensure you have docker installed and working
  • ensure you have npm version 7+ and node version 15+. Can check versions with npm version
  • OPA web assembly module should be generated with the following steps:
    • cd into the policy directory
    • run ./build_wasm.sh to build the wasm file. After this step you should have the following file /web/policy/policy.wasm

Development:

in the root directory run the following:

  • run docker-compose up -d
  • run docker exec dso-dev-server go run main.go populate
  • run docker-compose logs -f keycloak, when you see admin console listening on ... then go to the next step.
  • run docker-compose restart server

All services should be working now:

  • web can access on: localhost:3000
    • login with manager.pdo@rihal.om or coordinator.pdo@rihal.om both with password pdo

Resources:

Definitions (as used in DSO):

  • Operation: Any activity that a rig must go through. This includes Well and Non-Drilling operations
    • Well: An operation that produces oil and/or gas.
    • Non-Drilling: operations that don't produce any oil/gas. These were identified as:
      • Rig Move
      • Rig Maintenance
      • Rig Commissioning
        • Learning Curve
        • White Space
        • Rig Stacking
  • Rig: group of equipment used to drill a well. This is large and expensive, therefore it occassionally it goes through some non-drilling operations from time to time as indicated above
  • Scenario: is a schedule, made up of Sequences.
  • Sequence: A Rig followed by the operations scheduled for that rig.