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

Module contents