E3 · Publication Volume 25
Drillhole Coordinate Frames
collar, azimuth, dip, measured depth, true vertical depth and local vectors
Learning objectives
- Explain the decision and evidence boundary for collar, azimuth, dip, measured depth, true vertical depth and local vectors.
- Design and implement the relevant drillhole data or algorithm contract without hidden conventions.
- Separate hard release gates from diagnostics, interpretation and authorised review.
- Produce a coordinate-convention contract and verified direction-vector test set from synthetic evidence.
The lesson is complete only when the learner can defend the data model, algorithm, tests and release decision. An attractive trajectory or clean interval table without source evidence and executable invariants remains unverified.
This is a general, institution-neutral tutorial with no relationship to any company or individual. All borehole identifiers, coordinates, depths, directions, intervals, values and review events in the lesson are synthetic and must not be used for an operational decision.
Decision context
A trajectory cannot be interpreted from three coordinate columns and two angle columns alone. The decision boundary must declare the collar reference, horizontal and vertical coordinate references, axis order, positive vertical direction, north reference, angular units and angle convention. It must also state whether the stored depth is path length from a drilling datum, vertical displacement, elevation or another coordinate. The calculation is blocked if any convention that can reverse or rotate the path is unresolved.
Write the intended use, consequence of error, required evidence and release authority before selecting a transformation. The same source can be suitable for exploratory display and unsuitable for a released derivative. Fitness is evaluated against a versioned contract and use, not attached permanently to a file.
Core concept
Use one explicit internal frame for calculation and make every input convention map into it. In this tutorial the internal frame is East–North–Up, azimuth is clockwise from declared north, and inclination is measured from the downward vertical. For inclination I and azimuth A, the unit tangent is \mathbf{t}=(\sin I\sin A,\sin I\cos A,-\cos I). Measured depth MD is cumulative distance along the path; true vertical depth is a separate derived coordinate whose sign and datum must be declared. A source dip measured downward from horizontal is therefore not used until it has been converted to the internal inclination convention.
Keep received observations, accepted evidence views and derived results as distinct objects. This separation allows corrected evidence or a changed method to generate a new result without rewriting history. Every derived coordinate or interval therefore answers both a scientific question and a provenance question.
Algorithm and data model
Model the collar as a versioned spatial observation with coordinates, coordinate reference, survey epoch where relevant, vertical datum, drilling datum and uncertainty. Model each direction as a unit vector plus the source angles and their declared convention. Retaining both the source representation and the canonical vector makes conversions auditable. At a vertical station azimuth is geometrically indeterminate; software may retain a source azimuth for continuity, but must not claim that it constrains the vertical direction.
Define the transformation as a pure, testable operation wherever practical. Parsing, semantic validation, evidence selection, numeric calculation and release evaluation are separate stages. Each stage emits structured output and does not depend on interface state, filename order or an undocumented default.
Constraints and invariants
| Invariant | Executable or review test | | --- | --- | | Every position declares horizontal and vertical references. | Reject or quarantine any record that violates this condition and record the exact affected identity. | | Every angle declares origin, sense, unit and north reference. | Evaluate this condition before producing a derived trajectory or interval result. | | Measured depth and vertical depth remain distinct quantities. | Preserve received evidence and create a new version for every correction. | | Source angles and canonical vectors are both preserved. | Include the rule identifier, observed value and resolution state in audit output. |
An invariant must survive import, conversion, processing, export and rerun. A failed hard invariant produces no apparently valid substitute. Diagnostic checks remain visible with their threshold, scope and evidence, and require a reviewed rule before they can trigger correction.
Quantitative reasoning
Verify the vector norm ||\mathbf{t}||_2=1 within a declared numerical tolerance. Round-trip each non-singular test direction from angles to vector and back, comparing azimuth with circular distance d_A=\min(|A_1-A_2|,2\pi-|A_1-A_2|). Test the cardinal directions, vertical down, near vertical, near horizontal and the 0/2\pi wrap. Translation applies only to positions; rotation applies to vectors; a datum or grid correction must never be smuggled in as a label change.
Every reported metric includes units, numerator and denominator where applicable, exclusions, comparison policy and evaluation version. Aggregate values are stratified when pooling could hide a local failure. A quantitative diagnostic supports a decision but cannot overrule missing identity, invalid geometry, unresolved conflict or broken lineage.
Evidence and uncertainty
Keep observation uncertainty, interpolation uncertainty, numeric approximation and metadata uncertainty separate. A smooth trajectory can be numerically precise while still poorly constrained between widely spaced stations. An exact interval overlay can still be unfit when a source depth datum is unknown. The assessed result states which uncertainty belongs to the phenomenon, the measurement, the algorithm and the interpretation.
Build an evidence packet containing immutable received records, semantic declarations, validation findings, algorithm inputs and outputs, test results, reviewer decisions and fingerprints. Contradictory evidence remains available. When a required dependency cannot be resolved, return an explicit unknown, conflict or blocked status rather than choosing the most convenient value.
Interfaces and storage
Interfaces transmit identities, units, coordinate and depth references, conventions, value states, versions and lineage beside numeric values. A trajectory exchange includes collar and datum context, accepted station identities, algorithm identity, numerical policy and output coordinates. An interval exchange includes support type, boundary convention and source links. Structured errors identify the record, field, observed value, expected condition and rule.
Store authoritative received evidence separately from reproducible derivatives and disposable views. Indexes, caches and visualisations may improve access but cannot become the only copy of angle conventions, accepted-station decisions or interval lineage. Export round trips verify that identifiers, precision, ordering and missing states survive encoding changes.
Governance and review
Assign responsibilities to roles rather than named organisations or people: evidence custodian, rule author, implementation maintainer, independent validator and release reviewer. A role may propose a correction but cannot erase source evidence. Rule and algorithm changes are reviewed, versioned and evaluated against fixed regression fixtures before they affect a release.
Exceptions are explicit decisions with scope, rationale, evidence, approving role, affected versions and review trigger. They never rewrite a failed rule and never propagate automatically. The host website has no ownership or scientific-authority role in this workflow; it only delivers the tutorial.
Integration checkpoint
Read the figure as a reasoning map from preserved evidence through explicit conventions, deterministic calculation, validation and release. Each arrow represents a declared relationship or transformation. Integrate a coordinate-convention contract and verified direction-vector test set into the evolving synthetic drillhole package, rerun all earlier fixtures and record any changed assumption.
Synthetic worked example
Synthetic hole SYN-H001 has a collar at local coordinates (5000, 8000, 240) m. One file records azimuth 090 degrees and dip -60 degrees from horizontal; another expects inclination from vertical. The correct conversion gives inclination 30 degrees and a tangent with positive east, zero north and negative up components. Treating -60 as inclination produces an impossible convention and sends the path in the wrong vertical direction. The repaired package preserves the received values, records the conversion and passes cardinal-vector tests.
- Preserve the received records and state the intended decision without correction.
- Resolve identities, units, conventions and evidence eligibility; mark every unresolved item.
- Run the versioned algorithm and tests while retaining intermediate diagnostics.
- Issue accept, reject or quarantine and show how an independent reviewer can reproduce it.
Practice task
Implement the chapter artefact against a synthetic fixture containing one normal case, one boundary case, one invalid case and one unresolved-evidence case. Preserve the received fixture. Produce canonical input, validation findings, derivative output, processing manifest and a short release decision.
Acceptance criteria:
- Every input identity, unit and convention required by the rule is explicit.
- The implementation is deterministic under stable ordering and the declared numerical policy.
- No correction overwrites received evidence or turns unknown into a guessed value.
- All hard failures block the affected derivative and remain machine-readable.
- A second implementation or reviewer can reproduce the result from the package alone.
Submit a coordinate-convention contract and verified direction-vector test set, the golden and adversarial fixtures, exact findings and a limitations note. A screenshot is not sufficient evidence because it does not identify the input version, algorithm or rule configuration.
Common failure modes
- Interpreting dip as inclination without conversion.
- Mixing elevation-up with depth-down in one column.
- Applying grid convergence twice or not at all.
- Treating azimuth at a vertical station as a measured direction.
These failures share a pattern: an implicit convenience is substituted for evidence. Diagnose the earliest boundary where the assumption entered, restore the source statement, make the convention or rule explicit, rerun every dependent derivative and supersede rather than overwrite the affected release.
Review questions
- Why is measured depth not a vertical coordinate?
- Which declarations are needed to interpret azimuth?
- How is a downward-from-horizontal dip mapped to inclination from vertical?
- Why must source angles survive canonical conversion?
For every answer, identify the governing invariant, the evidence needed to evaluate it, the numerical or semantic policy involved and the correct behaviour when the condition fails.
Sources and further reading
- WITSML trajectory best practice, identifying the directional and positional elements needed to interpret a trajectory.
- RESQML 2.0.1 deviation-survey model, relating measured-depth datums, survey stations and computed trajectories.
- USGS Water-Resources Investigations Report 83-4275, documenting tangential and minimum-curvature borehole-survey calculations.
- ISO 19157-1:2023 geographic data quality, a framework for describing and evaluating data quality.