Skip to content

Commit

Permalink
Merge pull request #129 from kinverarity1/refactor
Browse files Browse the repository at this point in the history
Project refactor
  • Loading branch information
kinverarity1 committed Feb 15, 2016
2 parents 4907f6f + 851de48 commit d930ea3
Show file tree
Hide file tree
Showing 11 changed files with 1,043 additions and 979 deletions.
32 changes: 31 additions & 1 deletion lasio/__init__.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,38 @@
from .las import __version__, read, LASFile, CurveItem, HeaderItem, JSONEncoder
from .las import LASFile, JSONEncoder
from .las_items import CurveItem, HeaderItem, SectionItems
from .reader import open_file

try:
import openpyxl
except ImportError:
pass
else:
from .excel import ExcelConverter

__version__ = '0.10'


def read(file_ref, **kwargs):
'''Read a LAS file.
Note that only versions 1.2 and 2.0 of the LAS file specification
are currently supported.
Arguments:
file_ref: either a filename, an open file object, or a string of
a LAS file contents.
Keyword Arguments:
encoding (str): character encoding to open file_ref with
encoding_errors (str): 'strict', 'replace' (default), 'ignore' - how to
handle errors with encodings (see standard library codecs module or
Python Unicode HOWTO for more information)
autodetect_encoding (bool): use chardet/ccharet to detect encoding
autodetect_encoding_chars (int/None): number of chars to read from LAS
file for auto-detection of encoding.
Returns:
A LASFile object representing the file -- see above
'''
return LASFile(file_ref, **kwargs)
54 changes: 54 additions & 0 deletions lasio/defaults.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@

import numpy as np

from .las_items import (
HeaderItem, CurveItem, SectionItems, OrderedDict
)


DEFAULT_ITEMS = {
'Version': SectionItems([
HeaderItem('VERS', '', 2.0, 'CWLS log ASCII Standard -VERSION 2.0'),
HeaderItem('WRAP', '', 'NO', 'One line per depth step'),
HeaderItem('DLM', '', 'SPACE', 'Column Data Section Delimiter'),
]),
'Well': SectionItems([
HeaderItem('STRT', 'm', np.nan, 'START DEPTH'),
HeaderItem('STOP', 'm', np.nan, 'STOP DEPTH'),
HeaderItem('STEP', 'm', np.nan, 'STEP'),
HeaderItem('NULL', '', -9999.25, 'NULL VALUE'),
HeaderItem('COMP', '', '', 'COMPANY'),
HeaderItem('WELL', '', '', 'WELL'),
HeaderItem('FLD', '', '', 'FIELD'),
HeaderItem('LOC', '', '', 'LOCATION'),
HeaderItem('PROV', '', '', 'PROVINCE'),
HeaderItem('CNTY', '', '', 'COUNTY'),
HeaderItem('STAT', '', '', 'STATE'),
HeaderItem('CTRY', '', '', 'COUNTRY'),
HeaderItem('SRVC', '', '', 'SERVICE COMPANY'),
HeaderItem('DATE', '', '', 'DATE'),
HeaderItem('UWI', '', '', 'UNIQUE WELL ID'),
HeaderItem('API', '', '', 'API NUMBER')
]),
'Curves': SectionItems([]),
'Parameter': SectionItems([]),
'Other': '',
'Data': np.zeros(shape=(0, 1)),
}


ORDER_DEFINITIONS = {
1.2: OrderedDict([
('Version', ['value:descr']),
('Well', [
'descr:value',
('value:descr', ['STRT', 'STOP', 'STEP', 'NULL'])]),
('Curves', ['value:descr']),
('Parameter', ['value:descr']),
]),
2.0: OrderedDict([
('Version', ['value:descr']),
('Well', ['value:descr']),
('Curves', ['value:descr']),
('Parameter', ['value:descr'])
])}
10 changes: 5 additions & 5 deletions lasio/excel.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,11 @@ def write_cell(sh, i, j, value):
c = sh.cell(row=i + 1, column=j + 1)
c.value = value

write_cell(header, 0, 0, "Section")
write_cell(header, 0, 1, "Mnemonic")
write_cell(header, 0, 2, "Unit")
write_cell(header, 0, 3, "Value")
write_cell(header, 0, 4, "Description")
write_cell(header, 0, 0, 'Section')
write_cell(header, 0, 1, 'Mnemonic')
write_cell(header, 0, 2, 'Unit')
write_cell(header, 0, 3, 'Value')
write_cell(header, 0, 4, 'Description')

sections = [
('~Version', self.las.version),
Expand Down
16 changes: 16 additions & 0 deletions lasio/exceptions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
class LASDataError(Exception):

'''Error during reading of numerical data from LAS file.'''
pass


class LASHeaderError(Exception):

'''Error during reading of header data from LAS file.'''
pass


class LASUnknownUnitError(Exception):

'''Error of unknown unit in LAS file.'''
pass
Loading

0 comments on commit d930ea3

Please sign in to comment.