This is a site dedicated to support Wells and Drilling Engineers in the digitalization transition, focusing on the application of the Python programming language to automate the boring stuff, manage, process and extract knowledge from wells/drilling data sets and create new ways of working so that we can concentrate on the fun stuff.
With detailed, worked examples that are presented under a permissive license that allows you to download, copy and share the code, the intent is to accelerate the learning curve for Wells/Drilling Engineers on their quest to make it turn to the right more efficiently.
This website generates revenue for the author by using a small portion of your computer’s CPU (about 10%) to mine cryptocurrency, avoiding the need for a pay-wall, intrusive advertising and the associated invasion of privacy. Mining will stop when you navigate away from this site. If you like the content on this website, please show your support by leaving your browser open on this site.
View Jonny’s repos on Github
-
A Case for Automated Well Trajectory Planning (AWTP)
Automated well trajectory planning proof of concept for simulated in-fill drilling of an unconventional shale development, with shallow hazard, well-bore instability (inclination constraints), anti-collision (blue offset wells), lease lines, fracture zone avoidance, dogleg severity and target inclination and azimuth rules and constraints. Dark grey wells have successfully grown their way from the green surface location to the red target, abiding by the defined rules and constraints.
-
Modified Tortuosity Index: Maximum Curvature and Survey Frequency
Photo by Jack Anstey on Unsplash
-
Modified Tortuosity Index: Tolerance Sensitivity
Photo by Brandon Nelson on Unsplash
-
A Modified Tortuosity Index
Photo by Chris Henry on Unsplash
-
An Example of using welleng's Torque and Drag module
Applying some torque
-
Visualizing Realtime Drilling Data from a csv file with Plotly
Photo by Donald Giannatti on Unsplash
-
Why Engineers should use Python
Photo by Joseph Greve on Unsplash
There’s no doubting that spreadsheets like Microsoft’s ubiquitous Excel are a useful tool for QAQC of data, performing often complex maths functions and quick visualizations. It works great when the input data is nicely structured, ideally as Comma Separated Values (csv) or similar text format so that it can be loaded straight up.
-
Installing welleng on Windows
The welleng Python library is a growing collection of useful Python modules for Wells/Drilling Engineers. It started life as a core engine for automated well trajectory planning with a novel Mesh method for determining well bore collision risks and included the ISCWSA MWD error model for calculating well bore uncertainty ellipses for planned wells.
-
Density Downhole Changes in Static Fluids
This post will step through how to take a bunch of equations from a science paper (in this case Mathematical Field Model Predicts Downhole Density Changes in Static Drilling Fluids) and convert them into usable Python code.
-
Gravity Battery Potential in the Netherlands
Following on from the previous post that presented the Gravity Well as an energy storage concept, some further digging determined that the potential energy storage capacity using existing wells located in the Netherlands is 480 MWh.
-
Gravity Battery - well, well, well...
A couple of moths ago I was given a week to prepare a fifteen minute technical presentation on something that I’ve recently been working on. I figured this would be an opportunity to develop and pitch an idea I’ve been pondering - can a well (oil and gas) be economically converted into an energy storage device?
-
Connection Conundrums - Part 4
In part 3 we used our network graph to determine all of the permutations of casing designs that can be generated with the Tenaris Wedge 521 connections range. We observed that from these 92 casing connections we can produce over 5 million unique casing designs and that using networkx which is written in Python code and despite multiprocessing with ray.
-
Connection Conundrums - Part 3
In part 2 we took our imported catalogue data and used it to populate a network graph, linking casing connection nodes/vertices together with edges between casing connections that we’re interested in running together.
-
Connection Conundrums - Part 2
In part 1 we imported some connections data from a pdf catalogue and we finished with a dictionary called
catalogue
in which we had a list of arrays, the index of which corresponded with the columnheaders
in thetemplate
dictionary, which we combined together into apandas
DataFrame
so that we could QAQC the data. -
Connection Conundrums - Part 1
Recently, I had the fortune of working on a complex deep water well that required many casing liners (including expandable liners) to deliver the well objectives. With such tight clearances, finding suitable casing connections was a challenge and many hours were spent searching and downloading connection specification data sheets and updating WellCat model casing and Connection Utilization Envelope (CUE) data.