The Geological Subsurface Toolbox (GeoST) package is designed to be an easy-to-use Python interface for working with subsurface point data in The Netherlands (boreholes, well logs and CPT's). It provides selection, analysis and export methods that can be applied generically to the loaded data. It is designed to connect with other Deltares developments such as iMod and DataFusionTools.
The internal BoreholeCollection, LogCollection and CptCollection classes use Pandas for storing data and header information. It utilizes a custom, lightweight validation module inspired by the Pandera API. For spatial functions Geopandas is used. The package also supports reading/writing parquet and geoparquet files through Pandas and Geopandas respectively.
GeoST is a work-in-progress and currently supports a limited number of data sources.
In a Python >= 3.12 environment, install the latest stable release using pip:
pip install geost
Or the latest (experimental) version of the main branch directly from GitHub using:
pip install git+https://github.com/Deltares-research/geost.git
We use Pixi for package management and workflows.
With pixi installed, navigate to the folder of the cloned repository and run the following to install all GeoST dependencies:
pixi install
Next install GeoST in editable mode by running the pixi task 'install':
pixi run install
See the Pixi documentation for more information.
We collect examples that make use of GeoST and other Subsurface Toolbox developments in the Deltares sst-examples repository.
After loading data from one of the supported formats it will automatically be validated. If the validation is succesful, a Collection object will be returned depending on your input data type (mixed CPT/well log/borehole collections are not allowed). A collection object consists of two main attributes: the header and data. The header contains a table with one entry per object and provides information about the name, location, surface level, and borehole/log/cpt start and end depths. The data attribute is a table that includes the data for every described layer (boreholes) or measurement (well logs, cpt's).
The collection object comes with a comprehensive set of methods that can be applied generically while ensuring that the header and data remain synchronized:
For a better overview of basic functionality, see the Basics Tutorial.
You can contribute by testing, raising issues and making pull requests. Some general guidelines:
MIT license (Note: may change to a copyleft license in the future, depending on Deltares management decisions)