Returns unit vectors pointing to the origin from the surface of a unit bottom hemisphere.
Return values
incmoing_x
incmoing_y
incmoing_z
Calls _make_grid() to generate a 2D grid of \(\phi\)s and \(\theta\)s.
Converts each point on the grid into Cartesian coordinates; assuming r=1:
\( x = \sin\theta \cdot \cos\phi \)
\( y = \sin\theta \cdot \sin\phi \)
\( z = \cos\theta \)
Each point is a unit vector pointing from the origin to somewhere on the hemisphere.
Thus, the unit vector \(\hat{\bf{u}}\equiv(-x,-y,-z)\) represents a possible (incoming) signal direction, assuming that the payload is at the center of the sphere.
The following columns are required in antenna_pairs
A1_X[m]
A1_Y[m]
A1_Z[m]
A2_X[m]
A2_Y[m]
A2_Z[m]
Sample schema of time_delays, assuming only the essential columns have been supplied in antenna_pairs
$ A1_X[m] <f64>
$ A1_Y[m] <f64>
$ A1_Z[m] <f64>
$ A2_X[m] <f64>
$ A2_Y[m] <f64>
$ A2_Z[m] <f64>
$ time delays [sec] <array[f64, (180, 360)]>
Explanation:
The time delay between any antenna pair is computed via \( (\bf{X_1} - \bf{X_2}) \cdot \hat{\bf{u}} \) / \(c\)
\(\bf{X}\) denotes the antenna position,
\(\hat{\bf{u}}\) is a unit vector that represents the signal direction, and
\(c\) is the speed of light.
Each entry in the column time delays [sec] would be a 2D matrix with the same dimensions as the 2D grid generated by _make_grid; let's call them time delay skymaps.
Each point on a time delay skymap represents the expected time-delay based on where the signal is coming from and where the antennas are on the payload.
Time delay occurs since the signal has to travel an extra distance to reach the second antenna, after it hits the first antenna:
As an example, the figure below shows the expected time delays (in seconds) between antenna 203 and 104.