sec_interp.core.domain.task_inputs module

Data Transfer Objects for async task inputs.

class sec_interp.core.domain.task_inputs.DrillholeTaskInput(line_geometry_wkt: str, line_start_x: float, line_start_y: float, line_crs_authid: str, section_azimuth: float, buffer_width: float, collar_id_field: str, use_geometry: bool, collar_x_field: str, collar_y_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

Data Transfer Object for DrillholeGenerationTask.

Encapsulates all data required to project and process drillholes in a background thread without accessing QGIS API objects.

line_geometry_wkt

Section geometry in WKT.

Type:

str

line_start_x

Start vertex X.

Type:

float

line_start_y

Start vertex Y.

Type:

float

line_crs_authid

CRS of the section line.

Type:

str

section_azimuth

Azimuth orientation in degrees.

Type:

float

buffer_width

Maximum horizontal projection buffer.

Type:

float

collar_id_field

ID field name.

Type:

str

use_geometry

Whether to use geometric coordinates for collars.

Type:

bool

collar_x_field

Fallback X field name.

Type:

str

collar_y_field

Fallback Y field name.

Type:

str

collar_z_field

Collar elevation field.

Type:

str

collar_depth_field

Total depth field.

Type:

str

collar_data

List of detached features.

Type:

list[dict[str, Any]]

survey_data

Dictionary mapping hole IDs to survey readings.

Type:

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

interval_data

Dictionary mapping hole IDs to geological logs.

Type:

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

pre_sampled_z

Dictionary of pre-calculated collar elevations.

Type:

dict[Any, float]

buffer_width: float
collar_data: list[dict[str, Any]]
collar_depth_field: str
collar_id_field: str
collar_x_field: str
collar_y_field: str
collar_z_field: str
interval_data: dict[Any, list[tuple[float, float, str]]]
line_crs_authid: str
line_geometry_wkt: str
line_start_x: float
line_start_y: float
pre_sampled_z: dict[Any, float]
section_azimuth: float
survey_data: dict[Any, list[tuple[float, float, float]]]
use_geometry: bool
class sec_interp.core.domain.task_inputs.GeologyTaskInput(line_geometry_wkt: str, line_start_x: float, line_start_y: float, crs_authid: str, master_profile_data: list[tuple[float, float]], master_grid_dists: list[tuple[float, tuple[float, float], float]], outcrop_data: list[dict[str, Any]], outcrop_name_field: str, tolerance: float = 0.001)

Bases: object

Data Transfer Object for GeologyGenerationTask.

Contains all necessary data to process geological profiles without accessing QGIS layers directly.

line_geometry_wkt

Section geometry in WKT format.

Type:

str

line_start_x

X coordinate of section start vertex.

Type:

float

line_start_y

Y coordinate of section start vertex.

Type:

float

crs_authid

Authority ID for the CRS (e.g., ‘EPSG:4326’).

Type:

str

master_profile_data

Sampled topography elevations.

Type:

list[tuple[float, float]]

master_grid_dists

Grid distances for point sampling.

Type:

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

outcrop_data

Detached outcrop features (geometries and attrs).

Type:

list[dict[str, Any]]

outcrop_name_field

Name of the field containing unit info.

Type:

str

tolerance

Distance tolerance for intersection sampling.

Type:

float

crs_authid: str
line_geometry_wkt: str
line_start_x: float
line_start_y: float
master_grid_dists: list[tuple[float, tuple[float, float], float]]
master_profile_data: list[tuple[float, float]]
outcrop_data: list[dict[str, Any]]
outcrop_name_field: str
tolerance: float = 0.001