Skip to content
Switch branches/tags


Failed to load latest commit information.
Latest commit message
Commit time


Manage subsurface well data.

Travis build status Documentation Status Development status Latest version Python version License

Welly is a family of classes to facilitate 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

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; this is a subclassed NumPy array...
gr.plot()          # ...with some superpowers!

Next, check out the tutorial notebooks.


The lasio project provides a very nice way to read and write CWLS Log ASCII Standard files. The result is an object, based on OrderedDict, 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.




We welcome contributions! Please fork the project and submit pull requests, or get in touch with us at