Coverage for /wheeldirectory/casa-6.7.0-12-py3.10.el8/lib/py/lib/python3.10/site-packages/casatasks/private/task_uvcontsub.py: 89%
38 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
1import os
2from casatools import ms, mstransformer
3from casatasks import casalog
4from .mstools import write_history
7def uvcontsub(vis=None, outputvis=None, field=None, spw=None,
8 scan=None, intent=None, array=None, observation=None,
9 datacolumn=None, fitspec=None, fitmethod=None, fitorder=None,
10 writemodel=None):
12 """Continuum subtraction in the uv plane"""
14 casalog.origin('uvcontsub')
16 casalog.post('The task uvcontsub has been updated. It does not yet support combining '
17 'spws for fitting. If you need this functionality please use '
18 'uvcontsub_old.')
20 result = {}
21 mtlocal = mstransformer()
23 try:
24 if not outputvis:
25 raise ValueError('parameter outputvis: a name is required for the output MS')
26 elif os.path.exists(outputvis):
27 raise ValueError('Output MS ({}) already exists, refusing to overwrite it'.
28 format(outputvis))
30 # Set up the mstransformer config from task parameters
31 config = {'uvcontsub': True,
32 'inputms': vis,
33 'outputms': outputvis,
34 'field': field,
35 'spw': spw,
36 'array': array,
37 'scan': scan,
38 'intent': intent,
39 'observation': observation,
40 'datacolumn': datacolumn,
41 'reindex': False
42 }
43 # Add uvcontsub-TVI config options
44 if fitmethod == 'gsl':
45 denoising_lib = True
46 elif fitmethod == 'casacore':
47 denoising_lib = False
48 else:
49 raise ValueError(f'Unrecognized fit method: {fitmethod}')
50 uvcont_cfg = {'fitspec': fitspec,
51 'denoising_lib': denoising_lib,
52 'niter': 1,
53 'fitorder': fitorder,
54 'writemodel': writemodel,
55 'want_cont': False,
56 'nthreads': None
57 }
58 config['uvcontsublib'] = uvcont_cfg
60 # Configure the mstransformer tool
61 casalog.post('mstransfom config: {}'.format(config), 'DEBUG')
62 mtlocal.config(config)
64 # Open the MS, select the data and configure the output
65 mtlocal.open()
67 # Run the tool
68 casalog.post('Running continnum subtraction')
69 mt_result = mtlocal.run()
71 finally:
72 mtlocal.done()
74 # Write history to output MS only. Input MS is read only
75 try:
76 mslocal = ms()
77 param_names = uvcontsub.__code__.co_varnames[:uvcontsub.__code__.co_argcount]
78 loc_vars = locals()
79 param_vals = [loc_vars[p] for p in param_names]
80 write_history(mslocal, outputvis, 'uvcontsub', param_names,
81 param_vals, casalog)
82 except Exception as instance:
83 casalog.post("*** Error \'{}\' updating HISTORY".format(instance), 'WARN')
84 finally:
85 mslocal.done()
87 return mt_result['uvcontsub']