def target_info(trial_name_end=''): # Read and return target info target = os.getcwd().split('/')[-1] trial_name = target + trial_name_end os.system('rm -r ' + trial_name + '.*') subdirs = ['01', '02', '03'] mss = [] for subdir in subdirs: if os.path.isdir(subdir): fns = os.listdir(subdir) for fn in fns: temp = fn.split('.') if len(temp) > 4: if temp[-1] == 'split': mss.append(subdir + '/' + fn) # Calculate restfreq and phasecenter gdata = gal_data.gal_data(target) ra = str(round(gdata.field('RA_DEG')[0], 1)) + 'deg ' dec = str(round(gdata.field('DEC_DEG')[0], 1)) + 'deg' glx_ctr = 'J2000 ' + ra + dec # target: name of target galaxy # mss: the calibrated ms files final_vis = target + '.ms' if os.path.isdir(final_vis): print("...Removing previous final vis file") rmtree(final_vis) print("...Concating " + str(len(mss)) + " ms files for " + target) concat(vis=mss, concatvis=final_vis) return target, mss, final_vis, glx_ctr
def concatvis(vislist, outputfile='combinedvis.ms', copypointing=False, timesort=True): """ Preferred concat """ from tasks import concat concat(vis=vislist, concatvis=outputfile, copypointing=copypointing, timesort=timesort)
minpb = 0.1 weighting = 'natural' robust = 0.0 restfreq = rest_freq usescratch = False interpolation = 'linear' if do_concat: ms_names = [] for f in listdir_fullpath(line_direc): if f.endswith(".ms"): ms_names.append(f) rmtables(concat_ms) concat(vis=ms_names, concatvis=concat_ms) if dirty_cube_nosub: # Check that the concatenated MS exists if not os.path.exists(concat_ms): raise IOError("Concatenated MS does not exist in the given directory.") if not os.path.exists(dirty_image_direc): os.mkdir(dirty_image_direc) out_image = os.path.join(dirty_image_direc, line_name + "_" + project_name + "_dirty_nocontsub") rmtables(out_image + ".*")
sm.setauto(autocorrwt=0.0) sm.settimes(integrationtime=integ, usehourangle=F, referencetime=me.epoch('utc', starttime)) sm.observe('MyPointSrc', 'band', starttime=str(int(time_bins[i] - integ)) + 's', stoptime=str(int(time_bins[i])) + 's') sm.setdata(spwid=0, fieldid=0) sm.predict(imagename=path_dir + 'Gaussian.im') sm.setnoise(mode='tsys-atm', pwv='4mm') sm.close() print 'Done ', i, ' of ', len(time_bins), '.' # concat all time bin MSs concat(mslist, concatvis=osjoin(path_dir, 'testconcat.ms')) # check output and clean to make sure everything works! # os.system('rm -rf ' + path_dir + 'testsrc*.ms') # listobs(path_dir + 'testconcat.ms', listfile=path_dir + 'listobs.txt') # os.system('pluma ' + path_dir + 'listobs.txt &') # plotms(vis=path_dir + 'testconcat.ms', xaxis="time", yaxis="amp", # coloraxis="field", iteraxis="antenna", avgtime='60s') # clean(vis=path_dir + 'testconcat.ms', imagename=path_dir + 'whole_dataset', field='', mode='mfs', # imsize=imsize, cell=cellsize, weighting='natural', spw='', nterms=1, # niter=0, gain=0.1, threshold='100mJy', interactive=T) # imview(path_dir + 'whole_dataset.image')
member_uid = path.split("member.")[-1].split("/")[0] merged_continuum_fn = os.path.join( path, "{field}_{band}_{muid}_continuum_merged.cal.ms".format( field=field, band=band, muid=member_uid)) if os.path.exists(merged_continuum_fn): logprint( "Skipping merged continuum {0} because it's done".format( merged_continuum_fn), ) else: logprint( "Merging continuum for {0} {1} into {2}".format( merged_continuum_fn, field, band), ) concat( vis=cont_to_merge[band][field], concatvis=merged_continuum_fn, ) cont_mses.append(merged_continuum_fn) cont_mses_unconcat.append(cont_to_merge[band][field]) with open('continuum_mses.txt', 'w') as fh: for line in cont_mses: fh.write(line + '\n') with open('continuum_mses_unconcat.txt', 'w') as fh: for line in cont_mses: fh.write(line + '\n') with open('cont_metadata.json', 'w') as fh: fh.write(cont_to_merge)
muid=member_uid) ) # merge the continuum measurement sets to ease bookkeeping if os.path.exists(merged_continuum_fn): logprint("Skipping merged continuum {0} because it's done" .format(merged_continuum_fn),) elif field not in fields: logprint("Skipping {0} because it is not one of the " "selected fields (but its metadata is being " "collected in continuum_mses.txt)".format(merged_continuum_fn)) else: logprint("Merging continuum for {0} {1} into {2}" .format(merged_continuum_fn, field, band),) rslt = concat(vis=cont_to_merge[band][field], concatvis=merged_continuum_fn,) print(("Concat failed! result was {0}".format(rslt))) flagdata(vis=merged_continuum_fn, mode='manual', autocorr=True) cont_mses.append(merged_continuum_fn) # merge the best sensitivity continuum too merged_continuum_bsens_fn = os.path.join( path, "{field}_{band}_{muid}_continuum_merged_bsens.cal.ms" .format(field=field, band=band, muid=member_uid) ) if os.path.exists(merged_continuum_bsens_fn): logprint("Skipping merged continuum bsens {0} because it's done" .format(merged_continuum_bsens_fn),)
if os.getenv('DO_NOT_CONCAT'): concatvis = vis elif any('concat' in x for x in vis): logprint("NOT concatenating vis={0}.".format(vis), origin='almaimf_line_imaging') elif not os.path.exists(concatvis): if do_contsub and os.path.exists(concatvis + ".contsub"): logprint( "Concatvis-contsub already exists, though non-contsub may not", origin='almaimf_line_imaging') else: logprint( "Concatenating visibilities {vis} into {concatvis}". format(vis=vis, concatvis=concatvis), origin='almaimf_line_imaging') concat(vis=vis, concatvis=concatvis) if do_contsub: if not os.path.exists(concatvis + ".contsub"): logprint( "Concatvis contsub {0}.contsub does not exist, doing continuum subtraction." .format(str(concatvis)), origin='almaimf_line_imaging') contfile12m, contfile7m = merge_contdotdat( field, band, basepath='.', datfiles=metadata[band][field]['cont.dat'].values()) contfile = contfile12m
stokes='RR RL LR LL') sm.setfield(sourcename='MyPointSrc', sourcedirection=loca.split(' ')) #sm.setlimits(shadowlimit=0.001, elevationlimit='8.0deg') sm.setauto(autocorrwt=0.0) sm.settimes(integrationtime=integ, usehourangle=F, referencetime=me.epoch('utc', starttime)) sm.observe('MyPointSrc', 'band', starttime=str(int(time_bins[i] - integ)) + 's', stoptime=str(int(time_bins[i])) + 's') sm.setdata(spwid=0, fieldid=0) sm.predict(imagename=path_dir + 'Gaussian.im') sm.setnoise(mode='tsys-atm', pwv='4mm') sm.close() print 'Done ', i, ' of ', len(time_bins), '.' # concat all time bin MSs concat(mslist, concatvis=osjoin(path_dir, 'testconcat.ms')) # check output and clean to make sure everything works! # os.system('rm -rf ' + path_dir + 'testsrc*.ms') # listobs(path_dir + 'testconcat.ms', listfile=path_dir + 'listobs.txt') # os.system('pluma ' + path_dir + 'listobs.txt &') # plotms(vis=path_dir + 'testconcat.ms', xaxis="time", yaxis="amp", # coloraxis="field", iteraxis="antenna", avgtime='60s') # clean(vis=path_dir + 'testconcat.ms', imagename=path_dir + 'whole_dataset', field='', mode='mfs', # imsize=imsize, cell=cellsize, weighting='natural', spw='', nterms=1, # niter=0, gain=0.1, threshold='100mJy', interactive=T) # imview(path_dir + 'whole_dataset.image')
vis_1 = sys.argv[-5] vis_2 = sys.argv[-4] model = sys.argv[-3] mask = sys.argv[-2] out_root = sys.argv[-1] if model == "None": model = None if mask == "None": mask = None vis = out_root + ".ms" if not os.path.exists(vis): casalog.post("Concatenating MS sets together before cleaning.") concat(vis=[vis_1, vis_2], concatvis=vis) out_root = vis[:-3] # Define a valid mask. This stays true so long as a given mask contains a # usable region. valid_mask = True if mask is not None: # Check if there's anything in the mask before cleaning ia.open(mask) stats_dict = ia.statistics() ia.close() # If there's nothing there, max == min max_val = stats_dict["max"] if max_val == 0: casalog.post("No valid region in the given mask. Skipping clean.")