MeerKATgen package
Contents
MeerKATgen package¶
Submodules¶
MeerKATgen.create_dataset module¶
MeerKATgen.observation module¶
- class MeerKATgen.observation.Observation(num_beams=None, fchans=None, tchans=None, df=<Quantity 2.79396772 Hz>, dt=<Quantity 18.25361101 s>, fch1=900, ascending=False, SETI=None, coordinates=None, obs_data=None, telescope_beam_width=None, beamlet_width=None, **kwargs)¶
Bases:
object
Core Object that facilitate the creation of entirely synthetic radio data of 64 anntena beams
…
- num_beamsint
Number of beams
- fchansint
Number of frequency bins
- tchansint
Number of time bins
- dffloat
Resolution in freq in [Hz]
- dtfloat
Resolution in time in [seconds]
- fch1float
start frequency in [MHz]
- telescope_beam_widthfloat
The entire FOV full width half maximum in units of distance [sigma]
- beamlet_widthfloat
the individual telescope full width half maximum in units of distance [sigma]
- datanumpy array
Contains the data of observations [number of beams , time , frequency]
- adj_matrix: numpy array
Contains the adjacency matrix describes the graph of the setup. [number of beams, number of beams]
- coordinatesnumpy array
Contains the coordinates in X-Y plane [number of beams, 2]
- labelsarray numpy
Contains the labels of 1 or 0 for SETI or No SETI
- SETIdict
Contains dictionary for all the physical parameters to be injected. Key elements of dictionary: SETI[‘SETI_INDEX’] SETI[‘seti_start_index’] SETI[‘seti_snr’] SETI[‘seti_drift’] SETI[‘seti_width’] SETI[‘seti_mean’]
- simulate_points(num=64)
Simulate 64 points in the sky given the initialized FWHM values
- generate_complete_observation_blank()
Take the initialized values and create blank observations from it with INJECTED SETI signals
- generate_complete_observation_real()
Take the initialized values and create observations from REAL DATA and INJECT SETI signals
- extract_all()
Extract all the important peices of data
- extract_all()¶
Extracts the data, coordinates, adjacency matrix and the labels.
None
- dataarray
the observations
- coordinatesarray
the coordinates in the sky for these beams
- adj_matrixarray
adjacency matrix for the graph
- labelsarray
labels for where the SETI signal is or isn’t.
- generate_complete_observation_blank()¶
Generate complete stack of signals. This simulates the observation including with SYNTHETIC background given the coordinates and inital values.
None
None
- dataArray
Adds the simulated signal into the array
- labelsarray
Records the labels with the injected signals
- generate_complete_observation_real()¶
Generate complete stack of signals. This simulates the observation using REAL background given the coordinates and inital values.
None
None
- dataArray
Adds the simulated signal into the array
- labelsarray
Records the labels with the injected signals
- simulate_points(num)¶
Generate random points given number of beams
- numint
Number of beams
- coordinatesnumpy Array
Returns the sky coordinates it simulated numpy array [num, 2]
- MeerKATgen.observation.random() x in the interval [0, 1). ¶
MeerKATgen.sim_params module¶
MeerKATgen.utils module¶
- MeerKATgen.utils.calc_rfi_snr(RFI_POINT, deviation, coordinates, snr_base=30)¶
calculate all SNR of RFI signal
- RFI_POINTarray [vector]
single R^2 vector for where the signal originate from
- deviationfloat
signal decay as standard deviation
- coordinatesarray
coordinates of beams
- snr_basefloat
the base SNR of the RFI signal
- SNR_valslist
list of RFI signals as a function of Guassian and distance to the point
- MeerKATgen.utils.construct_distance_adj(coordinates, sigma_beam, func=None)¶
Construct arbitrary Adjacency Matrix
coordinates : n-beams of R^2 vectors sigma_beam : spread function of beam func : python function two vectors and gives 1 scalar Returns ——- Distance :
Adjacency matrix weighted by arbitrary function
- MeerKATgen.utils.construct_guassian_adj(coordinates, sigma_beam)¶
Construct Guassian Adjacency Matrix. We do so by looping through and checking the connections and computing the guassian between the points and weighting the adjacency matrix that way.
- coordinatesarray
n-beams of R^2 vectors
- sigma_beamfloat
Sigma spread of beam
- adj_matrixarray
Adjacency matrix weighted by guassian function
- MeerKATgen.utils.distance(x1, x2)¶
Compute Euclidean distance between two vectors
- x1array
Sky point for obj 1 : [ra, dec] R^2 vector
- x2array
Sky point for obj 2 : [ra, dec] R^2 vector
- Distancefloat
computes the euclidean norm
- MeerKATgen.utils.gaussian(x, mu, sig)¶
Compute 1-D Guassian given the value and the mean and deviation
- xfloat
point value [1d]
- mufloat
mean value
- sigfloat
deviation
- guassianfloat
guassian evaluated at x
- MeerKATgen.utils.generate_multiple_signal_no_background(start_index, snr, drift, width, mean, num_freq_chans=256, num_time_chans=16, df=<Quantity 2.79396772 Hz>, dt=<Quantity 18.25361101 s>, fch1=<Quantity 6095.21484235 MHz>)¶
generate MULTIPLE signal on a single beam/observation. All with synthetic backgrounds
start_index, snr: float
SNR of injected signal
- driftfloat
drift rate of signal
- widthfloat
width of the signal in [Hz]
- meanfloat
average background noise
- num_freq_chansint
number of freq channels in index
- num_time_chansint
number of time channels in index
- dffloat
freq resolution in the data [Hz] astropy units
- dtfloat
time resolution in data [seconds] astropy units
- fch1float
start of frequency channel [mhz] astropy units
- Distance
spectrogram of fake inject data
- MeerKATgen.utils.generate_multiple_signal_real_background(start_index, snr, drift, width, background, num_freq_chans=256, num_time_chans=16, df=<Quantity 2.79396772 Hz>, dt=<Quantity 18.25361101 s>, fch1=<Quantity 6095.21484235 MHz>)¶
generate MULTIPLE signal REAL BACKGROUND on a single beam/observation.
start_index, snr: float
SNR of injected signal
- driftfloat
drift rate of signal
- widthfloat
width of the signal in [Hz]
- backgroundarray
backgrounds to use
- meanfloat
average background noise
- num_freq_chansint
number of freq channels in index
- num_time_chansint
number of time channels in index
- dffloat
freq resolution in the data [Hz] astropy units
- dtfloat
time resolution in data [seconds] astropy units
- fch1float
start of frequency channel [mhz] astropy units
- Distance
spectrogram of fake inject data
- MeerKATgen.utils.generate_single_signal_no_background(start_index, snr, drift, width, mean, num_freq_chans=256, num_time_chans=16, df=<Quantity 2.79396772 Hz>, dt=<Quantity 18.25361101 s>, fch1=<Quantity 900. MHz>)¶
generate SINGLE signal on a single beam/observation.
start_index, snr: float
SNR of injected signal
- driftfloat
drift rate of signal
- widthfloat
width of the signal in [Hz]
- meanfloat
average background noise
- num_freq_chansint
number of freq channels in index
- num_time_chansint
number of time channels in index
- dffloat
freq resolution in the data [Hz] astropy units
- dtfloat
time resolution in data [seconds] astropy units
- fch1float
start of frequency channel [mhz] astropy units
- Distance
spectrogram of fake inject data
- MeerKATgen.utils.generate_single_signal_real_background(start_index, snr, drift, width, background, num_freq_chans=256, num_time_chans=16, df=<Quantity 2.79396772 Hz>, dt=<Quantity 18.25361101 s>, fch1=<Quantity 6095.21484235 MHz>)¶
generate SINGLE signal REAL BACKGROUND on a single beam/observation.
start_index, snr: float
SNR of injected signal
- driftfloat
drift rate of signal
- widthfloat
width of the signal in [Hz]
- backgroundarray
SINGLE backgrounds to use
- meanfloat
average background noise
- num_freq_chansint
number of freq channels in index
- num_time_chansint
number of time channels in index
- dffloat
freq resolution in the data [Hz] astropy units
- dtfloat
time resolution in data [seconds] astropy units
- fch1float
start of frequency channel [mhz] astropy units
- Distance
spectrogram of fake inject data
- MeerKATgen.utils.move_point_guassian(coordinates, adj_matrix, point, new_location, sigma_beam)¶
Move point and recalculate Adjacency Matrix
coordinates : n-beams of R^2 vectors so its [N,2] shape adj_matrix: adjacency matrix point: index of point selected new_location: position in normalized sky coordinates where to place point sigma_beam : spread function of beam Returns ——- Distance :
new set of coordinates and the new adj matrix
- MeerKATgen.utils.random() x in the interval [0, 1). ¶
MeerKATgen.visualizations module¶
- MeerKATgen.visualizations.random() x in the interval [0, 1). ¶
- MeerKATgen.visualizations.visualize_connection(coordinates, adj_matrix)¶
Visualize Connections
- coordinatesarray
Sky point for objs : [ ra, dec] R^2 vector
- adj_matrixarray
connections for graph
- MeerKATgen.visualizations.visualize_connection_SETI(coordinates, adj_matrix, SETI_INDEX, line_true=False)¶
Visualize Connections Parameters ———- coordinates : array
Sky point for objs : [ ra, dec] R^2 vector
- adj_matrixarray
connections for graph
- MeerKATgen.visualizations.visualize_fullset_squares(data)¶
Visualize Connections
- coordinatesarray
Sky point for objs : [ ra, dec] R^2 vector
- adj_matrixarray
connections for graph
- MeerKATgen.visualizations.visualize_polar_SETI(coordinates, adj_matrix, SETI_INDEX, line_true=False)¶
Visualize polarcoordinates
- coordinatesarray
Sky point for objs : [ ra, dec] R^2 vector
- adj_matrixarray
connections for graph