https://github.com/RadioAstronomySoftwareGroup/pyuvdata
Tip revision: b86f3ea682d8441fc6d368a1c323ae8d7f166929 authored by jburba on 01 March 2018, 15:08:13 UTC
Updating plotting output
Updating plotting output
Tip revision: b86f3ea
truncate_fhd_files.pro
pro truncate_fhd_files
dir = '/nfs/mwa-09/r1/djc/EoR2013/Aug23/fhd_nb_decon_March2016_small/'
observation = '1061316296'
outdir = dir+'data_for_tests/'
chan_range = [204-1,204+1]
t0 = 4 ; Starting time so we don't include the first two seconds (which are flagged)
nts_keep = 4 ; Will keep roughly 1/10 the times
ntile_keep = 9
restore,dir+'metadata/'+observation+'_obs.sav' ; Need the obs to get time bins
restore,dir+'metadata/'+observation+'_params.sav'
tmin_ind = (*obs.baseline_info).bin_offset[t0]
tmax_ind = (*obs.baseline_info).bin_offset[t0+nts_keep] ; Keep fraction of the original baseline times
blt_inds = where(((*obs.baseline_info).tile_a lt (ntile_keep+1)) and ((*obs.baseline_info).tile_b lt (ntile_keep+1)) $
and (params.time ge params.time[tmin_ind]) and (params.time lt params.time[tmax_ind]))
npol = 2
pols=['XX','YY']
; Now for the hard part
print,'Reorganizing obs structure'
bin_offset = Lonarr(nts_keep)
for t=1,(nts_keep-1) do bin_offset[t] = min(where(params.time[blt_inds] gt params.time[blt_inds[bin_offset[t-1]]]))
new_baseline_info = structure_update(*obs.baseline_info, $
tile_a=(*obs.baseline_info).tile_a[blt_inds], $
tile_b=(*obs.baseline_info).tile_b[blt_inds], $
bin_offset = bin_offset, $
jdate = ((*obs.baseline_info).jdate)[t0:(t0+nts_keep-1)], $
freq = ((*obs.baseline_info).freq)[chan_range[0]:chan_range[1]], $
fbin_i = ((*obs.baseline_info).fbin_i)[chan_range[0]:chan_range[1]], $
freq_use = ((*obs.baseline_info).freq_use)[chan_range[0]:chan_range[1]], $
time_use = ((*obs.baseline_info).time_use)[t0:(t0+nts_keep-1)])
obs_new = structure_update(obs, n_freq=chan_range[1]-chan_range[0]+1, $
n_time = nts_keep, nf_vis = obs.nf_vis[chan_range[0]:chan_range[1]],$
nbaselines = ntile_keep*(ntile_keep-1)/2)
*obs_new.baseline_info = new_baseline_info
*obs_new.vis_noise = (*obs.vis_noise)[*,chan_range[0]:chan_range[1]]
obs=obs_new
save,obs,filename=outdir+observation+'_obs.sav'
; params
print,'Slicing params'
params_new = {params, uu:params.uu[blt_inds], $
vv:params.vv[blt_inds], $
ww:params.ww[blt_inds], $
baseline_arr:params.baseline_arr[blt_inds], $
time:params.time[blt_inds]}
params = params_new
save,params,filename=outdir+observation+'_params.sav'
restore,dir+'vis_data/'+observation+'_flags.sav' ; Flag file
for pol=0,1 do begin
*flag_arr[pol] = (*flag_arr[pol])[chan_range[0]:chan_range[1],blt_inds]
endfor
save,flag_arr,filename=outdir+observation+'_flags.sav'
undefine,flag_arr
for pol=0,1 do begin
print,'Slicing pol '+pols[pol]
restore,dir+'vis_data/'+observation+'_vis_'+pols[pol]+'.sav' ; Dirty data
obs = obs_new
*vis_ptr = (*vis_ptr)[chan_range[0]:chan_range[1],blt_inds]
save,vis_ptr,obs,filename=outdir+observation+'_vis_'+pols[pol]+'.sav'
restore,dir+'vis_data/'+observation+'_vis_model_'+pols[pol]+'.sav' ; Model data
obs = obs_new
*vis_model_ptr = (*vis_model_ptr)[chan_range[0]:chan_range[1],blt_inds]
save,vis_model_ptr,obs,filename=outdir+observation+'_vis_model_'+pols[pol]+'.sav'
endfor
end