for all chunks: load chunk from disk (buffer the io) wait for any previous gridding operations to finish up deep copy chunk call the correct gridding method (single / duel / quad with corrections) to operate on the in parallel start up the gridder if last chunk then normalize else continue on to start buffering the next chunk #end for chunks #end for ms compact and finalize grids write out to disk (either png or FITS) optionally stitch together using montage ''' for ms_index,ms in enumerate(ms_names): print "NOW IMAGING %s" % ms data = data_set_loader.data_set_loader(ms,read_jones_terms=parser_args['do_jones_corrections']) data.read_head() ''' Create convolution filter ''' filter_creation_timer = timer.timer() lambda_min = np.min(data._chan_wavelengths) #as per Synthesis Imaging II, pg 24. w is maximum at low elevations and when baseline and source vectors have same azimuth (ie. parallel): w_max = data._maximum_baseline_length / lambda_min print "The maximum w (measured in wavelengths) is estimated to be", w_max with filter_creation_timer: conv = convolution_filter.convolution_filter(parser_args['conv_sup'], parser_args['conv_oversamp'],parser_args['conv'], "1D_AA" if parser_args['wplanes'] <= 1 else ("2D_WPROJ" if parser_args['use_back_end'] == 'CPU' else "1D_WPROJ"),parser_args['wplanes'], parser_args['npix_l'],parser_args['npix_m'],
along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ''' import argparse import numpy as np import pylab import math from pyrap.tables import * from helpers import data_set_loader if __name__ == "__main__": parser = argparse.ArgumentParser(description="A small utility to write out a set of jones matricies to a new casa table") parser.add_argument("input_ms", help="Name of MS to modify", type=str) parser.add_argument("no_direction", help="Name of model FITS image",type=int) parser_args = vars(parser.parse_args()) data = data_set_loader.data_set_loader(parser_args['input_ms']) data.read_head() assert(data._no_polarization_correlations == 4) #compute set of timestamp indicies: casa_ms_table = table(parser_args['input_ms'],ack=False,readonly=False) time_window_centre = casa_ms_table.getcol("TIME") time_indicies = np.zeros(casa_ms_table.nrows(),dtype=np.intp) timestamp_index = 0 last_timestamp_time = time_window_centre[0] print "FOUND %d ROWS IN MAIN TABLE" % casa_ms_table.nrows() for r in range(0,casa_ms_table.nrows()): current_time = time_window_centre[r] if current_time > last_timestamp_time: timestamp_index+=1 last_timestamp_time = current_time