# sec_interp.core.services.drillhole_service module

Drillhole Data Processing Service.

Service for processing and projecting drillhole data (collars, surveys, intervals).

class sec_interp.core.services.drillhole_service.DrillholeService

  Bases: `object`

  Service for processing drillhole data.

  project_collars(collar_layer: qgis.core.QgsVectorLayer, line_geom: qgis.core.QgsGeometry, line_start: qgis.core.QgsPointXY, distance_area: qgis.core.QgsDistanceArea, 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, dem_layer: qgis.core.QgsRasterLayer | None, line_crs: qgis.core.QgsCoordinateReferenceSystem | None = None) → list[tuple[Any, float, float, float, float]]

    Project collar points onto section line using spatial optimization.

  process_intervals(collar_points: list[tuple], collar_layer: qgis.core.QgsVectorLayer, survey_layer: qgis.core.QgsVectorLayer, interval_layer: qgis.core.QgsVectorLayer, collar_id_field: str, use_geometry: bool, collar_x_field: str, collar_y_field: str, line_geom: qgis.core.QgsGeometry, line_start: qgis.core.QgsPointXY, distance_area: qgis.core.QgsDistanceArea, buffer_width: float, section_azimuth: float, survey_fields: dict[str, str], interval_fields: dict[str, str]) → tuple[list[GeologySegment], list[tuple[Any, list[tuple[float, float]], list[GeologySegment]]]]

    Process drillhole interval data and project onto the section.