Coverage for /wheeldirectory/casa-6.7.0-12-py3.10.el8/lib/py/lib/python3.10/site-packages/casatasks/sdsidebandsplit.py: 100%
27 statements
« prev ^ index » next coverage.py v7.6.4, created at 2024-11-01 07:19 +0000
« prev ^ index » next coverage.py v7.6.4, created at 2024-11-01 07:19 +0000
1##################### generated by xml-casa (v2) from sdsidebandsplit.xml ###########
2##################### 9a41da2f188957e5ce7307211fb89954 ##############################
3from __future__ import absolute_import
4import numpy
5from casatools.typecheck import CasaValidator as _val_ctor
6_pc = _val_ctor( )
7from casatools.coercetype import coerce as _coerce
8from casatools.errors import create_error_string
9from .private.task_sdsidebandsplit import sdsidebandsplit as _sdsidebandsplit_t
10from casatasks.private.task_logging import start_log as _start_log
11from casatasks.private.task_logging import end_log as _end_log
12from casatasks.private.task_logging import except_log as _except_log
14class _sdsidebandsplit:
15 """
16 sdsidebandsplit ---- [EXPERIMENTAL] invoke sideband separation using FFT
18 [EXPERIMENTAL] SD sideband separation and supression task:
19 Invoke sideband separation / supression using FFT
21 --------- parameter descriptions ---------------------------------------------
23 imagename a list of names of input images. At least two valid images are required for processing
24 outfile Prefix of output image name.
25 A suffix, ".signalband" or ".imageband" is added to
26 output image name depending on the side band side being solved.
27 overwrite overwrite option
28 signalshift a list of channel number shifts in signal side band.
29 The number of elements must be equal to that of imagename
30 imageshift t of channel number shifts in image side band.
31 The number of elements must be either zero or equal to that of imagename.
32 In case of zero length array, the values are obtained from signalshift
33 assuming the shifts are the same magnitude in opposite direction.
34 getbothside sideband separation (True) or supression (False)
35 refchan reference channel of spectral axis in image sideband
36 refval frequency at the reference channel of spectral axis in image sideband (e.g., "100GHz")
37 otherside solve the solution of the other side band side and subtract the solution
38 threshold Rejection limit of solution. The value must be greater than 0.0 and less than 1.0.
39 [1;42mRETURNS[1;m void
41 --------- examples -----------------------------------------------------------
44 Solve signal sideband
46 sdsidebandsplit(imagename=['shift_0ch.image', 'shift_132ch.image', 'shift_neg81ch.image'],
47 outfile='separated.image', signalshift=[0.0, +132.0, -81.0],
48 imageshift=[0.0, -132.0, +81.0])
50 The output image is 'separated.image.signalband'.
52 Solve both signal and image sidebands (need to set frequency of image sideband explicitly)
54 sdsidebandsplit(imagename=['shift_0ch.image', 'shift_132ch.image', 'shift_neg81ch.image'],
55 outfile='separated.image', signalshift=[0.0, +132.0, -81.0],
56 imageshift=[0.0, -132.0, +81.0],
57 getbothside=True, refchan=0.0, refval='805.8869GHz')
59 The output images are 'separated.image.signalband' and 'separated.image.imageband'
60 for signal and image sideband, respectively.
62 Obtain signal sideband image by solving image sideband
64 sdsidebandsplit(imagename=['shift_0ch.image', 'shift_132ch.image', 'shift_neg81ch.image'],
65 outfile='separated.image', signalshift=[0.0, +132.0, -81.0],
66 imageshift=[0.0, -132.0, +81.0], otherside=True)
68 Solution of image sidband is obtained and subtracted from the original (double sideband) spectra
69 to derive spectra of signal sideband.
74 """
76 _info_group_ = """single dish"""
77 _info_desc_ = """[EXPERIMENTAL] invoke sideband separation using FFT"""
79 def __call__( self, imagename=[ ], outfile='', overwrite=False, signalshift=[ ], imageshift=[ ], getbothside=False, refchan=float(0.0), refval='', otherside=False, threshold=float(0.2) ):
80 schema = {'imagename': {'type': 'cReqPathVec', 'coerce': [_coerce.to_list,_coerce.expand_pathvec]}, 'outfile': {'type': 'cStr', 'coerce': _coerce.to_str}, 'overwrite': {'type': 'cBool'}, 'signalshift': {'type': 'cFloatVec', 'coerce': [_coerce.to_list,_coerce.to_floatvec]}, 'imageshift': {'type': 'cFloatVec', 'coerce': [_coerce.to_list,_coerce.to_floatvec]}, 'getbothside': {'type': 'cBool'}, 'refchan': {'type': 'cFloat', 'coerce': _coerce.to_float}, 'refval': {'type': 'cStr', 'coerce': _coerce.to_str}, 'otherside': {'type': 'cBool'}, 'threshold': {'type': 'cFloat', 'coerce': _coerce.to_float, 'min': 0.0, 'max': 1.0}}
81 doc = {'imagename': imagename, 'outfile': outfile, 'overwrite': overwrite, 'signalshift': signalshift, 'imageshift': imageshift, 'getbothside': getbothside, 'refchan': refchan, 'refval': refval, 'otherside': otherside, 'threshold': threshold}
82 assert _pc.validate(doc,schema), create_error_string(_pc.errors)
83 _logging_state_ = _start_log( 'sdsidebandsplit', [ 'imagename=' + repr(_pc.document['imagename']), 'outfile=' + repr(_pc.document['outfile']), 'overwrite=' + repr(_pc.document['overwrite']), 'signalshift=' + repr(_pc.document['signalshift']), 'imageshift=' + repr(_pc.document['imageshift']), 'getbothside=' + repr(_pc.document['getbothside']), 'refchan=' + repr(_pc.document['refchan']), 'refval=' + repr(_pc.document['refval']), 'otherside=' + repr(_pc.document['otherside']), 'threshold=' + repr(_pc.document['threshold']) ] )
84 task_result = None
85 try:
86 task_result = _sdsidebandsplit_t( _pc.document['imagename'], _pc.document['outfile'], _pc.document['overwrite'], _pc.document['signalshift'], _pc.document['imageshift'], _pc.document['getbothside'], _pc.document['refchan'], _pc.document['refval'], _pc.document['otherside'], _pc.document['threshold'] )
87 except Exception as exc:
88 _except_log('sdsidebandsplit', exc)
89 raise
90 finally:
91 task_result = _end_log( _logging_state_, 'sdsidebandsplit', task_result )
92 return task_result
94sdsidebandsplit = _sdsidebandsplit( )