Short answer

Bringing geochemistry into GIS is less about plotting points and more about respecting how assay data behaves: it is censored at detection limits, right-skewed across orders of magnitude, sensitive to sampling medium and analytical method, and often delivered in a coordinate system that does not match your basemap. Done carelessly, a geochemical layer produces convincing colour maps that are statistically wrong — substituting zeros for below-detection values, interpolating across geological boundaries that should break the surface, or stretching a skewed distribution so every sample looks either background or anomalous. Done well, geochemistry in GIS reveals genuine anomalies and supports defensible exploration and environmental decisions.

The non-negotiables before you map anything: confirm the CRS and units, handle censored data correctly, and consider a log transform.

Getting the data in correctly

Geochemistry usually arrives as a flat table — one row per sample, columns for element concentrations plus coordinates. The first job is loading it as points with a correct, declared CRS.

In PostGIS, build geometry explicitly from the coordinate columns and set the SRID:

ALTER TABLE assays ADD COLUMN geom geometry(Point, 32633);
UPDATE assays
SET geom = ST_SetSRID(ST_MakePoint(easting, northing), 32633);

ST_SetSRID only labels the geometry — it does not transform. Use it when the easting/northing are already in EPSG:32633 (UTM 33N here). If the lab returned lat/lon (EPSG:4326) but your project works in UTM, you build in 4326 then transform:

UPDATE assays
SET geom = ST_Transform(ST_SetSRID(ST_MakePoint(lon, lat), 4326), 32633);

The single most common ingestion error is assuming the assay coordinates share the basemap CRS. They frequently do not — historical datasets often use a national grid or an older datum. Verify by plotting a handful of samples over a known basemap before trusting the whole set.

Keep units explicit in column names or metadata: ppm, ppb, and wt% are routinely mixed in the same dataset, and a silent ppb-vs-ppm error is a factor of 1,000.

Censored data: below the detection limit

Analytical methods cannot measure below a detection limit (DL). A gold result of <0.5 ppm means "somewhere between 0 and 0.5", not 0. How you treat these censored values changes the statistics materially:

  • Never substitute 0. It biases the mean down and corrupts log transforms (log of 0 is undefined).
  • Never delete them. Below-detection samples are real information — usually background.
  • Simple substitution of DL/2 (here 0.25 ppm) is the common quick approach and is acceptable when the censored fraction is small.
  • For proper statistics, use methods built for left-censored data: Kaplan-Meier, regression on order statistics (ROS), or maximum-likelihood estimation. These are standard in environmental geochemistry and give unbiased summary statistics when a large fraction of data is censored.

Flag censored values in a separate column so the choice of treatment stays visible and reversible.

Why you log-transform

Element concentrations are typically log-normal: a long right tail, values spanning several orders of magnitude, and a few high outliers that dominate any linear stretch. If you symbolise raw concentrations with equal-interval classes, almost every sample falls in the lowest class and the few high values consume the rest — the map shows nothing useful.

Transform first:

  • Apply log10(concentration) (after censored-value treatment) before classification or interpolation.
  • Define class breaks by percentile (quantile classification) or by standard deviations on the log scale, so each class holds a meaningful share of samples.
  • Anomaly thresholds are commonly set at the 95th or 98th percentile, or at mean + 2 standard deviations on the log scale — a long-standing convention in exploration geochemistry, used as a guide rather than an absolute cutoff.

For multi-element or compositional work, remember that concentrations are compositional data (they sum to a constraint), so log-ratio transforms (CLR/ALR) are more correct than raw logs when comparing element proportions.

Interpolation: choose deliberately

Turning points into a continuous surface is tempting but easy to abuse.

  • IDW (inverse distance weighting) is simple, deterministic, and robust for dense, fairly even sampling. It honours sample values and never predicts outside their range. It says nothing about uncertainty and produces "bullseyes" around isolated highs.
  • Kriging models the spatial autocorrelation through a variogram, can incorporate anisotropy (e.g. mineralisation following a structural trend), and crucially returns a prediction variance surface — a map of where the estimate is reliable. It assumes stationarity and needs enough samples to fit a variogram (a rough working minimum is on the order of 100+ samples).
  • For sparse or clustered sampling, often the honest product is well-symbolised graduated points, not a smooth surface that implies data where there is none.

In QGIS, IDW and TIN interpolation are in the Processing toolbox ("IDW interpolation"); geostatistical kriging is better handled in SAGA, GRASS, R (gstat), or ArcGIS Geostatistical Analyst.

A critical interpolation rule for geology: do not interpolate across geological boundaries that should compartmentalise the data. Smoothing a soil-sample surface across a major fault or a lithological contact blends populations that are genuinely different. Where possible, interpolate within domains or mask by mapped geology.

Common pitfalls and why they happen

  • Wrong CRS on ingestion. Assay coordinates assumed to match the basemap but stored in a different grid or datum — samples land in the wrong place, sometimes subtly. Always overlay a sample on a known feature first.
  • Below-detection treated as zero. Biases every downstream statistic and breaks the log transform; the result looks plausible but is wrong.
  • Linear classification of skewed data. Produces a map where everything is "low" except a handful of points; masks real structure. Log + percentile classes fix it.
  • Mixed sampling media or methods compared directly. Stream sediment, soil, and rock-chip values, or results from different labs/digestions, are not interchangeable. Compare like with like, and record method and medium per sample.
  • Smooth surfaces from sparse data. Interpolating a continuous grid from a few scattered samples implies confidence that does not exist and hides the sampling pattern. Show the points.

QA/QC and validation

Geochemical QA/QC is its own discipline: check inserted standards (certified reference materials) plotted against their certified values, duplicates for analytical and field reproducibility, and blanks for contamination, before the data is trusted. In GIS, validate spatially: confirm sample locations against survey records, check for impossible coordinates (e.g. (0,0) or points in the ocean), and verify units are consistent across batches. For interpolation, hold out a subset of samples and compare predictions (cross-validation); for kriging, inspect the variance surface and treat high-variance areas as unmapped. Keep the censoring treatment, transform, and interpolation parameters documented so the surface is reproducible.

Bathyl perspective

We handle geochemistry as statistical data that happens to have coordinates, not as points to be smoothed into a pretty surface. Getting censoring, the log transform, and domain-aware interpolation right is what separates a map that finds a real anomaly from one that invents one — and it is exactly where rushed exploration GIS goes wrong.

Related reading

Sources