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
示例#2
0
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)
示例#3
0
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 + ".*")
示例#4
0
    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')
示例#5
0
        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)
示例#6
0
                                                   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),)
示例#7
0
            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
示例#8
0
                   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.")