Tools for making and managing well data.

data-management, data-mining, geology, geophysics, petroleum, petrophysics, python
pip install welly==0.5.2


Welly banner

Run tests Build docs PyPI version PyPI versions PyPI license

welly facilitates the loading, processing, and analysis of subsurface wells and well data, such as striplogs, formation tops, well log curves, and synthetic seismograms.


pip install welly

For developers, there are pip options for installing test, docs or dev (docs plus test) dependencies.

Quick start

from welly import Well, Project

w = Well.from_las('my_wells/my_well.las')  # Load a single well.
p = Project.from_las('my_wells/*.las')     # Load lots of wells.

gr =['GR']  # One log...
gr.plot()          # ...with some superpowers!

Next, check out the tutorial notebooks.


The welly documentation is a work in progress.

Questions or suggestions?


If you'd like to chat about welly with us or other users, look for the #welly-and-lasio channel in the Software Underground's Slack.

To report bugs or suggest new features/improvements to the code, please open an issue.


Please see


The lasio project provides a very nice way to read and write CWLS Log ASCII Standard files. The result is an object that contains all the LAS data — it's more or less analogous to the LAS file.

Sometimes we want a higher-level object, for example to contain methods that have nothing to do with LAS files. We may want to handle other well data, such as deviation surveys, tops (aka picks), engineering data, striplogs, synthetics, and so on. This is where welly comes in.

welly uses lasio for data I/O, but hides much of it from the user. We recommend you look at both projects before deciding if you need the 'well-level' functionality that welly provides.