SCT Plugins
SCT uses a plugin-based architecture to decouple core framework logic from product-specific and analysis-specific implementations. Two distinct plugin types are supported, each discovered through its own entry point namespace.
Input Product Format Plugins
These plugins handle the reading and parsing of specific SAR product formats
(e.g., Sentinel-1, ICEYE, SAOCOM). Each plugin implements the
sct.plugins.protocols.InputProductPluginProtocol and registers itself under
the sct.input_products entry point namespace.
Input product plugins provide:
- A detector to recognise the product format from a file path.
- A manager class that exposes the product data through the standard
SCTInputProductprotocol. - An optional Absolute Localization Error (ALE) corrector.
Refer to product format plugins for details.
Analysis Plugins
These plugins implement quality analysis algorithms (e.g., Point Target,
Radiometric, Spectral). Each plugin implements the
sct.plugins.protocols.AnalysisPluginProtocol and registers itself under
the sct.analyses entry point namespace.
Analysis plugins provide:
- A CLI command automatically attached to the
sctCLI. - An analysis handler bundling configuration, CLI and testing hooks.
- The core analysis logic.
Refer to analysis plugins for details.
Discovery Mechanism
Both plugin types are discovered at runtime using stevedore, a library for loading plugins from Python entry points.
from stevedore import ExtensionManager
# Input product plugins
input_manager = ExtensionManager(
namespace="sct.input_products",
invoke_on_load=True,
on_load_failure_callback=_on_load_failure,
)
# Analysis plugins
analysis_manager = ExtensionManager(
namespace="sct.analyses",
invoke_on_load=True,
on_load_failure_callback=_on_load_failure,
)
The core SCT framework never imports plugin packages directly — all interaction
goes through the protocols defined in sct.plugins.protocols.
Entry Point Namespaces
| Plugin Type | Namespace | Protocol |
|---|---|---|
| Input Product Format | sct.input_products |
InputProductPluginProtocol |
| Analysis | sct.analyses |
AnalysisPluginProtocol |
Plugin Documentation
Each plugin is distributed as an independent Python package with its own documentation. The official plugins documentation site collects all available plugins and their documentation.
Visit the plugins documentation site for the complete list of available input product and analysis plugins.