from __future__ import absolute_import from casatasks.private.casa_transition import is_CASA6 if is_CASA6: from casatools import ms as mstool from casatasks import casalog else: from taskinit import mstool, casalog def visstat( vis=None, axis=None, datacolumn=None, useflags=None, spw=None, field=None, selectdata=None, antenna=None, uvrange=None, timerange=None, correlation=None, scan=None, array=None, observation=None, timeaverage=None, timebin=None, timespan=None, maxuvwdistance=None, disableparallel=None, ddistart=None, taql=None, monolithic_processing=None, intent=None, reportingaxes=None, doquantiles=None ): casalog.origin('visstat') mslocal = mstool() mslocal.open(vis) if axis in ['amp', 'amplitude', 'phase', 'imag', 'imaginary', 'real']: complex_type = axis col = datacolumn else: complex_type = '' col = axis if (not selectdata): antenna='' uvrange='' timerange='' correlation='' scan='' array='' observation = '' s = mslocal.statistics( column=col.upper(), complex_value=complex_type, useflags=useflags, useweights=False, spw=spw, field=field, baseline=antenna, uvrange=uvrange, time=timerange, correlation=correlation, scan=scan, intent=intent, array=array, obs=str(observation), reportingaxes=str(reportingaxes), timeaverage=timeaverage, timebin=timebin, timespan=timespan, maxuvwdistance=maxuvwdistance, doquantiles=doquantiles ) mslocal.close() for stats in s.keys(): casalog.post(stats + " values --- ", "NORMAL") if s[stats]['npts'] > 0: casalog.post(" -- number of points [npts]: " + str(int(round(s[stats]['npts']))), "NORMAL") casalog.post(" -- minimum value [min]: " + str(s[stats]['min' ]), "NORMAL") casalog.post(" -- maximum value [max]: " + str(s[stats]['max' ]), "NORMAL") casalog.post(" -- Sum of values [sum]: " + str(s[stats]['sum' ]), "NORMAL") casalog.post(" -- Sum of squared values [sumsq]: " + str(s[stats]['sumsq']), "NORMAL") casalog.post(stats + " statistics --- ", "NORMAL") if s[stats]['npts'] > 0: casalog.post(" -- Mean of the values [mean]: " + str(s[stats]['mean']), "NORMAL") casalog.post(" -- Variance of the values [variance]: " + str(s[stats]['variance']), "NORMAL") casalog.post(" -- Standard deviation of the values [stddev]: " + str(s[stats]['stddev']), "NORMAL") casalog.post(" -- Root mean square [rms]: " + str(s[stats]['rms']), "NORMAL") if doquantiles: casalog.post(" -- Median of the pixel values [median]: " + str(s[stats]['median']), "NORMAL") casalog.post(" -- Median of the deviations [medabsdevmed]: " + str(s[stats]['medabsdevmed']), "NORMAL") casalog.post(" -- First quartile [firstquartile]: " + str(s[stats]['firstquartile']), "NORMAL") casalog.post(" -- Third quartile [thirdquartile]: " + str(s[stats]['thirdquartile']), "NORMAL") else: casalog.post(stats + " -- No valid points found", "WARN") return s