Dlisio Versions Save

Python library for working with the well log formats Digital Log Interchange Standard (DLIS V1) and Log Information Standard (LIS79)


6 months ago
  • Prebuilt wheels for python 3.11


1 year ago
  • Prebuilt wheels for python 3.10
  • Prebuilt wheels for linux aarch64


2 years ago
  • Added support for UTF-8 filepaths on Windows
  • dlisio has been given its own logger. #df40d7e
  • Fixes a bug that caused dlisio to fail when opening files >2GB on Windows
  • DLIS metadata is now cached by default #810d077
  • DLIS attribute units are better documented
  • Removed deprecated dlis.LogicalFile.getitem
  • Removed deprecated dlis.LogicalFile.match
  • Added curves_metadata to the lis interface
  • Added index_mnem to DataFormatSpec
  • Added index_units to DataFormatSpec
  • Added sample_rates to DataFormatSpec
  • LIS Component Blocks are validated when parsed
  • Added a class-like interface for LIS Spec Block 1 Process Indicators


2 years ago
  • Full support for LIS Spec Block sub-type 0 and 1.
  • dlisio now uses the python type 'bytes' to represent the LIS79 defined datatype 'mask'.
  • The content of DFSRs is checked more thoroughly before attempting to read the curves.
  • Integral parts of LIS Entry Block are sanity checked upon parsing.
  • Fixes a bug that resulted in the curve parsing routines allocating to little memory for the numpy array. That ultimately resulted in a segfault. This bug affected both DLIS and LIS, but only occurs for files that are written in a specific way.
  • Fixes a bug in the DLIS curve parsing that caused dlisio to incorrectly restore state after attempting to read a broken frame from the file, resulting in the following frames being incorrectly written to the outputted numpy array.


2 years ago
  • lis.load now raises by default when a file cannot be successfully indexed. In previous versions only a warning was issued and a partially indexed file was returned.
  • lis.load now accepts a dlisio.ErrorHandler-instance similar to dlis.load. This allows the caller to decide how load behaves when a file cannot be properly indexed.
  • dlisio has learned to parse the following LIS records: Operator Command Inputs, Operator Response Inputs, System Outputs to Operator and FLIC Comment.
  • LIS Data Format Specification Records have been given a more user-friendly interface through lis.DataFormatSpec.
  • dlisio has learned to read LIS curves where the index is recorded in depth recording mode 1.
  • dlisio has learned to read LIS curves that are sampled at a higher rate than the recorded index (Fast Channels)
  • dlisio has learned to read LIS curves with non-scalar sample-values.
  • dlisio has learned to read LIS curves containing strings.
  • Added safe-guards against ZeroDevisionError's in lis.curves
  • The predecessor and successor bits in the LIS Physical Records Headers are checked for consistency during the indexing routines.
  • Error messages emitted from the indexing routines at lis.load are now properly communicated to the caller.


2 years ago
  • Added support for reading the LIS79 record types: Job Identification, Wellsite Data and Tool String Info.
  • Fixes a bug that led dlisio to attempt to read curves with multiple entries in each sample, even though such support was never implemented. Now a NotImplementedError is raised.


2 years ago
  • Solves an issue in the Windows deploy pipeline on Appveyor that resulted in the pipeline failing to upload the python wheels to PyPi.


2 years ago
  • Added an initial pass at a Log Information Standard 79 (LIS79) reader. Like the DLIS reader, the new LIS reader is mainly implemented in C/C++ with python bindings on top. The reader is not feature complete at this point. But it can read most curves, with a few exceptions (see the docs of dlisio.lis.curves). Basic metadata such as LIS Header/trailer Records (RHLR, RTLR, THLR, TTLR, FHLR, FTLR) can also be read. Support for more complex LIS Records such Information Records is not yet added. The LIS reader resides in the python submodule dlisio.lis.
  • The python module is restructured to accommodate the new LIS reader. Most notably, all DLIS related functionality is moved to the submodule dlisio.dlis. I.e. this release breaks the main entry point of dlisio dlisio.load which from this release and onwards is moved to dlisio.dlis.load. For a full overview of the restructuring see commit #736d545.
  • The documentation on readthedocs_ has been given an overhaul to fit the new module structure and LIS documentation is added.
  • Added support for DLIS NOFORM objects.
  • Better debug information for broken DLIS files.
  • Better error message when passing a directory as path to dlisio.dlis.load.
  • Nicer error message when failing to construct datetime objects due to invalid dates in the file.
  • Added support for python 3.9
  • Dropped support for python 3.5
  • Restructuring the C/C++ core of dlisio, please refer to the git log for a full overview of the restructuring.
  • The C and C++ targets are merged into one target dlisio, and dlisio-extension ceased to exist.


2 years ago
  • Fixes a bug that caused dlisio.load to fail on files >2GB on Windows.
  • dlisio can now read data from truncated files, this feature is opt-in.
  • dlisio can now read data from files that are padded at the end, this feature is opt-in.
  • How dlisio handles spec-violations in files is now customisable.
  • describe() includes attributes units
  • Batch has been renamed to physicalfile.
  • dlis has been renamed to logicalfile
  • dlis.match (now logicalfile.match) is deprecated in favor of logicalfile.find


2 years ago
  • Fixed a bug where dlisio silently misinterpreted vax-floats.
  • More robust handling of encoded strings.
  • Internal restructuring. Metadata handling is partially moved to C++.