# sec_interp.core.services.drillhole.drillhole_orchestrator module

Orchestrator for drillhole processing tasks.

This module provides the DrillholeTaskOrchestrator, which coordinates the high-level flow of drillhole data processing, including synchronous previews and asynchronous task preparation and execution.

class sec_interp.core.services.drillhole.drillhole_orchestrator.DrillholeTaskOrchestrator(service: DrillholeService)

  Bases: `object`

  Orchestrates high-level drillhole processing workflows.

  This class separates the orchestration (the “how” and “when”) from the business logic (the “what”) contained in DrillholeService.

  __init__(service: DrillholeService) → None

    Initialize with a drillhole service.

    Parameters:

      service – The service containing the core processing logic.

  prepare_task_input(line_layer: QgsVectorLayer, buffer_width: float, collar_layer: QgsVectorLayer, collar_id_field: str, use_geometry: bool, collar_x_field: str, collar_y_field: str, collar_z_field: str, collar_depth_field: str, survey_layer: QgsVectorLayer, survey_fields: dict[str, str], interval_layer: QgsVectorLayer, interval_fields: dict[str, str], dem_layer: QgsRasterLayer | None = None, band_num: int = 1) → DrillholeTaskInput

    Prepare detached domain data for asynchronous processing.

  process_task_data(task_input: DrillholeTaskInput, feedback: Any | None = None) → tuple[list[GeologySegment], list[DrillholeProjection]] | None

    Process drillholes using detached domain data (Thread-Safe).

  run_preview(params: PreviewParams) → list[DrillholeProjection] | None

    Execute a synchronous drillhole preview.