Sopp Engine¶
Sopp ¶
Sopp(
configuration: Configuration,
ephemeris_calculator_class: type[
EphemerisCalculator
] = SkyfieldEphemerisCalculator,
pointing_calculator_class: type[
PointingCalculator
] = PointingCalculatorSkyfield,
)
Main entry point for satellite interference analysis.
Orchestrates trajectory computation, antenna pointing, and interference detection. Supports parallel execution for large satellite catalogs.
Source code in src/sopp/sopp.py
Functions¶
get_satellites_above_horizon ¶
get_satellites_above_horizon() -> TrajectorySet
Returns trajectories for all satellites that rise above the minimum altitude.
Source code in src/sopp/sopp.py
get_satellites_crossing_main_beam ¶
get_satellites_crossing_main_beam() -> TrajectorySet
Returns trajectories for satellites that cross the antenna's main beam.
Source code in src/sopp/sopp.py
analyze ¶
analyze(
trajectories: TrajectorySet,
strategy: InterferenceStrategy,
) -> list[InterferenceResult]
Apply an interference strategy to pre-computed trajectories.
Use this when trajectories have already been computed or loaded from disk and you want to run interference analysis without recalculating orbital positions.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
trajectories
|
TrajectorySet
|
Pre-computed satellite trajectories. |
required |
strategy
|
InterferenceStrategy
|
The interference detection strategy to apply. |
required |
Returns:
| Type | Description |
|---|---|
list[InterferenceResult]
|
List of InterferenceResult for trajectories where interference |
list[InterferenceResult]
|
was detected. |
Example
from sopp.analysis.strategies import GeometricStrategy from sopp.io import load_trajectories
engine = Sopp(configuration) cached = load_trajectories("trajectories.arrow") results = engine.analyze(cached, GeometricStrategy())
Source code in src/sopp/sopp.py
save_trajectories ¶
save_trajectories(
trajectories: TrajectorySet,
path: str | Path,
*,
format: TrajectoryFormat | None = None,
) -> Path
Save computed trajectories to a file.
Convenience method that saves trajectories with observer information from the current configuration.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
trajectories
|
TrajectorySet
|
List of trajectories to save (from get_satellites_above_horizon or get_satellites_crossing_main_beam). |
required |
path
|
str | Path
|
Output file path. |
required |
format
|
TrajectoryFormat | None
|
File format handler. Defaults to ArrowFormat. |
None
|
Returns:
| Type | Description |
|---|---|
Path
|
Path to the saved file. |
Example
engine = Sopp(configuration) trajectories = engine.get_satellites_above_horizon() engine.save_trajectories(trajectories, "cache/trajectories.arrow")