Dlisio Versions Save

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

v0.2.6

3 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

v0.2.5

3 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++.

v0.2.4

3 years ago
  • fixes a bug in dl::findoffsets that caused an infinite loop for certain broken files.

v0.2.3

3 years ago
  • Fixes a bug in dlisio.load() that caused it to leak open file handles when load failed.
  • Added official support and distributed wheels for python 3.8.
  • Better error message is reported when attempting to load files which do not exist.
  • dlisio can now read files which contain empty logical records.
  • The cli tool describe.cpp is removed as it has not been maintained and used.

v0.2.2

3 years ago
  • Fixes a bug in dlisio.load() that caused it to leak an open file handle.

v0.2.1

3 years ago
  • Fixes a bug in the build script that creates the macos wheels. The lfp library was not properly included, resulting in an import error when importing dlisio.

v0.2.0

3 years ago
  • dlisio can now read files wrapped in Tape Image Format (tif).
  • dlisio can now read files that do not contain a Storage Unit Label.
  • The numpy array returned by frame.curves() can now be indexed with fingerprints in addition to the normal mnemonic indexing. Fingerprints are a more reliable indexing method as these are required to be unique by the standard, unlike mnemonics. This should mainly be of interest to automation pipelines where reliable indexing is key.
  • dlisio can now read frames with duplicated channels. This behavior is explicitly forbidden by the spec. However, it is frequently violated. By default, frame.curves() still fails, but this can now be bypassed with strict=False.
  • dlisio no longer accepts files where the last Visible Record is truncated, but the last Logical Record is intact. Support for such truncated files was never intended in the first place, but happened to work.
  • Channel.curves() fails more gracefully when there is no recorded curve data.
  • The documentation has been revamped and new sections focusing on understanding the content and structure of dlis-files are added.
  • Fixes a bug that caused channel.curves() to use too much memory.
  • Fixes a bug that causes dlisio.load() to fail if the file contained encrypted fdata record(s).
  • Fixes a bug that caused dlisio.load() to fail if the obname of a fdata record spanned multiple Visible Records.
  • Fixes a bug that re-read unknown objects from disk even if they were cached from previous reads.

v0.1.16

4 years ago
  • Fixes a bug where dlisio.load did not properly close the memory mapping to the file when loading failed.
  • Fixes a bug where dlis.match and dlis.object returned the same object multiple times under certain circumstances.
  • dlis.describe() again includes the object-count of each object-type.
  • dlisio.load now warns if a file contains Update-objects. The current lack of support for such objects means that
  • dlisio may wrongfully present data in files with Update-objects.
  • There is now a list of organization codes on readthedocs
  • Fixes a bug in the Process-docs

v0.1.15

4 years ago
  • Metadata objects are now parsed and loaded when needed, rather than all at once in dlisio.load(). This is not directly observable for the user, other than it improves performance for dlisio.load(). For files with a lot of metadata, the performance gain is huge.
  • dlisio can now read even more curve-data. Specifically, where multiple FDATA (rows) are stored in the same IFLR.
  • The array from Frame.curves() now includes FRAMENO as the first column. FRAMENO are the row numbers as represented in the file. It might happen that there are missing rows or that they are out-of-order in the file, that is now observable by inspecting FRAMENO.
  • Better support for non-ascii strings. It is now possible to tell dlisio which string encodings to try if decoding with 'utf-8' fails. Supply a list of encodings to set_encodings() and dlisio will try them in order.
  • Frame.index now returns the Channel mnemonic, not the Channel-object.
  • Channel.index is removed.
  • Validated types are now represented as tuples, not lists.
  • Fixes a bug where microseconds in datetime objects where interpreted as milliseconds.
  • Better error message when incomplete Channels objects cause parsing of curves to fail as a result.

v0.1.14

4 years ago
  • dlisio have learned to read curves with variable length data types. Thus, every data-type that the standard allows for curves are now supported by dlisio.
  • Frame and Channel-objects now has a index-property. index returns the channel object that serves as the index-channel for the given Frame-/Channel.