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