21 May 2021
DataHub for geoscientific data in Python. Two main purposes:
Unify geometric data into data objects (using numpy arrays as memory representation) that all the packages of the stack understand
- Basic interactions with those data objects:
The difference between data levels is not which data they store but which data they parse and understand. The rationale for this is to be able to pass along any object while keeping the I/O in subsurface:
HUMAN \‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾/\ \= = = = = = = = = = = = = = /. \ -> Additional context/meta information about the data \= = = = geo_format= = = = /. . \ \= = = = = = = = = = = = /. . . \ -> Elements that represent some \= = = geo_object= = = /. . . . \ geological concept. E.g: faults, seismic \= = = = = = = = = = /. . . . ./ \= = element = = = /. . . . / -> type of geometric object: PointSet, \= = = = = = = = /. . . ./ TriSurf, LineSet, Tetramesh \primary_struct/. . . / -> Set of arrays that define a geometric object: \= = = = = = /. . ./ e.g. *StructuredData*, *UnstructuredData* \DF/Xarray /. . / -> Label numpy.arrays \= = = = /. ./ \array /. / -> Memory allocation \= = /./ \= // \/ COMPUTER
subsurface is still in early days; do expect things to change. We
welcome contributions very much, please get in touch if you would like to add
support for subsurface in your package.
An early version of the documentation can be found here:
pip install subsurface
conda install -c conda-forge subsurface
Be aware that to read different formats you will need to manually install the
specific dependency (e.g.
welly to read well data).
The only requirement for
xarray (which, in turn,
There are many optional requirements, depending on the data format you want to
read/write. Currently, the
requierements_opt.txt reads like:
# Currently xlrd 2 breaks things xlrd~=1.2 # For reading xlsx # There is an open PR for striplog git+https://github.com/Leguark/striplog.git welly >= 0.4.8 segyio matplotlib pyvista geopandas rasterio imageio scipy shapely requests ezdxf trimesh # to fix dxf meshes pooch netcdf4 scooby