def update(i, pointing_radec, lst, obsmode, telescope, backdrop_coords, bll, blori, lags, vis_lag, delaymatrix, overlays, xv, yv, xv_uniq, yv_uniq, axs, tpc): delay_ranges = NP.dstack((delaymatrix[:,:vis_lag.shape[0],1] - delaymatrix[:,:vis_lag.shape[0],0], delaymatrix[:,:vis_lag.shape[0],1] + delaymatrix[:,:vis_lag.shape[0],0])) delay_horizon = NP.dstack((-delaymatrix[:,:vis_lag.shape[0],0], delaymatrix[:,:vis_lag.shape[0],0])) bl = bll[:vis_lag.shape[0]] label_str = r' $\alpha$ = {0[0]:+.3f} deg, $\delta$ = {0[1]:+.2f} deg'.format(pointing_radec[i,:]) + '\nLST = {0:.2f} deg'.format(lst[i]) for j in range((len(axs)-1)/2): blind = blori[blori[j]:blori[j+1]] sortind = NP.argsort(bl[blind], kind='heapsort') axs[j].lines[0].set_xdata(NP.arange(blind.size)) axs[j].lines[0].set_ydata(delay_ranges[i,blind[sortind],1]*1e6) axs[j].lines[0].set_linewidth(0.5) axs[j].lines[1].set_xdata(NP.arange(blind.size)) axs[j].lines[1].set_ydata(delay_horizon[i,blind[sortind],1]*1e6) axs[j].lines[1].set_linewidth(0.5) axs[j].lines[2] = axs[j].imshow(NP.abs(vis_lag[blind[sortind],NP.floor(0.5*vis_lag.shape[1]):,i].T), origin='lower', extent=(0, blind.size-1, 0.0, NP.amax(lags*1e6)), norm=PLTC.LogNorm(vmin=NP.amin(NP.abs(vis_lag)), vmax=NP.amax(NP.abs(vis_lag))), interpolation=None) axs[j].set_aspect('auto') axs[j+(len(axs)-1)/2].lines[0].set_xdata(NP.arange(blind.size)) axs[j+(len(axs)-1)/2].lines[0].set_ydata(delay_ranges[i,blind[sortind],0]*1e6) axs[j+(len(axs)-1)/2].lines[0].set_linewidth(0.5) axs[j+(len(axs)-1)/2].lines[1].set_xdata(NP.arange(blind.size)) axs[j+(len(axs)-1)/2].lines[1].set_ydata(delay_horizon[i,blind[sortind],0]*1e6) axs[j+(len(axs)-1)/2].lines[1].set_linewidth(0.5) axs[j+(len(axs)-1)/2].lines[2] = axs[j+(len(axs)-1)/2].imshow(NP.abs(vis_lag[blind[sortind],:NP.floor(0.5*vis_lag.shape[1]),i].T), origin='lower', extent=(0, blind.size-1, NP.amin(lags*1e6), 1e6*lags[NP.floor(0.5*lags.size)-1]), norm=PLTC.LogNorm(vmin=NP.amin(NP.abs(vis_lag)), vmax=NP.amax(NP.abs(vis_lag))), interpolation=None) axs[j+(len(axs)-1)/2].set_aspect('auto') cbax = fig.add_axes([0.175, 0.05, 0.7, 0.02]) cbar = fig.colorbar(axs[0].lines[2], cax=cbax, orientation='horizontal') cbax.set_xlabel('Jy Hz', labelpad=-1, fontsize=18) if backdrop_coords == 'radec': pbi = griddata(NP.hstack((xv[overlays[i]['roi_obj_inds']].reshape(-1,1),yv[overlays[i]['roi_obj_inds']].reshape(-1,1))), overlays[i]['pbeam'], NP.hstack((xv.reshape(-1,1),yv.reshape(-1,1))), method='nearest') axc = axs[-1] cntr = axc.contour(OPS.reverse(xv_uniq), yv_uniq, OPS.reverse(pbi.reshape(yv_uniq.size, xv_uniq.size), axis=1), 35) axc.set_aspect(1.5) axs[-1] = axc tpc.set_text(r' $\alpha$ = {0[0]:+.3f} deg, $\delta$ = {0[1]:+.2f} deg'.format(pointing_radec[i,:]) + '\nLST = {0:.2f} deg'.format(lst[i])) elif backdrop_coords == 'dircos': if (obsmode != 'drift') and (telescope != 'mwa_dipole'): axs[-1].lines[1] = axs[-1].imshow(overlays[i]['pbeam'], origin='lower', extent=(NP.amin(xv_uniq), NP.amax(xv_uniq), NP.amin(yv_uniq), NP.amax(yv_uniq)), norm=PLTC.LogNorm()) # cbaxes3 = fig.add_axes([0.65, 0.1, 0.02, 0.23]) # cbar3 = fig.colorbar(axs[-1].lines[1], cax=cbaxes3) axs[-1].lines[0].set_xdata(overlays[i]['fg_dircos'][overlays[i]['roi_obj_inds'],0]) axs[-1].lines[0].set_ydata(overlays[i]['fg_dircos'][overlays[i]['roi_obj_inds'],1]) axs[-1].lines[0].set_marker('.') return axs
bw = nchan * freq_resolution n_sky_sectors = 1 sky_sector = None # if None, use all sky sector. Accepted values are None, 0, 1, 2, or 3 if sky_sector is None: sky_sector_str = '_all_sky_' n_sky_sectors = 1 sky_sector = 0 else: sky_sector_str = '_sky_sector_{0:0d}_'.format(sky_sector) pointing_file = '/data3/t_nithyanandan/project_MWA/Aug23_obsinfo.txt' pointing_info_from_file = NP.loadtxt(pointing_file, skiprows=2, comments='#', usecols=(1,2,3), delimiter=',') obs_id = NP.loadtxt(pointing_file, skiprows=2, comments='#', usecols=(0,), delimiter=',', dtype=str) lst = 15.0 * pointing_info_from_file[:,2] pointings_altaz = OPS.reverse(pointing_info_from_file[:,:2].reshape(-1,2), axis=1) pointings_dircos = GEOM.altaz2dircos(pointings_altaz, units='degrees') pointings_hadec = GEOM.altaz2hadec(pointings_altaz, latitude, units='degrees') max_abs_delay = 2.5 # in micro seconds nside = 128 use_GSM = True use_DSM = False use_CSM = False use_NVSS = False use_SUMSS = False use_MSS = False use_GLEAM = False use_PS = False
pointing_info_from_file = NP.loadtxt(pointing_file, skiprows=2, comments='#', usecols=(1,2,3), delimiter=',') obs_id = NP.loadtxt(pointing_file, skiprows=2, comments='#', usecols=(0,), delimiter=',', dtype=str) if (telescope_id == 'mwa') or (telescope_id == 'mwa_tools') or (phased_array): delays_str = NP.loadtxt(pointing_file, skiprows=2, comments='#', usecols=(4,), delimiter=',', dtype=str) delays_list = [NP.fromstring(delaystr, dtype=float, sep=';', count=-1) for delaystr in delays_str] delay_settings = NP.asarray(delays_list) delay_settings *= 435e-12 delays = NP.copy(delay_settings) if n_snaps is None: n_snaps = pointing_info_from_file.shape[0] pointing_info_from_file = pointing_info_from_file[:min(n_snaps, pointing_info_from_file.shape[0]),:] obs_id = obs_id[:min(n_snaps, pointing_info_from_file.shape[0])] if (telescope_id == 'mwa') or (telescope_id == 'mwa_tools') or (phased_array): delays = delay_settings[:min(n_snaps, pointing_info_from_file.shape[0]),:] n_snaps = min(n_snaps, pointing_info_from_file.shape[0]) pointings_altaz = OPS.reverse(pointing_info_from_file[:,:2].reshape(-1,2), axis=1) pointings_altaz_orig = OPS.reverse(pointing_info_from_file[:,:2].reshape(-1,2), axis=1) lst = 15.0 * pointing_info_from_file[:,2] lst_wrapped = lst + 0.0 lst_wrapped[lst_wrapped > 180.0] = lst_wrapped[lst_wrapped > 180.0] - 360.0 lst_edges = NP.concatenate((lst_wrapped, [lst_wrapped[-1]+lst_wrapped[-1]-lst_wrapped[-2]])) if obs_mode is None: obs_mode = 'custom' if (obs_mode == 'dns') and beam_switch: angle_diff = GEOM.sphdist(pointings_altaz[1:,1], pointings_altaz[1:,0], pointings_altaz[:-1,1], pointings_altaz[:-1,0]) angle_diff = NP.concatenate(([0.0], angle_diff)) shift_threshold = 1.0 # in degrees # lst_edges = NP.concatenate(([lst_edges[0]], lst_edges[angle_diff > shift_threshold], [lst_edges[-1]])) lst_wrapped = NP.concatenate(([lst_wrapped[0]], lst_wrapped[angle_diff > shift_threshold], [lst_wrapped[-1]])) n_snaps = lst_wrapped.size - 1
sky_sector_str = '_sky_sector_{0:0d}_'.format(sky_sector) pointing_file = '/data3/t_nithyanandan/project_MWA/Aug23_obsinfo.txt' pointing_info_from_file = NP.loadtxt(pointing_file, skiprows=2, comments='#', usecols=(1, 2, 3), delimiter=',') obs_id = NP.loadtxt(pointing_file, skiprows=2, comments='#', usecols=(0, ), delimiter=',', dtype=str) lst = 15.0 * pointing_info_from_file[:, 2] pointings_altaz = OPS.reverse(pointing_info_from_file[:, :2].reshape(-1, 2), axis=1) pointings_dircos = GEOM.altaz2dircos(pointings_altaz, units='degrees') pointings_hadec = GEOM.altaz2hadec(pointings_altaz, latitude, units='degrees') max_abs_delay = 2.5 # in micro seconds nside = 128 use_GSM = True use_DSM = False use_CSM = False use_NVSS = False use_SUMSS = False use_MSS = False use_GLEAM = False use_PS = False