Reading data#

GeoST offer various functions to read and parse data to GeoST data objects. Generally speaking, data can either be loaded from (local) files or is requested from a service like the BRO. The raw data is then parsed to a GeoST data object such as a BoreholeCollection or CptCollection.

Supported subsurface data#

In the current state of this package there is a limited number of local file formats and services supported. The below tables are up-to-date with the currently supported data sources.

Subsurface point data#

By subsurface point data we mean layered data (e.g. boreholes) or discrete/measurement data (e.g. well logs) along the vertical axis (depth with respect to datum) at a single point (geographic lat/lon).

File format/data service

Read function

Returned GeoST object

Description

GeoST borehole parquet or csv

read_borehole_table

BoreholeCollection or LayeredData

GeoST native format. Result of to_parquet or to_csv exports.

GeoST CPT parquet or csv

read_cpt_table

CptCollection or DiscreteData

GeoST native format. Result of to_parquet or to_csv exports.

NLOG excel export

read_nlog_cores

BoreholeCollection or LayeredData

Reader for NLOG deep cores, see here.

UU LLG cores

read_uullg_tables

BoreholeCollection or LayeredData

Reader for csv distribution of Utrecht University student boreholes.

BORIS XML

read_xml_boris

BoreholeCollection or LayeredData

Reader for XML exports of the BORIS borehole description software.

GEF CPTs

read_gef_cpts

CptCollection or DiscreteData

Reader for GEF CPT files.

BRO BHR-P

get_bro_objects_from_bbox or get_bro_objects_from_geometry

BoreholeCollection or LayeredData

BRO soil cores as distributed through the BRO

Subsurface model data#

By subsurface model data we mean voxel models (such as GeoTOP) or layer models (such as REGIS).

File format/data service

Read function

Returned GeoST object

Description

Generic Voxelmodel

VoxelModel

VoxelModel

Generic reader for a voxelmodel presented in NetCDF format (readable as xarray dataset)

GeoTOP NetCDF

GeoTop.from_netcdf

VoxelModel

Reader for GeoTOP NetCDF distribution

GeoTOP OpenDAP

GeoTop.from_opendap

VoxelModel

Reader for GeoTOP OpenDAP distribution

Data reading examples#

import geost

# Read a few BRO soil cores in a small area
boreholes = geost.get_bro_objects_from_bbox("BHR-P", 141470, 141700, 455000, 455300)

print(type(boreholes))
boreholes.header
<class 'geost.base.BoreholeCollection'>
PointHeader instance containing 6 objects
                nr       x       y  surface   end               geometry
0  BHR000000085497  141671  455122     1.99  0.49  POINT (141671 455122)
1  BHR000000114014  141523  455073     2.05  0.55  POINT (141523 455073)
2  BHR000000120513  141580  455167     2.01  0.51  POINT (141580 455167)
3  BHR000000160549  141622  455034     2.03  0.53  POINT (141622 455034)
4  BHR000000206176  141522  455275     1.89  0.39  POINT (141522 455275)
5  BHR000000247842  141642  455278     2.12  0.62  POINT (141642 455278)
from geost.bro import GeoTop

# Get corresponding voxels of the GeoTOP model
geotop = GeoTop.from_opendap(bbox=(141470, 455000, 141700, 455300))

geotop
GeoTop
Data variables:
    strat    (y, x, z) float32 8kB ...
    lithok   (y, x, z) float32 8kB ...
    kans_1   (y, x, z) float32 8kB ...
    kans_2   (y, x, z) float32 8kB ...
    kans_3   (y, x, z) float32 8kB ...
    kans_4   (y, x, z) float32 8kB ...
    kans_5   (y, x, z) float32 8kB ...
    kans_6   (y, x, z) float32 8kB ...
    kans_7   (y, x, z) float32 8kB ...
    kans_8   (y, x, z) float32 8kB ...
    kans_9   (y, x, z) float32 8kB ...
    onz_lk   (y, x, z) float32 8kB ...
    onz_ls   (y, x, z) float32 8kB ...
Dimensions: {'x': 2, 'y': 3, 'z': 313}
Resolution (y, x, z): (100.0, 100.0, 0.5)