Source code for sec_interp.core.interfaces.geology_interface

from __future__ import annotations

"""Interface for Geology services."""

from abc import ABC, abstractmethod
from typing import Any


[docs] class IGeologyService(ABC): """Abstract interface for the Geological Profiling Service."""
[docs] @abstractmethod def generate_geological_profile( self, line_data: Any, # Will be refined to a DTO or specific params raster_data: Any, outcrop_data: list[dict[str, Any]], outcrop_name_field: str, band_number: int = 1, ) -> Any: """Generate geological profile data using detached structures. Args: line_data: Section line orientation data. raster_data: DEM elevation data. outcrop_data: List of detached outcrop entities. outcrop_name_field: Field name for unit names. band_number: Raster band to use. Returns: GeologyData: List of GeologySegment objects. """ pass