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) Any

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

run_preview(params: PreviewParams) list[tuple] | None

Execute a synchronous drillhole preview.

This mimics the legacy generate_drillhole_data but is now managed by the orchestrator.