sec_interp.core.services.structure_service module
- class sec_interp.core.services.structure_service.StructureService[source]
Bases:
IStructureServiceService for projecting structural measurements onto cross-sections.
This service handles the filtering and projection of structural measurements (dip/strike) onto a cross-section plane to calculate apparent dip.
- project_structures(line_lyr: qgis.core.QgsVectorLayer, raster_lyr: qgis.core.QgsRasterLayer, struct_lyr: qgis.core.QgsVectorLayer, buffer_m: int, line_az: float, dip_field: str, strike_field: str, band_number: int = 1) list[StructureMeasurement][source]
Project structural measurements onto the cross-section plane.
Filters structures within a buffer, samples elevation, and calculates apparent dip for each measurement.
- Parameters:
line_lyr – The cross-section line vector layer.
raster_lyr – The DEM raster layer for elevation sampling.
struct_lyr – Vector layer containing structural measurements.
buffer_m – Search buffer distance in meters.
line_az – Azimuth of the section line in degrees.
dip_field – Name of the field containing dip values.
strike_field – Name of the field containing strike values.
band_number – Raster band to use for elevation (default: 1).
- Returns:
A list of StructureMeasurement objects sorted by distance along section.
- Raises:
DataMissingError – If line layer has no features.
GeometryError – If line geometry is invalid.