sec_interp.core.services.drillhole_service module

Drillhole Data Processing Service (pure computation).

This module provides the pure computation for projecting and processing drillhole data — collar projection, trajectory calculation, and interval interpolation — operating on a detached DrillholeContext.

class sec_interp.core.services.drillhole_service.DrillholeService(collar_processor: CollarProcessor | None = None, survey_processor: SurveyProcessor | None = None, interval_processor: IntervalProcessor | None = None, data_fetcher: Any | None = None, trajectory_engine: TrajectoryEngine | None = None)

Bases: IDrillholeService, TranslatableMixin

Service for processing and orchestrating drillhole data (QGIS-agnostic).

__init__(collar_processor: CollarProcessor | None = None, survey_processor: SurveyProcessor | None = None, interval_processor: IntervalProcessor | None = None, data_fetcher: Any | None = None, trajectory_engine: TrajectoryEngine | None = None) → None

Initialize the service with specialized processors.

Parameters:
  • collar_processor – Optional collar processor.

  • survey_processor – Optional survey processor.

  • interval_processor – Optional interval processor.

  • data_fetcher – Kept for backward-compatible construction (unused).

  • trajectory_engine – Optional trajectory engine.

process_context(context: DrillholeContext, feedback: Any | None = None) → tuple[list[GeologySegment], list[DrillholeProjection]] | None

Process drillholes from a detached context (pure computation).

Parameters:
  • context – Fully-detached drillhole data from DrillholeExtractor.

  • feedback – Optional feedback object for progress/cancellation.

Returns:

A tuple (geol_data, drillhole_data), or None if cancelled.