Aperture array beam functions

Used to evaluate a station beam from an aperture array, by phasing up element responses.

C/C++

void sdp_station_beam_aperture_array(const double wavenumber, const sdp_Mem *element_weights, const sdp_Mem *element_x, const sdp_Mem *element_y, const sdp_Mem *element_z, const int index_offset_points, const int num_points, const sdp_Mem *point_x, const sdp_Mem *point_y, const sdp_Mem *point_z, const sdp_Mem *element_beam_index, const sdp_Mem *element_beam, const int index_offset_station_beam, sdp_Mem *station_beam, const int normalise, const int eval_x, const int eval_y, sdp_Error *status)

Evaluates a station beam from an aperture array.

This function evaluates an aperture-array-based station beam for a given set of antenna/element coordinates, at a set of source positions.

Element beam data can be supplied if required via the element_beam parameter, and may be either complex scalar or fully polarised. If provided, this must be a complex matrix containing the element response for each element type and each direction on the sky. The matrix dimemsions of element_beam are therefore the number of element responses and the number of point directions, with the point directions the fastest-varying dimension. If there are fewer element types than there are elements, then the element_beam_index array should be used to specify which vector of the element response matrix is used for each element. If polarised element data is supplied, the output station beam is also polarised, and the fastest-varying dimension or dimensions of both must be either of size 4 or (2, 2).

Example dimensions allowed for element_beam:

  • (num_elements, num_points ) for complex scalar responses.

  • (num_elements, num_points , 1) for complex scalar responses.

  • (num_elements, num_points , 4) for complex polarised responses.

  • (num_elements, num_points , 2, 2) for complex polarised responses.

The station_beam array must be consistent in shape, but without the element dimension.

Example dimensions allowed for station_beam:

  • ( num_points ) for complex scalar responses.

  • ( num_points , 1) for complex scalar responses.

  • ( num_points , 4) for complex polarised responses.

  • ( num_points , 2, 2) for complex polarised responses.

Parameters:
  • wavenumber – Wavenumber for the current frequency channel.

  • element_weights – Complex array of element beamforming weights.

  • element_x – Element x coordinates, in metres.

  • element_y – Element y coordinates, in metres.

  • element_z – Element z coordinates, in metres.

  • index_offset_points – Start offset in source arrays.

  • num_points – Number of source coordinates to use.

  • point_x – Source x direction cosines.

  • point_y – Source y direction cosines.

  • point_z – Source z direction cosines.

  • element_beam_index – Pointer to element beam indices. May be empty array.

  • element_beam – Pointer to element beam matrix. May be empty array.

  • index_offset_station_beam – Start offset in output array.

  • station_beam – Output complex station beam array.

  • normalise – If true, normalise output by dividing by the number of elements.

  • eval_x – If true, evaluate polarised beam using X antennas.

  • eval_y – If true, evaluate polarised beam using Y antennas.

  • status – Error status.

Python

ska_sdp_func.station_beam.aperture_array(wavenumber: float, element_weights, element_x, element_y, element_z, point_x, point_y, point_z, element_beam_index, element_beam, station_beam, normalise: bool = True, eval_x: bool = True, eval_y: bool = True) None

Evaluates a station beam from an aperture array.

This function evaluates an aperture-array-based station beam for a given set of antenna/element coordinates, at a set of source positions.

Element beam data can be supplied if required via the element_beam parameter, and may be either complex scalar or fully polarised. If provided, this must be a complex matrix containing the element response for each element type and each direction on the sky. The matrix dimemsions of element_beam are therefore the number of element responses and the number of point directions, with the point directions the fastest-varying dimension. If there are fewer element types than there are elements, then the element_beam_index array should be used to specify which vector of the element response matrix is used for each element. If polarised element data is supplied, the output station beam is also polarised, and the fastest-varying dimension or dimensions of both must be either of size 4 or (2, 2).

Example dimensions allowed for element_beam, if not None:

  • (num_elements, num_points) for complex scalar responses.

  • (num_elements, num_points, 1) for complex scalar responses.

  • (num_elements, num_points, 4) for complex polarised responses.

  • (num_elements, num_points, 2, 2) for complex polarised responses.

The station_beam array must be consistent in shape, but without the element dimension.

Example dimensions allowed for station_beam:

  • (num_points) for complex scalar responses.

  • (num_points, 1) for complex scalar responses.

  • (num_points, 4) for complex polarised responses.

  • (num_points, 2, 2) for complex polarised responses.

Parameters:
  • wavenumber (float) – Wavenumber for the current frequency channel.

  • element_weights (numpy.ndarray or cupy.ndarray) – Complex array of element beamforming weights.

  • element_x (numpy.ndarray or cupy.ndarray) – Element x coordinates, in metres.

  • element_y (numpy.ndarray or cupy.ndarray) – Element y coordinates, in metres.

  • element_z (numpy.ndarray or cupy.ndarray) – Element z coordinates, in metres.

  • point_x (numpy.ndarray or cupy.ndarray) – Source x direction cosines.

  • point_y (numpy.ndarray or cupy.ndarray) – Source y direction cosines.

  • point_z (numpy.ndarray or cupy.ndarray) – Source z direction cosines.

  • element_beam_index (numpy.ndarray or cupy.ndarray) – Optional pointer to element beam indices. May be None.

  • element_beam (numpy.ndarray or cupy.ndarray) – Optional pointer to element beam matrix. May be None.

  • station_beam (numpy.ndarray or cupy.ndarray) – Output complex station beam array.

  • normalise (bool) – If true, normalise output by dividing by the number of elements.

  • eval_x (bool) – If true, evaluate polarised beam using X antennas.

  • eval_y (bool) – If true, evaluate polarised beam using Y antennas.