GBT Antenna Trajectory API

This document describes (a) the API for issuing trajectories to the antenna manager; and (b) how astrid uses that API for ephemeris and catalogs.

Antenna Manager API

The antenna manager contains a number of scan-segment based input parameters to control movements of the main axes and secondary optics. In general a scan-segment is a list of times and position,velocity,acceleration specifications. A single scan-segment can therefore describe a parabolic arc. By using multiple scan-segments, an arbitrary trajectory can be described.

The parabolic geometric functions used in the antenna are of the form:
x,y,(t) \equiv \sum_{i=1}^{n} f(x_{i}, \dot{x_{i}}, \ddot{x_{i}}, t), f(y_{i}, \dot{y_{i}}, \ddot{y_{i}}, t)
    \mid_{t=t_{i}}^{t=t_{(i+1)}}

where x,y are the major/minor positions in the selected coordinate system. The function 'f' computes an instantaneous command position from the equations of motion:
f(s_{i},\dot{s_{i}},\ddot{s_{i}},t)=
        \begin{cases}
             \label{eq:PVA}
             s_{i} + \dot{s_{i}}(t-t_{i}) + \ddot{s_{i}}\frac{(t-t_{i})^{2}}{2},
             &\text{if $t_{i} \leq t < t_{(i+1)}$;}\\
             0, &\text{otherwise.}
        \end{cases}

In English, this means that to compute a position to process for the next command cycle, the relevant position, velocity and acceleration are selected from the list and evaluated for the current command time. The reference system for the scan-segments can be any of the supported coordinate systems {Mount, Az/El, J2000, B1950, Apparent, Galactic, etc.} or a user-defined reference system (defined by userSegments parameter).

Offset trajectories can be also be applied to the primary trajectory for purposes of mapping etc. (Not further discussed here.)

Astrid Ephemeris

Optionally a user may provide a list of positions and times which describe the motion of the source under observation. A reference coordinate system may be specified with the 'COORDMODE' keyword. Positions must be dense enough to properly describe the motion of the object in the specified coordinate system.

Astrid Orbital Element Based Positions

When NNTLE and CONIC forms are used, an internal ephemeris is generated. The system generates a table internally and provides the result to the antenna manager. In this case the ephemeris is always computed in the az/el reference frame.

I've examined the code and identified the following key issues:

Issue #1:

Astrid (Orbit.py) makes a poor assumption in the determination of the sampling period (i.e. how many points to calculate). The code uses the greater of 5 seconds or the time it takes to move 10 arc-mintes (in az-el). For some objects this may provide adequate results, but in general is unwise. In some cases this may cause the trajectory to be poorly sampled. [I've set the sampling interval to 5 seconds in a development version for testing.]

Issue #2:

The same routines increment the time interval, which increases the time between samples. (e.g points are calculated at: 1*dt, 2*dt, 3*dt, ...)

Issue #3:

Astrid doesn't correctly compute the first few scan segment velocities and accelerations correctly. This can be addressed by computing several points prior to the start-time.

Issue #4:

Astrid doesn't exactly know the start-time until after the scan-segments are loaded, but the code is written as if it knows it exactly. (Chicken and egg problem. The antenna can't say when it can start, unless its told what it is to do.) Due to this the time range of computed data can be incorrect. (To resolve we should just expand the compute interval to account for this.)

Planetary Empherities

Astrid has an interface to use the JPL Planetary and Lunar Ephemerides. When this option is used, object positions and velocities are extracted at a fixed interval of 60 seconds to generate the scan segment list for the antenna manager. The coordinate reference frame is J2000.

Antenna Scan-Segment Parameters

FYI, a list of the scan-segment based parameters in the antenna manager:

  • Main Axis scan-segment Parameters
    • primarySegments (main axis trajectory)
    • coordinateMode (primarySegment coordinate reference, static)
    • primaryOffsets (main axis offset trajectory)
    • offsetCoordMode (primaryOffsets coordinate reference, static)
    • cosVmode (static)
    • userSegments (user-defined time dependent rotations applied to primarySegments, used only for user-defined reference frames)
  • Secondary Optics scan-segment Parameters
    • xyzSubrSegments (subreflector XYZ mode)
    • actSubrSegments (subreflector Y1..Z1 actuator length mode)
    • primeFocusSegments (prime focus control)

-- JoeBrandt - 2012-04-19
Topic revision: r7 - 2012-04-27, JoeBrandt
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding NRAO Public Wiki? Send feedback