Source code for sec_interp.core.interfaces.profile_interface

from __future__ import annotations

"""Interface for Profile services."""

from abc import ABC, abstractmethod
from typing import Any

from qgis.core import QgsRasterLayer, QgsVectorLayer


[docs] class IProfileService(ABC): """Abstract interface for the Topographic Profile Service."""
[docs] @abstractmethod def generate_topographic_profile( self, line_lyr: QgsVectorLayer, raster_lyr: QgsRasterLayer, band_number: int = 1, interval: float | None = None, ) -> Any: """Generate topographic profile data by sampling elevation along a section line. Args: line_lyr: The cross-section line vector layer. raster_lyr: The DEM raster layer for elevation. band_number: Raster band to sample (default: 1). interval: Optional sampling interval. If None, uses raster resolution. Returns: ProfileData: List of (distance, elevation) tuples. """ pass