elif array_layout == 'HERA-91': ant_locs, ant_id = RI.hexagon_generator(14.6, n_total=91) elif array_layout == 'HERA-127': ant_locs, ant_id = RI.hexagon_generator(14.6, n_total=127) elif array_layout == 'HERA-169': ant_locs, ant_id = RI.hexagon_generator(14.6, n_total=169) elif array_layout == 'HERA-217': ant_locs, ant_id = RI.hexagon_generator(14.6, n_total=217) elif array_layout == 'HERA-271': ant_locs, ant_id = RI.hexagon_generator(14.6, n_total=271) elif array_layout == 'HERA-331': ant_locs, ant_id = RI.hexagon_generator(14.6, n_total=331) elif array_layout == 'CIRC': ant_locs, ant_id = RI.circular_antenna_array(element_size, minR, maxR=maxR) bl, bl_id = RI.baseline_generator(ant_locs, ant_id=ant_id, auto=False, conjugate=False) bl, select_bl_ind, bl_count = RI.uniq_baselines(bl) bl_id = bl_id[select_bl_ind] bl_length = NP.sqrt(NP.sum(bl**2, axis=1)) sortind = NP.argsort(bl_length, kind='mergesort') bl = bl[sortind,:] bl_id = bl_id[sortind] bl_length = bl_length[sortind] total_baselines = bl_length.size n_bl_chunks = 64 baseline_chunk_size = 10 nside = 256 use_GSM = False use_DSM = False
import healpy as HP import geometry as GEOM import interferometry as RI import catalog as CTLG import constants as CNST import my_DSP_modules as DSP import my_operations as OPS import primary_beams as PB import baseline_delay_horizon as DLY ## Input/output parameters antenna_file = '/data3/t_nithyanandan/project_MWA/MWA_128T_antenna_locations_MNRAS_2012_Beardsley_et_al.txt' ant_locs = NP.loadtxt(antenna_file, skiprows=6, comments='#', usecols=(1,2,3)) bl = RI.baseline_generator(ant_locs, auto=False, conjugate=False) bl_length = NP.sqrt(NP.sum(bl**2, axis=1)) bl_orientation = NP.angle(bl[:,0] + 1j * bl[:,1], deg=True) sortind = NP.argsort(bl_length, kind='mergesort') bl = bl[sortind,:] bl_length = bl_length[sortind] bl_orientation = bl_orientation[sortind] n_bins_baseline_orientation = 4 neg_bl_orientation_ind = NP.logical_or(bl_orientation < -0.5*180.0/n_bins_baseline_orientation, bl_orientation > 180.0 - 0.5*180.0/n_bins_baseline_orientation) bl[neg_bl_orientation_ind,:] = -1.0 * bl[neg_bl_orientation_ind,:] bl_orientation = NP.angle(bl[:,0] + 1j * bl[:,1], deg=True) total_baselines = bl_length.size # used_baselines = int(NP.sum(bl_length <= 50.0)) baseline_chunk_size = 100 baseline_bin_indices = range(0,total_baselines,baseline_chunk_size) # if used_baselines > total_baselines:
t_obs = args['t_obs'] pointing_init = NP.asarray(args['pointing_init']) lst_init = args['lst_init'] n_channels = args['n_channels'] bpass_shape = args['bpass_shape'] oversampling_factor = 1.0 + args['f_pad'] n_pad = args['n_pad'] pfb_method = args['pfb_method'] bandpass_correct = args['bp_correct'] flag_chan = NP.asarray(args['flag_chan']).reshape(-1) bp_flag_repeat = args['bp_flag_repeat'] coarse_channel_width = args['coarse_channel_width'] n_edge_flag = NP.asarray(args['n_edge_flag']).reshape(-1) flag_repeat_edge_channels = args['flag_repeat_edge_channels'] bl = RI.baseline_generator(ant_locs, auto=False, conjugate=False) bl_length = NP.sqrt(NP.sum(bl**2, axis=1)) bl_orientation = NP.angle(bl[:, 0] + 1j * bl[:, 1], deg=True) sortind = NP.argsort(bl_length, kind='mergesort') bl = bl[sortind, :] bl_length = bl_length[sortind] bl_orientation = bl_orientation[sortind] neg_bl_orientation_ind = NP.logical_or( bl_orientation < -0.5 * 180.0 / n_bins_baseline_orientation, bl_orientation > 180.0 - 0.5 * 180.0 / n_bins_baseline_orientation) bl[neg_bl_orientation_ind, :] = -1.0 * bl[neg_bl_orientation_ind, :] bl_orientation = NP.angle(bl[:, 0] + 1j * bl[:, 1], deg=True) total_baselines = bl_length.size baseline_bin_indices = range(0, total_baselines, baseline_chunk_size) labels = [] labels += [
import my_DSP_modules as DSP import my_operations as OPS import primary_beams as PB import baseline_delay_horizon as DLY import lookup_operations as LKP import ipdb as PDB antenna_file = '/data3/t_nithyanandan/project_MWA/MWA_128T_antenna_locations_MNRAS_2012_Beardsley_et_al.txt' telescope = 'mwa' telescope_str = telescope + '_' if telescope == 'mwa': telescope_str = '' ant_locs = NP.loadtxt(antenna_file, skiprows=6, comments='#', usecols=(0,1,2,3)) ref_bl, ref_bl_id = RI.baseline_generator(ant_locs[:,1:], ant_id=ant_locs[:,0].astype(int).astype(str), auto=False, conjugate=False) ref_bl_length = NP.sqrt(NP.sum(ref_bl**2, axis=1)) ref_bl_orientation = NP.angle(ref_bl[:,0] + 1j * ref_bl[:,1], deg=True) neg_bl_orientation_ind = ref_bl_orientation < 0.0 ref_bl[neg_bl_orientation_ind,:] = -1.0 * ref_bl[neg_bl_orientation_ind,:] ref_bl_orientation = NP.angle(ref_bl[:,0] + 1j * ref_bl[:,1], deg=True) sortind = NP.argsort(ref_bl_length, kind='mergesort') ref_bl = ref_bl[sortind,:] ref_bl_length = ref_bl_length[sortind] ref_bl_orientation = ref_bl_orientation[sortind] ref_bl_id = ref_bl_id[sortind] n_bins_baseline_orientation = 4 latitude = -26.701 fhd_obsid = [1061309344, 1061316544]
lst_wrapped = lst + 0.0 lst_wrapped[lst_wrapped > 180.0] = lst_wrapped[lst_wrapped > 180.0] - 360.0 if lst_wrapped.size > 1: lst_edges = NP.concatenate( (lst_wrapped, [lst_wrapped[-1] + lst_wrapped[-1] - lst_wrapped[-2]])) else: lst_edges = NP.concatenate( (lst_wrapped, lst_wrapped + t_snap / 3.6e3 * 15)) duration_str = '_{0:0d}x{1:.1f}s'.format(n_snaps, t_snap[0]) geor_duration_str = '_{0:0d}x{1:.1f}s'.format(1, t_snap[0]) bl, bl_id = RI.baseline_generator(ant_locs, ant_id=ant_id, auto=False, conjugate=False) bl, select_bl_ind, bl_count = RI.uniq_baselines(bl) bl_id = bl_id[select_bl_ind] bl_length = NP.sqrt(NP.sum(bl**2, axis=1)) bl_orientation = NP.angle(bl[:, 0] + 1j * bl[:, 1], deg=True) sortind = NP.argsort(bl_length, kind='mergesort') bl = bl[sortind, :] bl_id = bl_id[sortind] bl_length = bl_length[sortind] bl_orientation = bl_orientation[sortind] bl_count = bl_count[sortind] neg_bl_orientation_ind = (bl_orientation < -67.5) | (bl_orientation > 112.5) # neg_bl_orientation_ind = NP.logical_or(bl_orientation < -0.5*180.0/n_bins_baseline_orientation, bl_orientation > 180.0 - 0.5*180.0/n_bins_baseline_orientation) bl[neg_bl_orientation_ind, :] = -1.0 * bl[neg_bl_orientation_ind, :] bl_orientation = NP.angle(bl[:, 0] + 1j * bl[:, 1], deg=True)
ground_plane = 0.3 # height of antenna element above ground plane if ground_plane is None: ground_plane_str = 'no_ground_' else: if ground_plane > 0.0: ground_plane_str = '{0:.1f}m_ground_'.format(ground_plane) else: raise ValueError('Height of antenna element above ground plane must be positive.') latitude = -26.701 antenna_file = '/data3/t_nithyanandan/project_MWA/MWA_128T_antenna_locations_MNRAS_2012_Beardsley_et_al.txt' max_bl_length = None # Maximum baseline length (in m) ant_locs = NP.loadtxt(antenna_file, skiprows=6, comments='#', usecols=(0,1,2,3)) ref_bl, ref_bl_id = RI.baseline_generator(ant_locs[:,1:], ant_id=ant_locs[:,0].astype(int).astype(str), auto=False, conjugate=False) ref_bl_length = NP.sqrt(NP.sum(ref_bl**2, axis=1)) ref_bl_orientation = NP.angle(ref_bl[:,0] + 1j * ref_bl[:,1], deg=True) neg_ref_bl_orientation_ind = ref_bl_orientation < 0.0 ref_bl[neg_ref_bl_orientation_ind,:] = -1.0 * ref_bl[neg_ref_bl_orientation_ind,:] ref_bl_orientation = NP.angle(ref_bl[:,0] + 1j * ref_bl[:,1], deg=True) sortind = NP.argsort(ref_bl_length, kind='mergesort') ref_bl = ref_bl[sortind,:] ref_bl_length = ref_bl_length[sortind] ref_bl_orientation = ref_bl_orientation[sortind] ref_bl_id = ref_bl_id[sortind] n_bins_baseline_orientation = 4 nmax_baselines = 2048 ref_bl = ref_bl[:nmax_baselines,:] ref_bl_length = ref_bl_length[:nmax_baselines] ref_bl_id = ref_bl_id[:nmax_baselines]
]: raise ValueError('Project does not exist') project_dir = cfg['project'] if cfg['array']['layout'] != 'CIRC': raise ValueError('Antenna layout specified is not a circular ring') if cfg['array']['minR'] is None: raise ValueError('Minimum radius of circular ring not specified') minR = cfg['array']['minR'] maxR = cfg['array']['maxR'] if cfg['antenna']['size'] is None: raise ValueError('Antenna size not specified') antsize = cfg['antenna']['size'] PDB.set_trace() aalayout = RI.circular_antenna_array(antsize, minR, maxR=maxR) bl, blid = RI.baseline_generator(aalayout, auto=False, conjugate=False) ubl, ublind, ublcount = RI.uniq_baselines(bl) bll = NP.sqrt(NP.sum(ubl**2, axis=1)) ubll, ubllind, ubllcount = RI.uniq_baselines( NP.hstack((bll.reshape(-1, 1), NP.zeros( (bll.size, 1)), NP.zeros((bll.size, 1))))) ubll = bll[ubllind] PDB.set_trace()
project_dir = cfg['project'] if cfg['array']['layout'] != 'CIRC': raise ValueError('Antenna layout specified is not a circular ring') if cfg['array']['minR'] is None: raise ValueError('Minimum radius of circular ring not specified') minR = cfg['array']['minR'] maxR = cfg['array']['maxR'] if cfg['antenna']['size'] is None: raise ValueError('Antenna size not specified') antsize = cfg['antenna']['size'] PDB.set_trace() aalayout = RI.circular_antenna_array(antsize, minR, maxR=maxR) bl, blid = RI.baseline_generator(aalayout, auto=False, conjugate=False) ubl, ublind, ublcount = RI.uniq_baselines(bl) bll = NP.sqrt(NP.sum(ubl**2, axis=1)) ubll, ubllind, ubllcount = RI.uniq_baselines(NP.hstack((bll.reshape(-1,1),NP.zeros((bll.size,1)),NP.zeros((bll.size,1))))) ubll = bll[ubllind] PDB.set_trace()