# sec_interp.core.interfaces.structure_interface module

Interface for Structure services.

class sec_interp.core.interfaces.structure_interface.IStructureService

  Bases: `ABC`

  Abstract interface for the Structural Projection Service.

  abstractmethod detach_structures(struct_lyr: qgis.core.QgsVectorLayer, line_geom: qgis.core.QgsGeometry, buffer_m: float) → list[dict[str, Any]]

    Extract structure features within buffer into detached dictionaries.

    Parameters:

      - struct_lyr – Layer containing structural measurements.

      - line_geom – Section line geometry.

      - buffer_m – Buffer distance.

    Returns:

      List of feature data dictionaries (wkt, attributes).

  abstractmethod project_structures(line_geom: qgis.core.QgsGeometry, line_start: Any, da: Any, raster_lyr: qgis.core.QgsRasterLayer, struct_data: list[dict[str, Any]], buffer_m: float, line_az: float, dip_field: str, strike_field: str, band_number: int = 1) → Any

    Project detached structural measurements onto the section plane.

    Parameters:

      - line_geom – The section line geometry.

      - line_start – Start point of the line.

      - da – Distance calculation object.

      - raster_lyr – The DEM raster layer.

      - struct_data – List of detached structure dictionaries.

      - buffer_m – Search buffer distance.

      - line_az – Azimuth of the section line.

      - dip_field – Name of the dip field.

      - strike_field – Name of the strike field.

      - band_number – Raster band index.

    Returns:

      List of StructureMeasurement objects.

    Return type:

      StructureData