sec_interp.core.domain.task_inputs module

Data Transfer Objects for async task inputs.

class sec_interp.core.domain.task_inputs.DrillholeContext(line_points: list[tuple[float, float]], section_azimuth: float, buffer_width: float, collar_id_field: str, collar_z_field: str, collar_depth_field: str, collar_data: list[dict[str, ~typing.Any]], survey_data: dict[~typing.Any, list[tuple[float, float, float]]], interval_data: dict[~typing.Any, list[tuple[float, float, str]]], pre_sampled_z: dict[~typing.Any, float] = <factory>)

Bases: object

Fully-detached drillhole data (Extract output) for pure computation.

Produced by the GUI DrillholeExtractor adapter and consumed by the QGIS-agnostic DrillholeService. Contains no live QGIS objects.

line_points

Section line vertices as (x, y) tuples.

Type:

list[tuple[float, float]]

section_azimuth

Section orientation in degrees.

Type:

float

buffer_width

Maximum horizontal projection buffer.

Type:

float

collar_id_field

ID field name.

Type:

str

collar_z_field

Collar elevation field.

Type:

str

collar_depth_field

Total depth field.

Type:

str

collar_data

Detached collars ({"id", "point", "attributes"}).

Type:

list[dict[str, Any]]

survey_data

hole_id -> [(depth, azim, incl)].

Type:

dict[Any, list[tuple[float, float, float]]]

interval_data

hole_id -> [(from, to, lith)].

Type:

dict[Any, list[tuple[float, float, str]]]

pre_sampled_z

hole_id -> pre-sampled collar elevation.

Type:

dict[Any, float]

buffer_width: float
collar_data: list[dict[str, Any]]
collar_depth_field: str
collar_id_field: str
collar_z_field: str
interval_data: dict[Any, list[tuple[float, float, str]]]
line_points: list[tuple[float, float]]
pre_sampled_z: dict[Any, float]
section_azimuth: float
survey_data: dict[Any, list[tuple[float, float, float]]]
class sec_interp.core.domain.task_inputs.GeologyContext(master_profile_data: list[tuple[float, float]], master_grid_dists: list[tuple[float, tuple[float, float], float]], outcrops: list[OutcropSegments], tolerance: float = 0.001)

Bases: object

Fully-detached geology data (Extract output) for pure computation.

Produced by the GUI GeologyExtractor adapter and consumed by the QGIS-agnostic GeologyService. Contains no live QGIS objects.

master_profile_data

Sampled topography elevations (dist, elev).

Type:

list[tuple[float, float]]

master_grid_dists

Grid (dist, (x, y), elev) for interpolation.

Type:

list[tuple[float, tuple[float, float], float]]

outcrops

Detached outcrop intersection segments.

Type:

list[sec_interp.core.domain.task_inputs.OutcropSegments]

tolerance

Distance tolerance for intersection sampling.

Type:

float

master_grid_dists: list[tuple[float, tuple[float, float], float]]
master_profile_data: list[tuple[float, float]]
outcrops: list[OutcropSegments]
tolerance: float = 0.001
class sec_interp.core.domain.task_inputs.OutcropSegments(unit_name: str, attributes: dict[str, Any], segments: list[tuple[float, float, str]])

Bases: object

Detached intersection segments for a single outcrop feature.

unit_name

Geological unit name.

Type:

str

attributes

Original feature attributes.

Type:

dict[str, Any]

segments

List of (dist_start, dist_end, wkt) tuples, one per intersection segment along the section line.

Type:

list[tuple[float, float, str]]

attributes: dict[str, Any]
segments: list[tuple[float, float, str]]
unit_name: str