In [1]:
import lasio
import os

l = lasio.read(os.path.join("..", "tests", "examples", "6038187_v1.2_short.las"))

The information in a LAS file's header is all parsed and available through the sections of the header.

So to start at the top and view the ~Version section:


In [2]:
l.version


Out[2]:
[HeaderItem(mnemonic=VERS, unit=, value=2.0, descr=CWLS LOG ASCII STANDARD - VERSION 2.0, original_mnemonic=VERS),
 HeaderItem(mnemonic=WRAP, unit=, value=NO, descr=ONE LINE PER DEPTH STEP, original_mnemonic=WRAP)]

each item here is a HeaderItem, which is a kind of attribute dictionary - very easy to use either through items or attributes:


In [3]:
l.version.VERS


Out[3]:
HeaderItem(mnemonic=VERS, unit=, value=2.0, descr=CWLS LOG ASCII STANDARD - VERSION 2.0, original_mnemonic=VERS)

In [4]:
l.version['VERS']


Out[4]:
HeaderItem(mnemonic=VERS, unit=, value=2.0, descr=CWLS LOG ASCII STANDARD - VERSION 2.0, original_mnemonic=VERS)

In [5]:
l.well


Out[5]:
[HeaderItem(mnemonic=STRT, unit=M, value=0.05, descr=FIRST INDEX VALUE, original_mnemonic=STRT),
 HeaderItem(mnemonic=STOP, unit=M, value=136.6, descr=LAST INDEX VALUE, original_mnemonic=STOP),
 HeaderItem(mnemonic=STEP, unit=M, value=0.05, descr=STEP, original_mnemonic=STEP),
 HeaderItem(mnemonic=NULL, unit=, value=-99999, descr=NULL VALUE, original_mnemonic=NULL),
 HeaderItem(mnemonic=COMP, unit=, value=, descr=COMP, original_mnemonic=COMP),
 HeaderItem(mnemonic=WELL, unit=, value=Scorpio E1, descr=WELL, original_mnemonic=WELL),
 HeaderItem(mnemonic=FLD, unit=, value=, descr=, original_mnemonic=FLD),
 HeaderItem(mnemonic=LOC, unit=, value=Mt Eba, descr=LOC, original_mnemonic=LOC),
 HeaderItem(mnemonic=SRVC, unit=, value=, descr=, original_mnemonic=SRVC),
 HeaderItem(mnemonic=CTRY, unit=, value=, descr=, original_mnemonic=CTRY),
 HeaderItem(mnemonic=STAT, unit=, value=SA, descr=STAT, original_mnemonic=STAT),
 HeaderItem(mnemonic=CNTY, unit=, value=, descr=, original_mnemonic=CNTY),
 HeaderItem(mnemonic=DATE, unit=, value=15/03/2015, descr=DATE, original_mnemonic=DATE),
 HeaderItem(mnemonic=UWI, unit=, value=6038-187, descr=WUNT, original_mnemonic=UWI)]

Let's say we'd like to add some information about the country this log was taken in.

We can do it easily by directly assigning the values:


In [6]:
l.well.CTRY = 'Australia'

In [7]:
l.well.CTRY


Out[7]:
HeaderItem(mnemonic=CTRY, unit=, value=Australia, descr=, original_mnemonic=CTRY)

Now let's have a look at the curves


In [8]:
l.curves


Out[8]:
[CurveItem(mnemonic=DEPT, unit=M, value=, descr=DEPTH, original_mnemonic=DEPT, data.shape=(121L,)),
 CurveItem(mnemonic=CALI, unit=MM, value=, descr=CALI, original_mnemonic=CALI, data.shape=(121L,)),
 CurveItem(mnemonic=DFAR, unit=G/CM3, value=, descr=DFAR, original_mnemonic=DFAR, data.shape=(121L,)),
 CurveItem(mnemonic=DNEAR, unit=G/CM3, value=, descr=DNEAR, original_mnemonic=DNEAR, data.shape=(121L,)),
 CurveItem(mnemonic=GAMN, unit=GAPI, value=, descr=GAMN, original_mnemonic=GAMN, data.shape=(121L,)),
 CurveItem(mnemonic=NEUT, unit=CPS, value=, descr=NEUT, original_mnemonic=NEUT, data.shape=(121L,)),
 CurveItem(mnemonic=PR, unit=OHM/M, value=, descr=PR, original_mnemonic=PR, data.shape=(121L,)),
 CurveItem(mnemonic=SP, unit=MV, value=, descr=SP, original_mnemonic=SP, data.shape=(121L,)),
 CurveItem(mnemonic=COND, unit=MS/M, value=, descr=COND, original_mnemonic=COND, data.shape=(121L,))]

Notice the units for PR are incorrect - to change that access the unit attribute directly:


In [9]:
l.curves.PR.unit = 'ohmm'

In [10]:
l.curves.PR


Out[10]:
CurveItem(mnemonic=PR, unit=ohmm, value=, descr=PR, original_mnemonic=PR, data.shape=(121L,))

And finally the Parameter section:


In [11]:
l.params


Out[11]:
[HeaderItem(mnemonic=BS, unit=, value=216 mm, descr=BS, original_mnemonic=BS),
 HeaderItem(mnemonic=JOBN, unit=, value=, descr=JOBN, original_mnemonic=JOBN),
 HeaderItem(mnemonic=WPMT, unit=, value=, descr=WPMT, original_mnemonic=WPMT),
 HeaderItem(mnemonic=AGL, unit=, value=, descr=AGL, original_mnemonic=AGL),
 HeaderItem(mnemonic=PURP, unit=, value=Cased hole stratigraphy, descr=PURP, original_mnemonic=PURP),
 HeaderItem(mnemonic=X, unit=, value=560160, descr=X, original_mnemonic=X),
 HeaderItem(mnemonic=CSGL, unit=, value=0 m - 135 m, descr=CSGL, original_mnemonic=CSGL),
 HeaderItem(mnemonic=UNIT, unit=, value=, descr=UNIT, original_mnemonic=UNIT),
 HeaderItem(mnemonic=Y, unit=, value=6686430, descr=Y, original_mnemonic=Y),
 HeaderItem(mnemonic=TDL, unit=, value=135.2 m, descr=TDL, original_mnemonic=TDL),
 HeaderItem(mnemonic=PROD, unit=, value=, descr=PROD, original_mnemonic=PROD),
 HeaderItem(mnemonic=MUD, unit=, value=Water, descr=MUD, original_mnemonic=MUD),
 HeaderItem(mnemonic=CSGS, unit=, value=100 mm, descr=CSGS, original_mnemonic=CSGS),
 HeaderItem(mnemonic=ENG, unit=, value=, descr=ENG, original_mnemonic=ENG),
 HeaderItem(mnemonic=STEP, unit=, value=5 cm, descr=STEP, original_mnemonic=STEP),
 HeaderItem(mnemonic=FluidLevel, unit=, value=54 m, descr=FluidLevel, original_mnemonic=FluidLevel),
 HeaderItem(mnemonic=CSGT, unit=, value=PVC, descr=CSGT, original_mnemonic=CSGT),
 HeaderItem(mnemonic=WIT, unit=, value=, descr=WIT, original_mnemonic=WIT),
 HeaderItem(mnemonic=EREF, unit=, value=, descr=EREF, original_mnemonic=EREF),
 HeaderItem(mnemonic=PROJ, unit=, value=, descr=PROJ, original_mnemonic=PROJ),
 HeaderItem(mnemonic=ZONE, unit=, value=53J, descr=ZONE, original_mnemonic=ZONE),
 HeaderItem(mnemonic=DREF, unit=, value=GL, descr=DREF, original_mnemonic=DREF),
 HeaderItem(mnemonic=TDD, unit=, value=136 m, descr=TDD, original_mnemonic=TDD)]

If you'd prefer to see a section as a dictionary you can with the dictview() method:


In [12]:
l.params.dictview()


Out[12]:
{'AGL': '',
 'BS': '216 mm',
 'CSGL': '0 m - 135 m',
 'CSGS': '100 mm',
 'CSGT': 'PVC',
 'DREF': 'GL',
 'ENG': '',
 'EREF': '',
 'FluidLevel': '54 m',
 'JOBN': '',
 'MUD': 'Water',
 'PROD': '',
 'PROJ': '',
 'PURP': 'Cased hole stratigraphy',
 'STEP': '5 cm',
 'TDD': '136 m',
 'TDL': '135.2 m',
 'UNIT': '',
 'WIT': '',
 'WPMT': '',
 'X': 560160,
 'Y': 6686430,
 'ZONE': '53J'}

In [ ]:


In [ ]:


In [ ]: