Building a LAS file from scratch

When you create a lasio.LASFile from scratch, it comes with some default metadata:

>>> import lasio
>>> las = lasio.LASFile()
>>> las.header
{'Version': [HeaderItem(mnemonic="VERS", unit="", value="2.0", descr="CWLS log ASCII Standa"),
 HeaderItem(mnemonic="WRAP", unit="", value="NO", descr="One line per depth ste"),
 HeaderItem(mnemonic="DLM", unit="", value="SPACE", descr="Column Data Section ")],
'Well': [HeaderItem(mnemonic="STRT", unit="m", value="nan", descr="START DEPTH"),
 HeaderItem(mnemonic="STOP", unit="m", value="nan", descr="STOP DEPTH"),
 HeaderItem(mnemonic="STEP", unit="m", value="nan", descr="STEP"),
 HeaderItem(mnemonic="NULL", unit="", value="-9999.25", descr="NULL VALUE"),
 HeaderItem(mnemonic="COMP", unit="", value="", descr="COMPANY"),
 HeaderItem(mnemonic="WELL", unit="", value="", descr="WELL"),
 HeaderItem(mnemonic="FLD", unit="", value="", descr="FIELD"),
 HeaderItem(mnemonic="LOC", unit="", value="", descr="LOCATION"),
 HeaderItem(mnemonic="PROV", unit="", value="", descr="PROVINCE"),
 HeaderItem(mnemonic="CNTY", unit="", value="", descr="COUNTY"),
 HeaderItem(mnemonic="STAT", unit="", value="", descr="STATE"),
 HeaderItem(mnemonic="CTRY", unit="", value="", descr="COUNTRY"),
 HeaderItem(mnemonic="SRVC", unit="", value="", descr="SERVICE COMPANY"),
 HeaderItem(mnemonic="DATE", unit="", value="", descr="DATE"),
 HeaderItem(mnemonic="UWI", unit="", value="", descr="UNIQUE WELL ID"),
 HeaderItem(mnemonic="API", unit="", value="", descr="API NUMBER")],
'Curves': [],
'Parameter': [],
'Other': ''}

In our case, let’s set the correct date:

>>> from datetime import datetime
>>> las.well.DATE = datetime.today().strftime('%Y-%m-%d %H:%M:%S')

And add some new header fields:

>>> las.params['ENG'] = lasio.HeaderItem('ENG', value='Kent Inverarity')
>>> las.params['LMF'] = lasio.HeaderItem('LMF', value='GL')
>>> las.other = 'Example of how to create a LAS file from scratch using lasio'

We will invent some data for a curve:

>>> import numpy as np
>>> depths = np.arange(10, 50, 0.5)
>>> synth = np.log10(depths)*5+np.random.random(len(depths))
>>> synth[:8] = np.nan

…add these to the LASFile object:

>>> las.append_curve('DEPT', depths, unit='m')
>>> las.append_curve('SYNTH', synth, descr='fake data')

And write the result to files:

>>> las.write('scratch_v1.2.las', version=1.2)
>>> las.write('scratch_v2.las', version=2)

Here is the resulting scratch_v1.2.las:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
~Version ---------------------------------------------------
VERS.   1.2 : CWLS LOG ASCII STANDARD - VERSION 1.2
WRAP.    NO : One line per depth step
DLM . SPACE : Column Data Section Delimiter
~Well ------------------------------------------------------
STRT.m       10.00000 : START DEPTH
STOP.m       49.50000 : STOP DEPTH
STEP.m        0.50000 : STEP
NULL.        -9999.25 : NULL VALUE
COMP.         COMPANY :
WELL.            WELL :
FLD .           FIELD :
LOC .        LOCATION :
PROV.        PROVINCE :
CNTY.          COUNTY :
STAT.           STATE :
CTRY.         COUNTRY :
SRVC. SERVICE COMPANY :
DATE.            DATE : 2023-01-26 14:58:21
UWI .  UNIQUE WELL ID :
API .      API NUMBER :
~Curve Information -----------------------------------------
DEPT .m  :
SYNTH.   : fake data
~Params ----------------------------------------------------
ENG. Kent Inverarity :
LMF.              GL :
~Other -----------------------------------------------------
Example of how to create a LAS file from scratch using lasio
~ASCII -----------------------------------------------------
   10.00000   -9999.25
   10.50000   -9999.25
   11.00000   -9999.25
   11.50000   -9999.25
   12.00000   -9999.25
   12.50000   -9999.25
   13.00000   -9999.25
   13.50000   -9999.25
   14.00000    6.32656
   14.50000    6.32279
   15.00000    6.24716
   15.50000    6.07168
   16.00000    6.40693
   16.50000    6.74994
   17.00000    6.16163
   17.50000    7.08836
   18.00000    6.31721
   18.50000    7.19034
   19.00000    6.72278
   19.50000    7.01719
   20.00000    7.49475
   20.50000    6.92995
   21.00000    7.44739
   21.50000    7.55360
   22.00000    6.94753
   22.50000    7.64236
   23.00000    7.74817
   23.50000    7.23852
   24.00000    7.88034
   24.50000    7.07664
   25.00000    7.19182
   25.50000    7.62403
   26.00000    7.80678
   26.50000    7.93082
   27.00000    8.08903
   27.50000    7.81581
   28.00000    8.08901
   28.50000    7.60532
   29.00000    7.86530
   29.50000    7.72080
   30.00000    7.74472
   30.50000    7.68292
   31.00000    8.00722
   31.50000    8.12406
   32.00000    7.60265
   32.50000    7.73699
   33.00000    7.72325
   33.50000    8.02248
   34.00000    8.04029
   34.50000    8.65056
   35.00000    8.30488
   35.50000    8.59884
   36.00000    7.83725
   36.50000    8.72173
   37.00000    7.95948
   37.50000    8.12969
   38.00000    8.75692
   38.50000    8.73753
   39.00000    8.22793
   39.50000    8.86533
   40.00000    8.56819
   40.50000    9.00213
   41.00000    8.51844
   41.50000    8.81121
   42.00000    8.51106
   42.50000    8.28359
   43.00000    8.65719
   43.50000    8.33235
   44.00000    8.52983
   44.50000    9.04601
   45.00000    8.53333
   45.50000    9.20433
   46.00000    8.60132
   46.50000    8.94629
   47.00000    8.60415
   47.50000    8.56460
   48.00000    9.35277
   48.50000    8.65887
   49.00000    9.33907
   49.50000    9.30430

and scratch_v2.las:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
~Version ---------------------------------------------------
VERS.   2.0 : CWLS log ASCII Standard -VERSION 2.0
WRAP.    NO : One line per depth step
DLM . SPACE : Column Data Section Delimiter
~Well ------------------------------------------------------
STRT.m           10.00000 : START DEPTH
STOP.m           49.50000 : STOP DEPTH
STEP.m            0.50000 : STEP
NULL.            -9999.25 : NULL VALUE
COMP.                     : COMPANY
WELL.                     : WELL
FLD .                     : FIELD
LOC .                     : LOCATION
PROV.                     : PROVINCE
CNTY.                     : COUNTY
STAT.                     : STATE
CTRY.                     : COUNTRY
SRVC.                     : SERVICE COMPANY
DATE. 2023-01-26 14:58:21 : DATE
UWI .                     : UNIQUE WELL ID
API .                     : API NUMBER
~Curve Information -----------------------------------------
DEPT .m  :
SYNTH.   : fake data
~Params ----------------------------------------------------
ENG. Kent Inverarity :
LMF.              GL :
~Other -----------------------------------------------------
Example of how to create a LAS file from scratch using lasio
~ASCII -----------------------------------------------------
   10.00000   -9999.25
   10.50000   -9999.25
   11.00000   -9999.25
   11.50000   -9999.25
   12.00000   -9999.25
   12.50000   -9999.25
   13.00000   -9999.25
   13.50000   -9999.25
   14.00000    6.32656
   14.50000    6.32279
   15.00000    6.24716
   15.50000    6.07168
   16.00000    6.40693
   16.50000    6.74994
   17.00000    6.16163
   17.50000    7.08836
   18.00000    6.31721
   18.50000    7.19034
   19.00000    6.72278
   19.50000    7.01719
   20.00000    7.49475
   20.50000    6.92995
   21.00000    7.44739
   21.50000    7.55360
   22.00000    6.94753
   22.50000    7.64236
   23.00000    7.74817
   23.50000    7.23852
   24.00000    7.88034
   24.50000    7.07664
   25.00000    7.19182
   25.50000    7.62403
   26.00000    7.80678
   26.50000    7.93082
   27.00000    8.08903
   27.50000    7.81581
   28.00000    8.08901
   28.50000    7.60532
   29.00000    7.86530
   29.50000    7.72080
   30.00000    7.74472
   30.50000    7.68292
   31.00000    8.00722
   31.50000    8.12406
   32.00000    7.60265
   32.50000    7.73699
   33.00000    7.72325
   33.50000    8.02248
   34.00000    8.04029
   34.50000    8.65056
   35.00000    8.30488
   35.50000    8.59884
   36.00000    7.83725
   36.50000    8.72173
   37.00000    7.95948
   37.50000    8.12969
   38.00000    8.75692
   38.50000    8.73753
   39.00000    8.22793
   39.50000    8.86533
   40.00000    8.56819
   40.50000    9.00213
   41.00000    8.51844
   41.50000    8.81121
   42.00000    8.51106
   42.50000    8.28359
   43.00000    8.65719
   43.50000    8.33235
   44.00000    8.52983
   44.50000    9.04601
   45.00000    8.53333
   45.50000    9.20433
   46.00000    8.60132
   46.50000    8.94629
   47.00000    8.60415
   47.50000    8.56460
   48.00000    9.35277
   48.50000    8.65887
   49.00000    9.33907
   49.50000    9.30430