Production

Orebody · Drilling data

Drillhole & QAQC

Import collar, survey, assay and geology data from Excel or Access, desurvey holes, run QA/QC and keep a per-user, row-level audit trail — built for data an auditor has to be able to explain.

See it

What it does

QA/QC built in

CRM/standard/blank/duplicate model with certified means; checks record z-score, ARD, percent-difference and pass/warn/fail.

Minimum-curvature desurvey

Standard dogleg desurvey shared between the 3D viewer and the resource estimator.

Access/MDB import wizard

Reads .mdb/.accdb via three auto-selected backends — identical on a laptop or a headless container.

Heuristic column mapping

Auto-classifies tables and detects element + unit on assay columns, all user-overridable.

Transactional commit

Upserts holes, surveys, samples and assays in one atomic transaction, stamped with an import batch — re-import is safe.

Row-level audit

Full history with created/updated-by stamping; bulk-setup noise suppressed so tracked edits stay meaningful.

How it works — the engineeringTechnical detail

Minimum-curvature desurvey (numpy/pandas), django-simple-history for row-level audit, a thread-local audit middleware, multi-backend Access parsing and regex heuristics for mapping.

drillhole/services/ · desurvey · mdb_reader · mdb_commit · column_mapper · audit.py