Skip to content

GEF-BORE

GEF-BORE-Report is a legacy data exchange format for documenting and sharing borehole descriptions (boorbeschrijvingen) in the geotechnical engineering. It provides a structured way to capture the visual and tactile observations made during drilling operations.

It is commonly used in the Netherlands and Flanders (Belgium). The format is no longer maintained and technically outdated, but it remains in use due to extensive legacy data.

A GEF-BORE file consists of a Header and a Datablock.

The Header contains structured metadata using keywords that start with #, defining properties from file format version (#GEFID) to drilling methods (#MEASUREMENTTEXT) and coordinate systems (#XYID, #ZID). Key header sections include column definitions (#COLUMNINFO), specimen documentation (#SPECIMENVAR, #SPECIMENTEXT), and measurement parameters (#MEASUREMENTVAR) for borehole geometry and groundwater data.

After it comes the Datablock, containing layer-by-layer soil descriptions with mandatory depth intervals and soil classifications, plus optional textual descriptions of each layer’s characteristics, color, and composition. This text-based structure makes GEF-BORE files human-readable while ensuring machine parsing compatibility across different geotechnical software platforms.

GEF-BORE-Report File Header Block File metadata and boring description parameters Data Block Layer-by-layer soil description data GEF Identification #GEFID GEF version and format identification #COLUMNTEXT Text data preparation flag #COLUMNSEPARATOR Field separator character #RECORDSEPARATOR Record separator character File Metadata #FILEOWNER File creator name #FILEDATE File creation date #COMPANYID Responsible company information Project Information #PROJECTID Project identification #TESTID Borehole identification number #REPORTCODE Reporting procedure specification #MEASUREMENTCODE Description methodology Coordinate & Reference Systems #XYID Horizontal coordinates (required under NEN 5104) #ZID Surface elevation and height reference system Data Structure Definition #COLUMN Number of numerical data columns #COLUMNINFO Column definitions and units #LASTSCAN Number of data records (layers) Measurement Parameters #MEASUREMENTVAR Numerical measurement parameters #MEASUREMENTTEXT Text measurement parameters (some required, some optional) Specimen Data #SPECIMENVAR Numerical specimen parameters #SPECIMENTEXT Text specimen parameters File Relationships #PARENT Parent file references #CHILD Child file references (e.g., piezometer data) Layer Geometry Top and bottom depths of soil layers Soil Classification Soil type according to classification system Additional Properties Optional soil properties and characteristics Layer Description Textual description of each layer

Measurement variables (#MEASUREMENTVAR) in GEF-BORE-Report are optional numerical parameters that provide quantitative information about the borehole, drilling process, samples, and site conditions that cannot be captured in the main data block structure.

#MEASUREMENTVAR = ID, value, unit, description

The GEF-Bore specification reserves IDs 1-50 for standardized measurement variables. Users can define custom measurement variables using IDs 129-1500.

While measurement variables handle numerical data, measurement text variables store coded text information using standardized terminology and abbreviations to ensure consistent interpretation across different organizations and software systems.

#MEASUREMENTTEXT = ID, value, description

Drilling Method Codes are used in Measurement Text Variables to document the drilling techniques employed in different segments of the borehole in MEASUREMENTTEXT IDs 31 to 40.

#MEASUREMENTTEXT = ID, CODE, boormethode

The specimen system handles documentation for up to 200 soil samples collected during drilling. It splits sample data between #SPECIMENVAR (numerical properties like depths and diameters) and #SPECIMENTEXT (codes, dates, and equipment details).

#SPECIMENTEXT = ID, value, description

Specimen texts 1 to 5 are reserved to be able to add comments to the sample.

For example, #SPECIMENTEXT = 1, folie ontbreekt, opmerking monstername1

#SPECIMENVAR = ID, value, unit, description where

  • ID = Index number (calculated using formulas)
  • value = Numerical measurement
  • unit = Measurement unit (m, mm, -)
  • description = Descriptive text in Dutch

The #XYID keyword defines the horizontal coordinate reference system in GEF-Bore files, specifying the positioning datum and location coordinates.

The format is #XYID = code, X, Y, deltaX, deltaY, where code identifies the coordinate system, X and Y provide the boring location coordinates, and deltaX, deltaY indicate positioning accuracy.

For example, #XYID = 31000, 79578.38, 424838.97, 0.02, 0.02 places the test at Dutch RD coordinates (79578.38, 424838.97) with ±2cm accuracy.

This keyword enables places the test in real-world coordinates, which enables integration with GIS systems. This in turn enables integration of geotechnical data alongside structural or building models in spatial context.

Code 00000 allows a local coordinate system with its description in #MEASUREMENTTEXT = 7: For example:

#XYID = 00000, 125000, 450000, 0.1, 0.1
#MEASUREMENTTEXT = 7, Local site grid, origin at main building corner

The #ZID keyword defines the vertical reference system and surface elevation. It takes the format #ZID = code, elevation, accuracy.

  • The code identifies the height reference system
  • Elevation gives the surface level in meters relative to that datum
  • Accuracy specifies measurement precision.

For example, #ZID = 31000, -2.45, 0.01 indicates the ground surface is 2.45 meters below NAP with 1cm accuracy. This keyword is mandatory because all layer depths in the data block are measured downward from this reference surface.

Column Quantities are the standardized physical measurements that can appear in GEF-Bore data columns (#COLUMNINFO). Each has a unique ID number (1-4) that defines what the column contains.

For example #COLUMNINFO = 3, m, depth, 1 tells parsers: “Column 3 contains quantity 1 diepte onderkant laag in m”.

The quantity system ensures a column labeled “1” always means “diepte onderkant laag”, regardless of which software created the file.