from __future__ import absolute_import
from casatasks.private.casa_transition import is_CASA6, is_python3
if is_CASA6:
from .mstools import write_history
from casatools import table, ms, mstransformer
from casatools import measures as me
from casatasks import casalog
from .parallel.parallel_data_helper import ParallelDataHelper
else:
from mstools import write_history
from taskinit import tbtool, mstool, mttool, metool
from taskinit import casalog
from parallel.parallel_data_helper import ParallelDataHelper
def phaseshift(
vis=None, outputvis=None, keepmms=None, field=None,
spw=None, scan=None, intent=None, array=None,
observation=None, datacolumn=None, phasecenter=None
):
"""
Changes the phase center for either short or large
offsets/angles w.r.t. the original
"""
casalog.origin('phaseshift')
if len(phasecenter) == 0:
raise ValueError('phasecenter parameter must be specified')
pdh = ParallelDataHelper("phaseshift", locals())
try:
pdh.setupIO()
except Exception as instance:
casalog.post(str(instance), 'ERROR')
raise RuntimeError(str(instance))
if pdh.isMMSAndNotServer(vis) and keepmms:
if not pdh.validateInputParams():
raise RuntimeError('Unable to continue with MMS processing')
pdh.setupCluster('phaseshift')
try:
pdh.go()
except Exception as instance:
casalog.post(str(instance), 'ERROR')
raise RuntimeError(str(instance))
return
if is_CASA6:
tblocal = table()
mslocal = ms()
mtlocal = mstransformer()
melocal = me()
else:
tblocal = tbtool()
mslocal = mstool()
mtlocal = mttool()
melocal = metool()
try:
dirstr = phasecenter.split(' ')
if not melocal.direction(dirstr[0], dirstr[1], dirstr[2]):
raise ValueError("Illegal phacecenter specification " + phasecenter)
try:
config = {}
config = pdh.setupParameters(
inputms=vis, outputms=outputvis, field=field,
spw=spw, array=array, scan=scan, intent=intent,
observation=observation
)
datacolumn = datacolumn.upper()
if datacolumn == 'CORRECTED':
tblocal.open(vis)
if 'CORRECTED_DATA' not in tblocal.colnames():
casalog.post(
'Input CORRECTED_DATA does not exist. Will use DATA',
'WARN'
)