# 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