Short answer
Engineering geology in GIS is about turning site investigation data — boreholes, trial pits, geotechnical tests, geophysics, and terrain — into a spatial ground model that engineers can design against. The work centres on three things: representing borehole and in-situ test data with correct geometry and a relational structure, deriving terrain layers (slope, curvature, depth-to-rockhead) that control ground behaviour, and combining them into ground-condition zones whose criteria are written down and defensible.
The deliverable is rarely "a pretty map." It is a model that answers operational questions: where is rockhead shallow enough for shallow foundations, where does the slope exceed the stability threshold for the material, and where does the route cross compressible ground.
Borehole data: geometry plus a relational schema
A borehole is not a point. It is a collar (a point with X, Y, and accurate ground elevation) plus a sequence of downhole intervals, each with a from-depth, to-depth, and properties (lithology, weathering grade, SPT N-value, RQD, moisture content, plasticity). Modelling this as a single flat layer loses everything below the collar.
Use a relational structure:
bh_collar(bh_id, x, y, ground_level, total_depth, date)— point geometry.bh_interval(bh_id, depth_from, depth_to, lith_code, weathering, spt_n, rqd)— keyed tobh_id.
The de facto interchange standard for this data in geotechnical practice is the AGS format (a structured text format from the Association of Geotechnical and Geoenvironmental Specialists). Import AGS, validate the keys, and load collars into GIS while keeping intervals available for sectioning and 3D modelling.
In PostGIS the elevation belongs in the geometry so sections work in true 3D:
UPDATE bh_collar
SET geom = ST_SetSRID(ST_MakePoint(x, y, ground_level), 27700);
(EPSG:27700 is British National Grid; substitute your project CRS.)
Terrain layers that control ground behaviour
A clean DEM is the backbone. Condition it first — fill spurious pits if you need hydrological continuity — then derive:
gdaldem slope dem.tif slope_deg.tif -compute_edges
gdaldem aspect dem.tif aspect.tif -compute_edges
gdal_translate -b 1 dem.tif dummy.tif # placeholder; curvature via GRASS r.slope.aspect
- Slope angle (degrees) is the primary stability control. Compare it to the friction angle of the material: a slope at 35° in a soil with a residual friction angle near 30° is already a flag.
- Aspect governs weathering exposure, freeze-thaw cycles, and vegetation, all of which affect near-surface strength.
- Profile and plan curvature (via GRASS
r.slope.aspector QGIS) reveal concave hollows that concentrate water and convex noses that shed it. - Flow accumulation highlights where surface and shallow groundwater concentrate, often coinciding with weak, saturated ground.
Depth to rockhead: interpolating from boreholes
A core engineering surface is depth to rockhead (or top-of-competent-rock). Compute it per borehole as ground_level − depth_to_rockhead, then interpolate across the site. Because boreholes are sparse and irregular, kriging or a tensioned spline is usually preferred over inverse-distance weighting, and the result must be reported with an uncertainty estimate — interpolation between two boreholes 80 m apart is a guess, and the map should say so. Clip the interpolation to the convex hull of the boreholes (or a slightly buffered hull); extrapolating a rockhead surface beyond the data is how unfounded contours end up in a design report.
Building a ground-conditions map
Ground-condition zoning combines layers into engineering classes with explicit criteria, not visual judgement. A simple corridor scheme might be:
| Zone | Slope | Superficial cover | Depth to rockhead |
|---|---|---|---|
| A — favourable | < 10° | thin/absent | < 3 m |
| B — moderate | 10–25° | moderate | 3–8 m |
| C — adverse | > 25° | thick compressible | > 8 m |
Implement with raster reclassification and map algebra, keeping the rule table in the metadata so a reviewer can reproduce every cell. Overlay hazard layers — landslide inventory, dissolution features in karst, made ground, flood extent — as flags that escalate a zone regardless of the base score.
Worked example: a road realignment corridor
- Load AGS boreholes; validate that every collar has a real surveyed elevation, not a DEM-sampled one (a 2 m collar error propagates straight into rockhead).
- Build slope and curvature from a 2 m LiDAR DEM.
- Interpolate depth-to-rockhead with ordinary kriging; clip to the borehole hull; export the kriging variance as a confidence layer.
- Reclass slope, rockhead, and superficial thickness into the A/B/C scheme.
- Overlay the landslide inventory and made-ground polygons as escalation flags.
- Generate cross sections along the centreline from the 3D borehole intervals to check the model against the logs.
The output tells the design team which segments need deep foundations or slope stabilisation, and — through the variance layer — where more boreholes are needed before committing.
Common pitfalls and why they happen
- Collars without true elevations. Sampling collar height from the DEM instead of survey introduces metres of vertical error into every section and the rockhead surface, because the DEM is the ground, not the borehole datum.
- Flattening boreholes to points. All downhole information is lost, making sections impossible. Keep the interval table relational.
- Extrapolating interpolated surfaces beyond the data. Contours appear where no borehole controls them, giving false confidence. Clip to the data hull and publish uncertainty.
- IDW for rockhead. Inverse-distance produces bullseyes around boreholes and ignores spatial structure; kriging or splines behave better and quantify error.
- Zoning by eye. Without a written rule table the map cannot be reproduced or defended in review.
QA and validation
Verify every collar elevation against survey records; check AGS key integrity (no orphan intervals); confirm interpolated surfaces are clipped to the data extent and carry a variance/confidence layer; reconcile cross sections against the raw logs; and document the ground-condition rule table and CRS. Spot-check that slope values are sensible at known steep faces.
Bathyl perspective
We build engineering-geology models as relational, sectionable systems with uncertainty made explicit. Boreholes keep their full downhole structure, interpolated surfaces ship with their variance, and ground-condition zones carry the rule table that produced them. An engineer should be able to trace any zone back to the logs and the criteria behind it.
Related reading
- GIS for Landslide Inventory Mapping
- GIS for Infrastructure Route Screening
- GIS for Environmental Baseline Mapping
- Geological visualization