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.
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]
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:
- 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.
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 toFalse.- rotate: bool, optional
Apply paralactic angle rotation?
[True/False]Defaults toTrue
- np.ndarray
Response (Jones) matrix
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 toFalse.- rotate: bool, optional
Apply paralactic angle rotation?
[True/False]Defaults toTrue
- 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.
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
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 toTrue
- np.ndarray
Response (Jones) matrix
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 toTrue
- np.ndarray
rank 3 numpy array of shape
[nr_channels, 2, 2]
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 toTrue
- np.ndarray
rank 4 numpy array of shape
[nr_stations, nr_channels, 2, 2]
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 toTrue
- np.ndarray
Response (Jones) matrix
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