Telescopes

The EveryBeam python bindings support a number of Telescopes. Internally, these inherit from the generic Telescope class. This generic structure should allow to define your own telescope by inheriting from the Telescope base class.

Classes

class everybeam.Telescope
gridded_response(*args, **kwargs)

Overloaded function.

  1. gridded_response(self: everybeam.Telescope, coordinate_system: everybeam.GridSettings, time: float, freq: float, station_index: int, *, field_index: int = 0) -> numpy.ndarray[numpy.complex64]

    Compute the gridded response for a single station.

    coordinate_system: everybeam.CoordinateSystem

    Coordinate system of the image on which the gridded response is computed.

    time: double

    Time in modified Julian date, UTC, in seconds (MJD(UTC), s)

    freq: double

    Frequency in Hz

    station_index: int

    Station index, where 0 <= station_index < telescope.nr_stations

    field_index: int, optional

    Field index. Only relevant for dish telescopes such as VLA and ATCA. Default value is 0.

    NOTE: field_index is a keyword-only argument

    np.ndarray, np.complex64

    4d numpy array [height, width, 2, 2]

  2. gridded_response(self: everybeam.Telescope, coordinate_system: everybeam.GridSettings, time: float, freq: float, *, field_index: int = 0) -> numpy.ndarray[numpy.complex64]

    Compute the gridded response for all stations.

    coordinate_system: everybeam.CoordinateSystem

    Coordinate system of the image on which the gridded response is computed.

    time: double

    Time in modified Julian date, UTC, in seconds (MJD(UTC), s)

    freq: double

    Frequency in Hz

    field_index: int, optional

    Field index. Only relevant for dish telescopes such as VLA and ATCA. Default value is 0.

    NOTE: field_index is a keyword-only argument

    np.ndarray, np.complex64

    5d numpy array [nr_stations, height, width, 2, 2]

property is_time_relevant

Is time relevant for this telescope?

Return type:

bool

property nr_stations

Number of stations in telescope.

Return type:

int

property options

Retrieve the specified options.

Returns:

Struct with options

Return type:

everybeam.Options

undersampled_response(self: everybeam.Telescope, coordinate_system: everybeam.GridSettings, time: numpy.ndarray[numpy.float64], freq: float, undersampling_factor: int, baseline_weights: numpy.ndarray[numpy.float64], *, field_index: int = 0) numpy.ndarray[numpy.complex128]

Compute the gridded response on an undersampled grid and (FFT) interpolate the result to the original grid.

Parameters:
  • coordinate_system (everybeam.CoordinateSystem) – Coordinate system of the image on which the gridded response is computed.

  • time (double, np.1darray) – (Vector of) time(s) in modified Julian date, UTC, in seconds (MJD(UTC), s)

  • freq (double) – Frequency in Hz

  • undersampling_factor (int) – Undersampling factor, i.e. the coarsening factor between the original grid and the coarse resolution grid on which the beam will be evaluated.

  • baseline_weights (np.1darray) – Vector containing the weights per baseline. Should have size (time.size() * nr_baselines), where nr_baselines equal telescope.nr_stations * (telescope.nr_stations + 1) // 2

  • field_index (int, optional) –

    Field index. Only relevant for dish telescopes such as VLA and ATCA. Default value is 0.

    NOTE: field_index is a keyword-only argument

Returns:

4d numpy array [height, width, 4, 4], i.e. a Mueller matrix for every pixel in the image

Return type:

np.ndarray, np.complex64

class everybeam.PhasedArray
array_factor(self: everybeam.PhasedArray, time: float, station_idx: numpy.ndarray[numpy.uint64], freq: numpy.ndarray[numpy.float64], direction: numpy.ndarray[numpy.float64], station0_direction: numpy.ndarray[numpy.float64], tile0_direction: numpy.ndarray[numpy.float64] = array([], dtype=float64)) numpy.ndarray[numpy.complex128]

Get array factor for a given station in prescribed direction, with user-defined station0 and tile0 directions.

Parameters:
  • time (double) – Evaluation response at time. Time in modified Julian date, UTC, in seconds (MJD(UTC), s)

  • station_idx (int) – station index

  • freq (float) – Frequency of the plane wave (Hz)

  • direction (np.1darray) – Direction of arrival in ITRF (m)

  • station0_direction (np.1darray) – Station beam former reference direction (ITRF, m)

  • tile0_direction (np.1darray, optional) – Tile beam former reference direction (ITRF, m). Defaults to station0.

Returns:

Response diagonal (Jones) matrix

Return type:

np.ndarray

channel_frequency(self: everybeam.PhasedArray, channel_index: int) float

Retrieve channel frequency for a given (zero-based) channel index.

Parameters:

channel_index (int) – Channel index

Return type:

float

element_response(*args, **kwargs)

Overloaded function.

  1. element_response(self: everybeam.PhasedArray, time: float, station_idx: int, element_idx: int, freq: float, direction: numpy.ndarray[numpy.float64], is_local: bool = False, rotate: bool = True) -> numpy.ndarray[numpy.complex128]

    Get element response given a station and an element in prescribed direction.

    time: double

    Evaluation response at time. Time in modified Julian date, UTC, in seconds (MJD(UTC), s)

    station_idx: int

    station index

    element_idx: int

    element index

    freq: float

    Frequency of the plane wave (Hz)

    direction: np.1darray

    Direction of arrival either in ITRF (m) or local East-North-Up (m)

    is_local: bool, optional

    Is the specified direction in local East-North-Up? If not, global coordinate system is assumed. [True/False] Defaults to False.

    rotate: bool, optional

    Apply paralactic angle rotation? [True/False] Defaults to True

    np.ndarray

    Response (Jones) matrix

  2. element_response(self: everybeam.PhasedArray, time: float, station_idx: int, freq: float, direction: numpy.ndarray[numpy.float64], is_local: bool = False, rotate: bool = True) -> numpy.ndarray[numpy.complex128]

    Get element response given a station index, in prescribed direction.

    time: double

    Evaluation response at time. Time in modified Julian date, UTC, in seconds (MJD(UTC), s)

    station_idx: int

    station index

    freq: float

    Frequency of the plane wave (Hz)

    direction: np.1darray

    Direction of arrival either in ITRF (m) or local East-North-Up (m)

    is_local: bool, optional

    Is the specified direction in local East-North-Up? If not, global coordinate system is assumed. [True/False] Defaults to False.

    rotate: bool, optional

    Apply paralactic angle rotation? [True/False] Defaults to True

    np.ndarray

    Response (Jones) matrix

property nr_channels

Retrieve the number of channels.

Returns:

Number of channels

Return type:

int

station_element_response(self: everybeam.PhasedArray, station_index: int) everybeam.ElementResponse

Get the element response for a station, given a station index.

Parameters:

station_index (int) – Station index

Return type:

An element response object for the station.

station_name(self: everybeam.PhasedArray, station_index: int) str

Get the station name given a station index.

Parameters:

station_index (int) – Station index

Return type:

str

station_response(*args, **kwargs)

Overloaded function.

  1. station_response(self: everybeam.PhasedArray, time: float, station_idx: int, freq: float, rotate: bool = True) -> numpy.ndarray[numpy.complex128]

    Get station response in beam former direction for specified frequency.

    time: double

    Evaluation response at time. Time in modified Julian date, UTC, in seconds (MJD(UTC), s)

    station_idx: int

    Get response for station index

    freq: float

    Frequency of the plane wave (Hz)

    rotate: bool, optional

    Apply paralactic angle rotation? [True/False] Defaults to True

    np.ndarray

    Response (Jones) matrix

  2. station_response(self: everybeam.PhasedArray, time: float, station_idx: int, channel_idx: int, rotate: bool = True) -> numpy.ndarray[numpy.complex128]

    Get station response in beam former direction for specified channel.

    time: double

    Evaluation response at time. Time in modified Julian date, UTC, in seconds (MJD(UTC), s)

    station_idx: int

    Get response for station index

    channel_idx: int

    Index of channel.

    rotate: bool, optional

    Apply paralactic angle rotation? [True/False] Defaults to True

    np.ndarray

    Response (Jones) matrix

  3. station_response(self: everybeam.PhasedArray, time: float, station_idx: int, rotate: bool = True) -> numpy.ndarray[numpy.complex128]

    Get station response in beam former direction for all channels.

    time: double

    Evaluation response at time. Time in modified Julian date, UTC, in seconds (MJD(UTC), s)

    station_idx: int

    Get response for station index

    rotate: bool, optional

    Apply paralactic angle rotation? [True/False] Defaults to True

    np.ndarray

    rank 3 numpy array of shape [nr_channels, 2, 2]

  4. station_response(self: everybeam.PhasedArray, time: float, rotate: bool = True) -> numpy.ndarray[numpy.complex128]

    Get station response in beam former direction for all stations and channels.

    time: double

    Evaluation response at time. Time in modified Julian date, UTC, in seconds (MJD(UTC), s)

    rotate: bool, optional

    Apply paralactic angle rotation? [True/False] Defaults to True

    np.ndarray

    rank 4 numpy array of shape [nr_stations, nr_channels, 2, 2]

  5. station_response(self: everybeam.PhasedArray, time: float, station_idx: int, freq: float, direction: numpy.ndarray[numpy.float64], station0_direction: numpy.ndarray[numpy.float64], tile0_direction: numpy.ndarray[numpy.float64] = array([], dtype=float64), rotate: bool = True) -> numpy.ndarray[numpy.complex128]

    Get station response in user-specified direction

    time: double

    Evaluation response at time. Time in modified Julian date, UTC, in seconds (MJD(UTC), s)

    station_idx: int

    Get response for station index

    freq: float

    Frequency of the plane wave (Hz)

    direction: np.1darray

    Direction of arrival (ITRF, m)

    station0: np.1darray

    Station beam former reference direction (ITRF, m)

    tile0: np.1darray, optional

    Tile beam former reference direction (ITRF, m). Defaults to station0.

    rotate: bool, optional

    Apply paralactic angle rotation? [True/False] Defaults to True

    np.ndarray

    Response (Jones) matrix

  6. station_response(self: everybeam.PhasedArray, time: float, station_idx: int, freq: float, ra: float, dec: float, field_id: int = 0) -> numpy.ndarray[numpy.complex64]

    Get station response in user-specified (ra, dec) direction. Delay direction is directly inferred from the provided MSet.

    time: double

    Evaluation response at time. Time in modified Julian date, UTC, in seconds (MJD(UTC), s)

    station_idx: int

    station index

    freq: float

    Frequency of the plane wave. (Hz)

    ra: float

    Right ascension coordinate of point of interest. (rad)

    dec: float

    Declination coordinate of point of interest. (rad)

    field_id: bool, optional

    Field index. (defaults to 0)

    np.2darray

    Response (Jones) matrix

class everybeam.LOFAR

Class to get beam responses for LOFAR observations. Inherits from PhasedArray().

class everybeam.OSKAR

Class to get beam responses for (simulated) SKA-LOW observations. Inherits from PhasedArray().

class everybeam.SkaMid

Class to get beam responses for (simulated) SKA-MID observations. Inherits from Telescope().

property blockage

returns: Blockage of SKA-MID dish due to receiver (m) :rtype: float

property diameter

returns: Diameter of SKA-MID dish (m) :rtype: float

station_response(self: everybeam.SkaMid, time: float, station_idx: int, freq: float, ra: float, dec: float, field_id: int = 0) numpy.ndarray[numpy.complex64]

Get station response in user-specified (ra, dec) direction. Delay direction is directly inferred from the provided MSet.

Parameters:
  • time (double) – Evaluation response at time. Time in modified Julian date, UTC, in seconds (MJD(UTC), s)

  • station_idx (int) – station index

  • freq (float) – Frequency of the plane wave. (Hz)

  • ra (float) – Right ascension coordinate of point of interest. (rad)

  • dec (float) – Declination coordinate of point of interest. (rad)

  • field_id (bool, optional) – Field index. (defaults to 0)

Returns:

Response (Jones) matrix

Return type:

np.2darray