#! /usr/bin/env python # -*- coding: utf-8 -*- import sys import string import inspect from parameter_check import * from casa_stack_manip import stack_frame_find def importarchive( archivefiles=None, vis=None, bandname=None, freqtol=None, ): """Convert VLA archive file(s) to a CASA visibility data set (MS): ....Keyword arguments: ....archivefiles -- Name of input VLA archive file(s) ........default: <unset> ........example: archivefiles=['AP314_A950519.xp1','AP314_A950519.xp2'] ....vis -- Name of output visibility file (MS) ........default: <unset>; example: vis='NGC7538.ms' ....bandname -- VLA Frequency band ........default: <unset> - all bands; example: bandname='K' ........<Options: '4'=48-96 MHz,'P'=298-345 MHz,'L'=1.15-1.75 GHz, ........'C'=4.2-5.1 GHz,'X'=6.8-9.6 GHz,'U'=13.5-16.3 GHz, ........'K'=20.8-25.8 GHz,'Q'=38-51 GHz> ....#projectname -- Observing project name ....#....default: <unset>; example='AP314' ....freqtol -- Tolerance in frequency shift in naming spectral windows ........default: channel width of current spectral window in Hz ........example: 150000.0 .... ....""" myf = stack_frame_find( ) vftask = myf['vftask'] vlafiller = vftask.fill # fg = myf['fg'] aflocal = casac.agentflagger() # ## # Handle globals or user over-ride of arguments function_signature_defaults = \ dict(zip(importarchive.func_code.co_varnames, importarchive.func_defaults)) for item in function_signature_defaults.iteritems(): (key, val) = item keyVal = eval(key) if keyVal == None: # user hasn't set it - use global/default pass else: # user has set it - use over-ride myf[key] = keyVal archivefiles = myf['archivefiles'] vis = myf['vis'] bandname = myf['bandname'] freqtol = myf['freqtol'] # # ## # Add type/menu/range error checking here if type(archivefiles) == str: archivefiles = [archivefiles] arg_names = ['archivefiles', 'vis', 'bandname', 'freqtol'] arg_values = [archivefiles, vis, bandname, freqtol] arg_types = [list, str, str, float] try: parameter_checktype(arg_names, arg_values, arg_types) parameter_checkmenu('bandname', bandname, [ '4', 'P', 'L', 'C', 'X', 'U', 'K', 'Q', ]) except TypeError, e: print 'importarchive -- TypeError: ', e return except ValueError, e: print 'importarchive -- OptionError: ', e return # ## # Python script i = 0 overwrite = True try: for archivefile in archivefiles: if i > 0: overwrite = False vlafiller(msname=vis, inputfile=archivefile, overwrite=overwrite, bandname=bandname, freqtol=freqtol) i = i + 1 # write history if (type(vis) == str) & os.path.exists(vis): ms.open(vis, nomodify=False) else: raise Exception, \ 'Visibility data set not found - please verify the name' ms.writehistory(message='taskname = importuvfits', origin='importuvfits') ms.writehistory(message='fitsfile = "' + str(fitsfile) + '"' , origin='importuvfits') ms.writehistory(message='vis = "' + str(vis) + '"', origin='importuvfits') ms.close() except: print '*** Error ***' ok = aflocal.open(vis) ok = aflocal.saveflagversion('Original', comment='Original flags at import into CASA' , merge='save') ok = aflocal.done() saveinputs = myf['saveinputs'] saveinputs('importarchive', 'importarchive.last')