Short answer
Connecting subsurface data (boreholes, geophysics, cross sections, 3D models) to a surface geological map means putting both into one geometric and stratigraphic framework: the same horizontal CRS, a defined vertical datum, georeferenced collars, and a shared unit nomenclature so that a contact mapped at the surface and a contact logged at 40 m depth are demonstrably the same geological boundary. The hard part is not the join — it is being honest about where you have control and where a smooth interpolated horizon is really an interpretation drawn across empty space.
The dimensional jump: 2D map, 3D data
A surface geological map is a 2D projection of where units, contacts, and faults intersect the topographic surface. Subsurface data is inherently 3D and sampled at points and lines. Linking them is a coordinate problem before it is a geological one.
A borehole is anchored by its collar: an X, Y position and a Z elevation. Down-hole observations are recorded against measured depth (depth along the hole). For a vertical hole, true elevation of a logged contact is simply collar_Z - measured_depth. For an inclined or deviated hole you must desurvey: combine collar position, azimuth, and dip (and any down-hole survey stations) to compute the true 3D coordinates of each interval. Skipping desurvey for an angled hole places contacts vertically below the collar when they are actually displaced laterally — by tens of metres in a steep hole.
The collar elevation must be on the same vertical datum as the surface DEM the map is draped on. Mixing a GNSS ellipsoidal collar height with an orthometric DEM offsets the whole hole by the geoid undulation (tens of metres in many regions). This is the single most common reason a borehole "doesn't tie" to the surface model.
Structuring the data, not just drawing it
A digital geological map is not coloured polygons; it is a relational model. The USGS GeMS (Geologic Map Schema) formalises this for exactly this reason: it separates the geometry (MapUnitPolys, ContactsAndFaults) from the science (DescriptionOfMapUnits, the glossary, data sources) and attaches existence and identity confidence and a data source to features. Even if you are not publishing in GeMS, its structure is the right mental model:
- Observed vs inferred. A contact you can stand on is not the same as one projected under cover. GeMS encodes this; your subsurface model should too — a horizon between two boreholes 800 m apart is inferred.
- Source lineage. Every contact, unit, and horizon should carry where it came from (which map, which hole, which survey) so a reviewer can trace it.
- Stratigraphic dictionary. Surface units and down-hole units must reference one controlled vocabulary, or the 2D and 3D pictures will use different names for the same rock and never reconcile.
Building a borehole-to-surface workflow
A practical pipeline in QGIS/PostGIS plus a 3D viewer:
- Standardise the framework. Choose one projected horizontal CRS (e.g. a UTM zone or national grid) and one orthometric vertical datum for the whole project. Reproject the surface map, DEM, and collar table into it.
- Validate collars. Load collars as points; overlay on the DEM and on the surface map. A collar whose elevation differs from the DEM by more than survey tolerance signals a datum or coordinate error — investigate before modelling.
- Desurvey inclined holes from collar + survey records to get true 3D interval coordinates. Store intervals (from-depth, to-depth, unit, description) in a child table keyed to the borehole ID.
- Tie contacts to surface units. Map each down-hole contact to the corresponding surface MapUnit so the same boundary is one object in 2D and 3D.
- Interpolate horizons carefully (see below), honouring faults as barriers rather than smoothing across them.
- Build cross sections along chosen lines, projecting nearby holes onto the section with a stated projection distance, and reconcile them against the surface map where the section crosses mapped contacts.
- Publish as data, not a flat image: a GeoPackage or PostGIS database where units, contacts, holes, and confidence are queryable.
Interpolation: the seductive smooth surface
The most dangerous output in subsurface mapping is a beautiful, smooth interpolated horizon (kriged or splined) built from a handful of clustered boreholes. The interpolator produces a confident-looking surface everywhere, including kilometres from the nearest control. Three discipline points:
- Map control density beside the surface. Show borehole locations and, ideally, a distance-to-nearest-hole raster so a reader sees where the surface is data-driven and where it is invention.
- Honour structure. A fault offsets a horizon; an interpolation that smooths across it produces a geologically impossible continuous surface. Use fault polylines as barriers/discontinuities in the interpolation.
- Choose the method honestly. Inverse-distance and splines extrapolate smoothly; kriging at least gives a variance surface you can publish as uncertainty. Whatever the method, present the horizon as one interpretation, not a measurement.
Cross sections as a reconciliation tool
A cross section is where surface mapping and subsurface data must agree. Where the section line crosses a mapped surface contact, the projected dip from boreholes and the surface intersection should be consistent; where they are not, you have found either a data error or a real structural complication worth flagging. Always record the projection distance (how far off-line holes were pulled onto the section) — a hole projected 300 m onto a section is much weaker evidence than one on the line.
Validation and QA
- Datum tie-out: collar elevations should match the DEM within survey tolerance; a consistent offset means a vertical datum mismatch (likely ellipsoidal vs orthometric).
- Stratigraphic consistency: down-hole unit names must resolve against the surface unit dictionary; orphans indicate vocabulary drift.
- Topology: surface contacts and polygons should be clean (no slivers, gaps, or unclosed rings) before anything is built on them.
- Interpolation reality check: overlay the interpolated horizon on borehole control and confirm the surface honours every tie point and does not assert detail where there is no data.
Common pitfalls and why they happen
- Ellipsoidal collars on an orthometric map. Holes float or sink relative to the surface by the geoid offset. Happens because GNSS outputs ellipsoidal height by default.
- No desurvey on inclined holes. Contacts plotted straight below the collar; the error grows with depth and dip. Happens when a vertical-hole assumption is applied to angled drilling.
- Smooth horizons sold as fact. A polished kriged surface implies certainty the data does not support. Happens because interpolators always return a complete surface.
- Colours as the data model. Treating fill colour as the unit definition loses descriptions, ages, sources, and confidence — exactly what makes the map auditable.
- Mixing map scales silently. Combining a 1:250,000 regional map with site boreholes without stating the interpretation limit invites over-reading of the coarse map.
Bathyl perspective
We treat geological mapping as turning expert interpretation into an inspectable system: the surface map, the boreholes, and the 3D model share one datum and one stratigraphy, and confidence is a queryable attribute rather than a caveat in the legend. The goal is a deliverable that stays scientifically careful while being easy to interrogate — so a reviewer can see not just what was interpreted, but how well it is constrained.
Related reading
- Cross Section Data in GIS Workflows
- GIS for Hydrogeology Screening
- Remote Sensing for Geological Mapping
- Geological visualization