Skip to main content

Read/write well data from Log ASCII Standard (LAS) files

Project description

PyPI Version PyPI Downloads Build Status Coverage Status GitHub Issues GitHub PRs Python Version PyPI Format MIT License

This is a Python package to read and write Log ASCII Standard (LAS) files, used for borehole/well data (e.g. geophysical/geological/petrophysical logs). It is compatible with versions 1.2 and 2.0 of the LAS file specification, published by the Canadian Well Logging Society. In principle it is designed to read as many types of LAS files as possible, including ones containing common errors or non-compliant formatting.

It is written entirely in Python and works on any platform. It depends on the following packages available on PyPI:


To install from PyPI use:

$ pip install lasio

If necessary this will download and install the package dependencies listed above.

Alternatively if you would like the latest version (which may contain bugs and errors) make sure you have setuptools and git installed and then use:

$ git clone
$ cd lasio
$ python develop

How to use

Look at the example IPython notebooks here. More detailed examples are coming.

Opening LAS files

To open a LAS file from disk:

>>> import lasio
>>> l ="example.las")

To open a LAS file from a URL:

>>> l ="")

Getting data

The curve data are available as items:

>>> l["ILD"]
[145, 262, 272, ...]

Or you can iterate through the curves:

>>> for c in l.curves:
...     print c.mnemonic, c.unit,
DEPT m [0, 0.05, 0.10, ...]
ILD mS/m [145, 262, 272, ...]

Character encodings

Three options:

  1. Do nothing and hope for no errors.
  2. Specify the encoding (internally lasio uses the open function from codecs which is part of the standard library):
>>> l ="example.las", encoding="windows-1252")
  1. Install a third-party package like cChardet (faster) or chardet (slower) to automatically detect the character encoding. If these packages are installed this code will use whichever is faster:
>>> l ="example.las", autodetect_encoding=True)

Note that by default autodetect_encoding=False.


  • 0.7 (2015-08-08) - all tests passing on Python 2.6 through 3.4
  • 0.6 (2015-08-05) - bugfixes and renamed from las_reader to lasio
  • 0.5 (2015-08-01) - Improvements to writing LAS files
  • 0.4 (2015-07-26) - Improved handling of character encodings, other internal improvements
  • 0.3 (2015-07-23) - Added Python 3 support, now reads LAS 1.2 and 2.0
  • 0.2 (2015-07-08) - Tidied code and published on PyPI


Contributions are very welcome. Please fork the project on GitHub and submit a pull request (PR) containing any changes you have made.

Suggested improvements, bug reports, shortcomings, desirable features, examples of LAS files which do not load as you expected, are all also welcome either via GitHub or email.

Thanks to the following people in chronological order for their help:

  • @VelizarVESSELINOV
  • @diverdude


The code is freely available for any kind of use or modification under the MIT License.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for lasio, version 0.7.2
Filename, size File type Python version Upload date Hashes
Filename, size lasio-0.7.2-py2.py3-none-any.whl (19.4 kB) File type Wheel Python version py2.py3 Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page