Skip to main content

XTGeo is a Python library for 3D grids, surfaces, wells, etc

Project description

XTGeo

Build Status Build status Code style: black PyPI version Codacy Badge Documentation Status PyPI - Python Version PyPI - License

Introduction

XTGeo is a LGPL licensed Python library with C backend to support manipulation of (oil industry) subsurface reservoir modelling. Typical users are geoscientist and reservoir engineers working with reservoir modelling, in relation with RMS. XTGeo is developed in Equinor.

Detailed documentation for XTGeo at Read the Docs

Feature summary

  • Python 2.7+ and 3.4+ is supported
  • Focus on high speed, using numpy and pandas with C backend
  • Regular surfaces, i.e. 2D maps with regular sampling and rotation
  • 3D grids (corner-point), supporting several formats such as RMS and Eclipse
  • Support of seismic cubes, using segyio as backend for SEGY format
  • Support of well data, line and polygons (still somewhat immature)
  • Operations between the data types listed above; e.g. slice a surface with a seismic cube
  • Integration with ROXAR API python for several data types is supported (see note later)
  • Linux is main development platform. From version 2.2.0, Windows 64bit is supported.

Installation

For Linux and Windows 64bit, PYPI installation is enabled:

pip install xtgeo

For detailed installation instructions (implies C compiling), see the documentation.

Getting started

from xtgeo.surface import RegularSurface

# create an instance of a surface, read from file
mysurf = RegularSurface('myfile.gri')  # Irap binary as default

print('Mean is {}'.format(mysurf.values.mean()))

# change date so all values less than 2000 becomes 2000
# The values attribute gives the Numpy array

mysurface.values[mysurface.values < 2000] = 2000

# export the modified surface:
mysurface.to_file('newfile.gri')

Note on RMS Roxar API integration

The following applies to the part of the XTGeo API that is connected to Roxar API (RMS):

RMS is neither an open source software nor a free software and any use of it needs a software license agreement in place.

History

Version 2

2.7.0

  • New features:
    • Support for petromod binary format for RegularSurface()
    • Added name attribute for Grid()
    • Enhanced plotting for well logs
    • The arrays stored Grid() are no longer SWIG C pointers, but numpy arrays. This simplifies pickling.
  • Bug fixes:
    • File names used in e.g. from_file should now handle pathlib instances
    • Improved error messages if issues with e.g. file names used in export/import
    • Fix of excessive logger output in
  • Fixes for developers:
    • General refactorizion of C code, to improve speed and stability. Also change logger method in C (still ongoing)

2.6.0

  • New features:
    • A Grid() instance can now be "numpified" so that pickling can be done, method numpify_carrays()
    • An existing GridProperty() instance should now accept scalar input which will be broadcasted to the full array
    • Added a method so one can create a GridProperty instance directly for a Grid() instance #291
    • Added several alternatives to instantate Points(), e.g. from a list of tuples
    • A general method that finds the IJK indices in a 3D grid from from Points() is made get_ijk_from_points #287
    • For RegularSurface(), the fill() methid will now accept an optional fill_value (constant) #294
  • Bug fixes:
    • Making surface write to BytesIO stream threading safe (Irap binary format)
    • Assigning a GridProperty() inside/outside a polygon is now more robust.
    • Many internal build fixes and improves, including requirements.txt
    • For surfaces, some operator overload function changed unintentionally the other instance #295
    • For surfaces, operator overload on instances with same topology will not unintentionally trigger resampling

2.5.0

  • New features:
    • Be able to write surfaces to BytesIO (memory streams), Linux only
    • Add the ability for 3D grids to detect and swap handedness of a 3D grid.
    • Available on Python 3.8 on all platforms
  • Fixes for developers
    • Now backward compatible to cmake 2.8.12
    • Many internal build fixes and improves, including requirements.txt

2.4.3

  • Fix of bugs when exporting points/polygons to Roxar API
  • Fix (for developers) various setup in cmake/swig etc so that cmake can be downgraded to 3.13.3 and hence a manylinux1 image is available in PYPI for Linux (Python versions < 3.7)

2.4.2

  • Fix a bug that occurs when reading Eclipse properties from E300 runs

2.4.1

  • Push to trigger travis build and deploy

2.4.0

  • New features:
    • Added a general kwargs to savefig() in plot module, so e.g. dpi keyword can be passed to matplotlib
  • Bug fixes:
    • More robust on reading saturations from UNRST files from Eclipse 300 and IX, where "IPHS" metadata (describing phases present) is unreliable.
  • Fixes for developers:
    • Setup can now be ran in "develop mode"

2.3.1

  • Preliminary support for Python 3.8 (Linux only)
  • Several bug fixes:
    • User warning when requested colour map is not found
    • Printing of a Points of Polygons instance shall now work
    • UNDEF values in property grdecl or bgrdecl export shall now be 0.0, not a large number
    • Name in GridProperty to_file(name=...) is fixed
    • If fformat in GridProperty import is mispelled, an exception will be raised

2.3.0

  • Added support for MacOS on PYPI (Python 3.6, 3.7)
  • Added functionality on grid slices as method ()
  • More flexible reading on phases present in Eclipse/IX UNRST files
  • Several minor bugfixes and improvements

2.2.2

  • Several smaller bug fixes
  • Use of realisation in gridproperty_from_roxar() was not working

2.2.1

  • Full C code and compile restructuring, now using scikit-build!
  • Use of realisation in gridproperty_from_roxar() was not working

2.2.0

Several fixes and new features, most important:

  • Well() class
    • Added tvd interval for rescaling of well logs.
    • When sampling a discrete property to well, it will now be a discrete log
    • Added a isdiscrete() method
  • RegularSurface() class
    • Support for read from bytestrings (memory) in addition to files (Irap binary format supported)
    • Fast load of surfaces (will only read metadata) if requested
    • Support for threading/multiprocessing (concurrent.futures) when importing surfaces from Irap binary.
  • Grid() class
    • Improvements and fixes for dual porosity and/or dual permeability models from Eclipse

2.1.0

Several fixes and new features, most important:

  • Cube() class

    • A general get_randomline() methods
  • Grid() class

    • Make a rectular shoebox grid
    • Get a randomline (sampling) along a 3D grid with property
    • More robust support for binary GRDECL format
    • Possible to input dual porosity models from Eclipse (EGRID, INIT, UNRST)
  • Surfaces

    • Added a class for Surfaces(), a collection of RegularSurface instances
    • Generate surface from 3D grid
    • Lazy load of RegularSurfaces (if ROFF/RMS binary) for fast scan of metadata
    • Clipboard support in from_roxar() and to_roxar() methods
    • fill(), fast infill of undefined values
    • smooth(), median smoothing
    • get_randomline() method (more general and flexible)
  • Points/polygons

    • Added copy() method
    • Added snap to surface method (snap_surface)
    • Several other methods related to xsections from polygons
  • Well() class

    • Get polygon and and improved fence from well trajectory
    • Look up IJK indices in 3D grid from well path

2.0.8

  • Fixed a backward compatibility issue with filter vs pfilter for points/polygons to_file

2.0.7

  • (merged into 2.0.8)

2.0.6

  • Corrected issues with matplotlib when loading xtgeo in RMS

2.0.5

  • Fixed a bug when reading grids in ROXAR API, the subgrids were missing
  • Improved logo and documentation runs
  • Allow for xtgeo.ClassName() as well as xtgeo.submodule.ClassName()
  • A number of smaller Fixes
  • More badges

2.0.4

  • Technical fixes regarding numpy versions vs py version, swig setup and setup.py

2.0.3

  • Deploy to python 3.4 and 3.5 also. Numpy versions tuned to match roxar library.

2.0.2

  • Adding services for code improvements (codacy, bandit)

2.0.1

  • Minor improvements in setup and documentation
  • Travis automatic deploy works now

2.0.0

  • First version after Open Sourcing to LGPL v3+

Version 0 and 1

See github for commit and tag history:

https://github.com/equinor/xtgeo

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

xtgeo-2.7.0-cp38-cp38-win_amd64.whl (505.6 kB view details)

Uploaded CPython 3.8Windows x86-64

xtgeo-2.7.0-cp38-cp38-manylinux2010_x86_64.whl (490.4 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64

xtgeo-2.7.0-cp38-cp38-macosx_10_13_x86_64.whl (486.4 kB view details)

Uploaded CPython 3.8macOS 10.13+ x86-64

xtgeo-2.7.0-cp37-cp37m-win_amd64.whl (503.8 kB view details)

Uploaded CPython 3.7mWindows x86-64

xtgeo-2.7.0-cp37-cp37m-manylinux2010_x86_64.whl (488.7 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64

xtgeo-2.7.0-cp37-cp37m-macosx_10_13_x86_64.whl (485.0 kB view details)

Uploaded CPython 3.7mmacOS 10.13+ x86-64

xtgeo-2.7.0-cp36-cp36m-win_amd64.whl (503.8 kB view details)

Uploaded CPython 3.6mWindows x86-64

xtgeo-2.7.0-cp36-cp36m-manylinux1_x86_64.whl (483.8 kB view details)

Uploaded CPython 3.6m

xtgeo-2.7.0-cp36-cp36m-macosx_10_13_x86_64.whl (485.0 kB view details)

Uploaded CPython 3.6mmacOS 10.13+ x86-64

xtgeo-2.7.0-cp27-cp27mu-manylinux1_x86_64.whl (483.3 kB view details)

Uploaded CPython 2.7mu

File details

Details for the file xtgeo-2.7.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: xtgeo-2.7.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 505.6 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.0

File hashes

Hashes for xtgeo-2.7.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 ed0554f14a2ae9f32903c6ece65737f867565fcfa17caa69214632627805d3cf
MD5 95893ddda66973a1a7fa2e3338b2cba1
BLAKE2b-256 082acbd5dda1cef255a6b2952d06678d44cf7bc4571b3306a0f57cc384b1ce1d

See more details on using hashes here.

File details

Details for the file xtgeo-2.7.0-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: xtgeo-2.7.0-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 490.4 kB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.7

File hashes

Hashes for xtgeo-2.7.0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 8c00444e45637a0ba64b4033c7fe3cd5fb979bdcec6543bc0958a20bb0df24d4
MD5 2ae841d52599d1af22e28a43a51e3233
BLAKE2b-256 633cd3bbb2af953329747ed05f36813b20bb30906e4e7e201b7f869b84fc51b5

See more details on using hashes here.

File details

Details for the file xtgeo-2.7.0-cp38-cp38-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: xtgeo-2.7.0-cp38-cp38-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 486.4 kB
  • Tags: CPython 3.8, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.2

File hashes

Hashes for xtgeo-2.7.0-cp38-cp38-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 e77fc011e43904aefde63ff13158ec95ac86082df8ed531861d5dfe1039fad36
MD5 086eefd08a1ddeea81956caad6ddc5a2
BLAKE2b-256 fc61af142f3ac593d9b3726d18f05d373177e84e309625b9680fa8554a20ba2f

See more details on using hashes here.

File details

Details for the file xtgeo-2.7.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: xtgeo-2.7.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 503.8 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.5

File hashes

Hashes for xtgeo-2.7.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 852d135e0013b2f29866b034ad6ef5d307ab700d9e3b3bb13be3acd52603ad16
MD5 2a19a8651869b9b5e38e84d8fcf85a02
BLAKE2b-256 a1101bf2508444e9fc223223acd2606a679a2b0af7ac2cd69cc82d2d75c387ce

See more details on using hashes here.

File details

Details for the file xtgeo-2.7.0-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: xtgeo-2.7.0-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 488.7 kB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.7

File hashes

Hashes for xtgeo-2.7.0-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 9bd0628d3f0b2ba6f0305376eaf8ddb6d23f8052b00311e5b9709b990fa5f2ce
MD5 5ea6a5ae13b938da97b93bb4253c9b95
BLAKE2b-256 69cb118ece5dc181c042629e4b523a1bf57ba3258b56dc5714774db90f5d027f

See more details on using hashes here.

File details

Details for the file xtgeo-2.7.0-cp37-cp37m-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: xtgeo-2.7.0-cp37-cp37m-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 485.0 kB
  • Tags: CPython 3.7m, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6

File hashes

Hashes for xtgeo-2.7.0-cp37-cp37m-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 90b9e15d70f143776bb41712d2487adda5062ae8e00fce62fd2a5d82f1714624
MD5 b7d208770ce7b741841195a7827d1f80
BLAKE2b-256 f52aad179888ecb058c3387408722902bed918c1e3ac0491c40ae96f04219179

See more details on using hashes here.

File details

Details for the file xtgeo-2.7.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: xtgeo-2.7.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 503.8 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.8

File hashes

Hashes for xtgeo-2.7.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 ba53ebdb48bdea70adc17e2bc8e1dc0302c53de437a3f04314b56bf585e12838
MD5 8a3aa29a9c2f978a729f4437575ef842
BLAKE2b-256 1b389f23c6590a787bf3154dba454743c74922b7f639f8e0dbb34ca331c7b842

See more details on using hashes here.

File details

Details for the file xtgeo-2.7.0-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: xtgeo-2.7.0-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 483.8 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.7

File hashes

Hashes for xtgeo-2.7.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 12b1677819e9455a0ad5f7b37a31d2af70230b029742352a7b56b3334bb5626e
MD5 5b2235b0830473eaecd4652c07ab3127
BLAKE2b-256 66c47fb49f40e1774752d6271ac803986778936e0fe6d22b5655fd803e5bfe81

See more details on using hashes here.

File details

Details for the file xtgeo-2.7.0-cp36-cp36m-macosx_10_13_x86_64.whl.

File metadata

  • Download URL: xtgeo-2.7.0-cp36-cp36m-macosx_10_13_x86_64.whl
  • Upload date:
  • Size: 485.0 kB
  • Tags: CPython 3.6m, macOS 10.13+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.8

File hashes

Hashes for xtgeo-2.7.0-cp36-cp36m-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 0931f69f03b16ce4be145e1df372d0f3508580550ef2e6c736bf930c6dfcf405
MD5 2e18b288871a4cb6791b66c3679d7749
BLAKE2b-256 76c44bceb7be3e48f472fbfebff8ee52571667f3be330ece8dd9e07800b604d8

See more details on using hashes here.

File details

Details for the file xtgeo-2.7.0-cp27-cp27mu-manylinux1_x86_64.whl.

File metadata

  • Download URL: xtgeo-2.7.0-cp27-cp27mu-manylinux1_x86_64.whl
  • Upload date:
  • Size: 483.3 kB
  • Tags: CPython 2.7mu
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.7

File hashes

Hashes for xtgeo-2.7.0-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b2f2b98f53d0f98f770c29fe8dbbffc2e09930387e867d60053079f0152e716d
MD5 10721504cc0da18662d73e7cf7a94ea0
BLAKE2b-256 a45c96f060b6411a01dfac61ea7164745e975371710c48a99f9f9bec17c78a44

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page