GithubHelp home page GithubHelp logo

erlendhaa / dlisio Goto Github PK

View Code? Open in Web Editor NEW

This project forked from equinor/dlisio

0.0 1.0 0.0 3.18 MB

License: Other

CMake 0.86% C++ 47.77% Shell 0.23% C 1.81% Python 49.08% Dockerfile 0.25%

dlisio's Introduction

dlisio logo

Travis CircleCI Appveyor PyPI version Read the Docs

Index

Introduction

dlisio is an LGPL licensed library for working with well logs in Digital Log Interchange Standard (DLIS V1), also known as RP66 V1. DLIS V2 is out-of-scope for this project, as it is quite different and hardly in use in the industry. It is an attempt at a powerful community-driven, portable, easy-to-use and flexible library for well logs, that can be used to build a wide array of applications.

As of version 0.3.0, dlisio is extended to also read Log Information Standard 79 (LIS79). An extended version of the LIS79 standard called LIS84/Enhanced LIS exists, but this version is currently not supported by dlisio. Please note that the LIS reader is experimental and lacks the same thorough testing and real world experience as the DLIS reader.

Features are added as they are needed; suggestions, defect reports, and contributions of all kinds are very welcome.

Getting started

dlisio is in rapid development, and the interfaces are not stable. We welcome any users and will try our best to accomodate your needs, but we currently make no guarantees that code that works today will work tomorrow.

Get dlisio

The end-user should go through the python library, as the core library is intended for developers only. The pre-built alpha releases are available through pypi

pip3 install dlisio

Once dlisio is stable it will also be available as debian, fedora, and conda packages.

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.

Tutorial

dlisio's documentation is hosted on readthedocs. Please refer there for proper introduction to dlisio, and the file-formats DLIS and LIS. With dlisio it is easy to read the curve-data from DLIS-files:

from dlisio import dlis

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

and from LIS-files:

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).

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

Watchers

 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.