libgs.groundstation.GroundStation.track

GroundStation.track(nid_or_pdata, **kwargs)[source]

Track satellite by Norad ID or by specifying an az/el schedule as in libgs_ops.scheduling

The tracking is done by moving in steps across the trajectory of the satellite

If specified by setting compute_ant_points to True, two things will happen:

  1. If the provided schedule does not have enough time resolution, it will be interpolated appropriately.
  2. The tracking will not be for every point in the schedule, but instead based on the antenna beamwidth by calling hardware.RotatorBase.azel_to_antenna_angles() for each rotator.

Doing so means the tracking happens as follows: If x0 is the actual satellite position at time t0:

  1. point to x0 + 1/2 beamwidth,
  2. wait until x0 - 1/2 beamwidth
  3. move to x0 + 1/2 beamwidth again … etc
Parameters:
  • nid (int) or schedule (pdata) – Either the Norad ID or the schedule to track. If Norad ID is provided and a propagator connected, then the method will compute the pdata itself.
  • nid_or_pdata (int/DataFrame) – Either a schedule file (pdata) or a norad ID to track.
  • rotators (list (RotatorBase), optional) – The list of rotators to track with. If not specified use rotators.
  • min_el (float, optional) – The minimum permitted elevation angle. If not specified used the highest MIN_EL of the connected rotators.
  • compute_ant_points (bool) – If true, do not follow every point in schedule but recompute