Giter VIP home page Giter VIP logo

dlisio's Introduction

dlisio icon

PyPI version Github Actions Read the Docs

Introduction

dlisio is an LGPL licensed library for reading well logs in Digital Log Interchange Standard (DLIS V1), also known as RP66 V1, and Log Information Standard 79 (LIS79).

dlisio is designed as a general purpose library for reading well logs in a simple and easy-to-use manner. Its main focus is making all the data and metadata accessible while putting few assumptions on how the data is to be used. This makes it suitable as a building block for higher level applications as well as for being used directly.

dlisio focuses above all on correctness, performance and robustness. Its core, which does all the heavy lifting, is implemented in C++. Both the C++ core and the python wrappers are backed by an extensive test-suite. It strives to be robust against files that do not strictly adhere to the specifications, which is a widespread issue with both DLIS and LIS files. dlisio tries to account for many of the known specification violations out there, but only when it can do so without compromising correctness. It will not do any guess work on your behalf when such violations pose any ambiguity.

Installation

dlisio supplies pre-built python wheels for a variety of platforms and architectures. The wheels are hosted through PyPi and can be installed with:

pip install dlisio
macOS Intel Windows 64bit Windows 32bit manylinux x86_64 manylinux aarch64
CPython 3.6
CPython 3.7
CPython 3.8
CPython 3.9
CPython 3.10 -
CPython 3.11 -

See Build dlisio for building dlisio from source.

Getting started

dlisio's documentation is hosted on readthedocs. Please refer there for proper introduction to dlisio and the file-formats DLIS and LIS. Here is a motivating example showcasing how to read the curve-data from a DLIS-file:

from dlisio import dlis

with dlis.load('myfile.dlis') as files:
    for f in files:
        for frame in f.frames:
            curves = frame.curves()
            # Do something with the curves

and from a LIS-file:

from dlisio import lis

with lis.load('myfile.lis') as files:
    for f in files:
        for format_spec in f.data_format_specs():
            curves = lis.curves(f, format_spec)
            # Do something with the curves

In both cases the curves are returned as structured numpy.ndarray with the curve mnemonics as field names (column names).

Build dlisio

To develop dlisio, or to build a particular revision from source, you need:

If you do not have pybind11 installed on your system, the easiest way to get a working copy is to pip3 install pybind11 (NP! pybind11, not pybind)

layered-file-protocols has to be installed from source if you don't already have it on your system:

git clone https://github.com/equinor/layered-file-protocols.git
mkdir layered-file-protocols/build
cd layered-file-protocols/build
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON
-DLFP_FMT_HEADER_ONLY=ON
make
make install

To then build and install dlisio:

mkdir dlisio/build
cd dlisio/build
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON
make

dlisio follows common cmake rules and conventions, e.g. to set install prefix use -DCMAKE_INSTALL_PREFIX. To build the python library it is usually a good idea to build shared libraries. To disable python, pass -DBUILD_PYTHON=OFF. By default, the python library is built.

Contributing

We welcome all kinds of contributions, including code, bug reports, issues, feature requests, and documentation. The preferred way of submitting a contribution is to either make an issue on github or by forking the project on github and making a pull request.

dlisio's People

Contributors

achaikou avatar aqeelahmad avatar dabiged avatar erlendhaa avatar jcfr avatar jokva avatar shikhamishra9 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.