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 FileHeader BlockFile metadata and boring description parametersData BlockLayer-by-layer soil description dataGEF Identification#GEFIDGEF version and format identification#COLUMNTEXTText data preparation flag#COLUMNSEPARATORField separator character#RECORDSEPARATORRecord separator characterFile Metadata#FILEOWNERFile creator name#FILEDATEFile creation date#COMPANYIDResponsible company informationProject Information#PROJECTIDProject identification#TESTIDBorehole identification number#REPORTCODEReporting procedure specification#MEASUREMENTCODEDescription methodologyCoordinate & Reference Systems#XYIDHorizontal coordinates (required under NEN 5104)#ZIDSurface elevation and height reference systemData Structure Definition#COLUMNNumber of numerical data columns#COLUMNINFOColumn definitions and units#LASTSCANNumber of data records (layers)Measurement Parameters#MEASUREMENTVARNumerical measurement parameters#MEASUREMENTTEXTText measurement parameters (some required, some optional)Specimen Data#SPECIMENVARNumerical specimen parameters#SPECIMENTEXTText specimen parametersFile Relationships#PARENTParent file references#CHILDChild file references (e.g., piezometer data)Layer GeometryTop and bottom depths of soil layersSoil ClassificationSoil type according to classification systemAdditional PropertiesOptional soil properties and characteristicsLayer DescriptionTextual 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.