Skip to content

Pointing

Antenna pointing calculations for celestial tracking.

PointingCalculator

PointingCalculator(
    facility: Facility,
    observation_target: ObservationTarget,
    time_window: TimeWindow,
)

Bases: ABC

Computes where the antenna points over time for a given celestial target.

Source code in src/sopp/pointing/base.py
def __init__(
    self,
    facility: Facility,
    observation_target: ObservationTarget,
    time_window: TimeWindow,
):
    self._facility = facility
    self._observation_target = observation_target
    self._time_window = time_window

Functions

calculate_trajectory abstractmethod

calculate_trajectory(
    resolution_seconds: float = 1.0,
    time_grid: ndarray | None = None,
) -> AntennaTrajectory

Compute the antenna az/alt trajectory.

Parameters:

Name Type Description Default
resolution_seconds float

Time step if generating a new grid.

1.0
time_grid ndarray | None

Pre-computed time grid. If provided, resolution_seconds is ignored.

None

Returns:

Type Description
AntennaTrajectory

AntennaTrajectory with positions at each time step.

Source code in src/sopp/pointing/base.py
@abstractmethod
def calculate_trajectory(
    self, resolution_seconds: float = 1.0, time_grid: np.ndarray | None = None
) -> AntennaTrajectory:
    """Compute the antenna az/alt trajectory.

    Args:
        resolution_seconds: Time step if generating a new grid.
        time_grid: Pre-computed time grid. If provided, resolution_seconds
            is ignored.

    Returns:
        AntennaTrajectory with positions at each time step.
    """
    pass

PointingCalculatorSkyfield

PointingCalculatorSkyfield(
    facility: Facility,
    observation_target: ObservationTarget,
    time_window: TimeWindow,
)

Bases: PointingCalculator

Computes antenna trajectory using Skyfield for celestial tracking.

Source code in src/sopp/pointing/skyfield.py
def __init__(
    self,
    facility: Facility,
    observation_target: ObservationTarget,
    time_window: TimeWindow,
):
    self._facility = facility
    self._observation_target = observation_target
    self._time_window = time_window