XTGeo is a Python library for 3D grids, surfaces, wells, etc
Project description
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 to ROXAR API python for several data types is supported (see note later)
- Currently, Linux only is supported
Installation
For some versions, PYPI installation is possible:
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.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
vspfilter
for points/polygonsto_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:
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
Built Distributions
Hashes for xtgeo-2.1.1a4-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 465c3ce7591623329341a569b056416b93edc32a5ddfb714d21b45bcf0e58e20 |
|
MD5 | 2d7e2216f94d8315a9342bb767b6dd56 |
|
BLAKE2b-256 | fd6f3cb79e7199ad362e867a39e7c38aa539b4a5c06c8886c1d369237b74fb36 |
Hashes for xtgeo-2.1.1a4-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 725eac1a6af62b0f06ff865e73bcd256fd5b9e3a1f1c21b6ce55448e429886ed |
|
MD5 | 7e1179eed2110a1dabf545da4baa85ba |
|
BLAKE2b-256 | 5175cc8d4364955444ed2b34c6724d13e8561d8ab69810f0908a8fb05d3218db |
Hashes for xtgeo-2.1.1a4-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a15b1ef0e726e385ab8e202d1066cbe641014263b489cd206a247a07868c49c8 |
|
MD5 | c2bfe2a39ac92330662eb9f5bf7ded38 |
|
BLAKE2b-256 | bc05b665733d8044e06dad6d8e96bdfc5102e7c486f3b9f19b04f1152c55a375 |
Hashes for xtgeo-2.1.1a4-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b671a9215195021e67287f87965bf33ce0be2f5449016661feb12ca960fd5be1 |
|
MD5 | 4ba5e763b1a3abcf8d83f71104812d28 |
|
BLAKE2b-256 | 9f841b1b0409d7dddb977aaf681e3b59827fd0edb730eae27d0e6f719b65100c |
Hashes for xtgeo-2.1.1a4-cp27-cp27mu-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56ed7d64fdf0fb05dc543abeaca7023ff41b4ed06102241319ff4e0096d02c6f |
|
MD5 | ecf366bdef7594058c4abfb8356bfa01 |
|
BLAKE2b-256 | c8392380af3c4bdfdd3a6810434eafaccde1e8a11e92000cec4c047f96537a96 |