• Stars
    star
    104
  • Rank 330,604 (Top 7 %)
  • Language
    Python
  • License
    Other
  • Created over 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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.

More Repositories

1

segyio

Fast Python library for SEGY files.
Python
476
star
2

data-science-template

A starter template for Equinor data science / data engineering projects
Jupyter Notebook
200
star
3

design-system

The Equinor design system
TypeScript
119
star
4

xtgeo

XTGeo Python class library for subsurface Surfaces, Cubes, Wells, Grids, Points, etc
Python
104
star
5

segyviewer

Python viewer for SEG-Y files
Python
101
star
6

segyio-notebooks

Notebooks with examples and demos of segyio
Jupyter Notebook
101
star
7

resdata

Software for reading and writing the result files from the Eclipse reservoir simulator.
C++
100
star
8

ert

ERT - Ensemble based Reservoir Tool - is designed for running ensembles of dynamical models such as reservoir models, in order to do sensitivity analysis and data assimilation. ERT supports data assimilation using the Ensemble Smoother (ES), Ensemble Smoother with Multiple Data Assimilation (ES-MDA) and Iterative Ensemble Smoother (IES).
Python
99
star
9

api-strategy

Equinor API Strategy
93
star
10

flownet

FlowNet - Data-Driven Reservoir Predictions
Python
63
star
11

neqsim

NeqSim is a library for calculation of fluid behavior, phase equilibrium and process simulation
Java
63
star
12

seismic-zfp

Compress and decompress seismic data
Python
60
star
13

webviz-subsurface

Webviz-config plugins for subsurface data.
Python
56
star
14

neqsim-python

NeqSim is a library for calculation of fluid behavior, phase equilibrium and process simulation. This project is a Python interface to NeqSim.
Python
56
star
15

template-fastapi-react

A solution template for creating a Single Page App (SPA) with React and FastAPI following the principles of Clean Architecture.
Python
55
star
16

webviz-config

Make Dash applications from a user-friendly config file πŸ“– 🐍
Python
55
star
17

pyscal

Python module for relative permeability/SCAL support in reservoir simulation
Python
54
star
18

witsml-explorer

Witsml Explorer data management tool.
C#
45
star
19

opc-ua-information-models

OPC UA information models developed by Equinor
38
star
20

webviz-subsurface-components

Custom subsurface visualizations for use in Webviz and/or Dash.
TypeScript
35
star
21

OmniaPlant

Documentation on how to get started building industrial applications and services by using Omnia Plant Data Platform
C#
30
star
22

energyvision

Home of the equinor.com website
TypeScript
30
star
23

libres

C++
29
star
24

tagreader-python

A Python package for reading trend data from the OSIsoft PI and Aspen InfoPlus.21 historians
Python
28
star
25

res2df

Pandas Dataframe access to Eclipse input and output files
Python
28
star
26

gordo

An API-first distributed deployment system of deep learning models using timeseries data to predict the behaviour of systems
Python
27
star
27

dlisio-notebooks

Jupyter Notebook
26
star
28

OpenServer

Code for running Petroleum Experts OpenServer API commands in Python
Python
25
star
29

radix-platform

Omnia Radix platform - base scripts and code
Shell
24
star
30

sdp-flux

Flux continuous delivery to k8s
Shell
23
star
31

az-static-web-app-docs-template

JavaScript
23
star
32

flowify-workflows-server

Go
22
star
33

oneseismic

C++
21
star
34

leaflet.tilelayer.gloperations

Custom Leaflet TileLayer using WebGL to do operations on and colorize floating-point pixels
TypeScript
19
star
35

webviz-archived

THIS REPO IS NOT MAINTAINED ANYMORE. Go to https://github.com/equinor/webviz-config for the new repo.
Python
19
star
36

isar

Integration and Supervisory control of Autonomous Robots
Python
17
star
37

iterative_ensemble_smoother

Algorithms for data assimilation using ensemble methods.
Python
17
star
38

curvy

The Smooth Forward Price Curve builder you never thought you needed
Jupyter Notebook
16
star
39

appsec

Everything Application Security
16
star
40

rvmsharp

An C# Aveva .RVM file format parser. Also includes a pipeline for the reveal 3D model format.
C#
16
star
41

videx-wellog

Well log components
TypeScript
15
star
42

resfo

Parser and Writer of the reservoir fortran ouput data format. That means files with extensions such as .EGRID, .INIT, .SMRY, .UNSMRY, .GRID, .FEGRID, .FINIT, etc. Such files are generated by many reservoir simulators such as OPM flow, Eclipse, etc.
Python
15
star
43

eNLP

A python library of commonly used NLP functions for processing, understanding and visualisation.
Python
15
star
44

webviz-core-components

Discipline agnostic Webviz and Dash components.
TypeScript
15
star
45

subscript

Equinor's collection of subsurface reservoir modelling scripts
Python
15
star
46

react-native-trustkit

Objective-C
14
star
47

open_petro_elastic

Utility for calculating elastic properties of petroleum fields
Python
13
star
48

fusion-components

Common react components used by fusion core and fusion apps https://equinor.github.io/fusion-components
TypeScript
13
star
49

fusion-web-components

repository for Fusion web components
TypeScript
12
star
50

ecalc

eCalcβ„’ is a software tool for calculation of energy demand and greenhouse gas emissions from oil and gas production and processing.
Python
12
star
51

esv-intersection

A reusable component to create intersection visualizations for wells
TypeScript
12
star
52

fmu-ensemble

Python objectification of reservoir model ensembles left on disk by ERT.
Python
12
star
53

webviz-ert

ERT webviz plugins
Python
12
star
54

snapwell

The Snapwell wellpath optimization tool
Python
11
star
55

appsec-fundamentals-authn-authz-cs

A hands-on AppSec fundamentals workshop where we explore protecting API's and Web apps
JavaScript
11
star
56

flotilla

Flotilla is the main point of access for operators to interact with multiple robots in a facility.
C#
11
star
57

fmu-tools

fmu-tools is a library containing tools for pre- and post-processing in a Fast Model Update (FMU) context
Python
10
star
58

dass

Data Assimilation in Python for teaching purposes
Jupyter Notebook
10
star
59

sdp-omnia

SDP's resources in Omnia (Equinor's data platform on Azure). Mainly AKS but also VMs
Shell
10
star
60

flowify-workflows-UI

TypeScript
10
star
61

radix-flux

Omnia Radix GitOps tools
10
star
62

fmu-dataio

FMU data standard and data export with rich metadata in the FMU context
Python
10
star
63

MamasKitchen

A demo repository for learning more about GitHub and Git in Equinor
Python
10
star
64

semeio

Semeio is a collection of jobs and workflow jobs used in ert (https://github.com/equinor/ert).
Python
10
star
65

data-engineering

Various resources for Data Engineering in Equinor.
10
star
66

radix-operator

The operator for the Radix platform
Go
9
star
67

fusion-framework

Fusion Framework, built and maintained to Fusion Core
TypeScript
9
star
68

procosys-js-frontend

Frontend javascript application for Project Completion System (ProCoSys)
TypeScript
9
star
69

pysand

Sand Management in Python
Python
8
star
70

webviz-subsurface-testdata

Testdata for use with webviz-subsurface
OpenEdge ABL
8
star
71

fmu

Landing repo for everything FMU
8
star
72

datamagic

A mini-course about working with data in Equinor
Jupyter Notebook
8
star
73

opensource

CSS
8
star
74

appsec-fundamentals-secret-scanning

A 3 hour workshop on getting started with secret scanning in your SDLC
Shell
8
star
75

fusion-workspace

TypeScript
8
star
76

api-first-workbench

The ultimate workbench with tools and processes to use for API first
JavaScript
8
star
77

neqsim-matlab

NeqSim is a library for calculation of fluid behavior, phase equilibrium and process simulation. This project is the Matlab interface to NeqSim.
MATLAB
8
star
78

python-intermediate

Python intermediate course
8
star
79

sunbeam

Python
7
star
80

iec63131

PowerShell
7
star
81

fusion-react-components

mono repo for collection of react components used for Fusion apps
TypeScript
7
star
82

neqsimNET

NeqSim is a library for calculation of fluid behavior, phase equilibrium and process simulation. This project implements the .Net interface to NeqSim.
7
star
83

edc22-nlp

EDC 2022 NLP workshop
Jupyter Notebook
7
star
84

osdu-sdk-python

Python SDK for working with OSDU
Python
7
star
85

gordo-controller

Kubernetes controller for the Gordo CRD
Rust
7
star
86

mad

Experimental monorepo for the Mobile Application Delivery team
TypeScript
7
star
87

configsuite

Config Suite is the result of recognizing the complexity of software configuration.
Python
7
star
88

neqsimExcelCapeOpen

NeqSim is a library for calculation of fluid behavior, phase equilibrium and process simulation. This project is the Excel and Cape Open user interface for NeqSim.
C#
7
star
89

radix-web-console

Radix Web Console; the web-based GUI to administer Radix applications
TypeScript
6
star
90

auth-dash-app-template

Dash app with Azure AD authentication
Python
6
star
91

vscode-lang-e100e300

Visual Studio Code language support for Eclipse (E100/E300)
6
star
92

vscode-septic

Extension for Visual Studio Code to support the SEPTIC config file format.
TypeScript
6
star
93

sepes-api

A platform that allows vendors to prove their solutions on your data.
C#
6
star
94

rdf-graph

Visualize RDF as a graph network
TypeScript
6
star
95

fusion-api

Fusion framework app API
TypeScript
6
star
96

webviz

TypeScript
6
star
97

skjermen

The One, But Not Only, Info Screen!
HTML
6
star
98

GraphSPME

Graphical Sparse Precision Matrix Estimation | For very high dimensions and with asymptotic regularization
Jupyter Notebook
6
star
99

seismic-forward

C++
6
star
100

git-introduction

6
star