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
dsoas 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
~/.netrcfile 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.
- where
- create a
~/.npmrcfile all details are explained here - ensure you have docker installed and working
- ensure you have
npmversion 7+ andnodeversion 15+. Can check versions withnpm version - OPA web assembly module should be generated with the following steps:
cdinto the policy directory- run
./build_wasm.shto 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 seeadmin 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.omorcoordinator.pdo@rihal.omboth with passwordpdo
- login with
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.