Coverage for /wheeldirectory/casa-6.7.0-12-py3.10.el8/lib/py/lib/python3.10/site-packages/casatasks/private/task_imcontsub.py: 93%

45 statements  

« prev     ^ index     » next       coverage.py v7.6.4, created at 2024-11-01 07:19 +0000

1import os 

2import re 

3import sys 

4 

5from casatools import image, regionmanager 

6from casatasks import casalog 

7from .ialib import write_image_history 

8 

9def imcontsub( 

10 imagename, linefile, contfile, fitorder, 

11 region, box, chans, stokes 

12): 

13 casalog.origin('imcontsub') 

14 

15 if ( len( linefile ) > 0 ): 

16 if ( os.path.exists( linefile ) ): 

17 raise ValueError('Error: file ' + linefile 

18 +' already exists, please delete before continuing.',\ 

19 'SEVERE' ) 

20 else: 

21 casalog.post("The linefile parameter is empty, consequently the" 

22 +" spectral line image will NOT be\nsaved on disk.", \ 

23 'WARN') 

24 

25 if ( len( contfile ) > 0 ): 

26 if ( os.path.exists( contfile ) ): 

27 raise ValueError('Error: Unable to continue file '+contfile\ 

28 +' already exists, please delete before continuing.') 

29 else: 

30 casalog.post("The contfile parameter is empty, consequently the" 

31 +" continuum image will NOT be\nsaved on disk.", \ 

32 'WARN') 

33 

34 _myia = image() 

35 _myia.dohistory(False) 

36 _myia.open(imagename) 

37 mycsys = _myia.coordsys() 

38 if isinstance(box, list): 

39 box = ', '.join([str(b) for b in box]) 

40 

41 # Don't mix chans up with reg! reg selects a subset for output, and chans 

42 # selects a subset to define the line-free channels. 

43 myrg = regionmanager() 

44 reg = myrg.frombcs( 

45 csys=mycsys.torecord(), shape=_myia.shape(), 

46 box=box, stokes=stokes, stokescontrol="f", 

47 region=region 

48 ) 

49 channels = [] 

50 if chans != None and len(chans) > 0: 

51 channels = myrg.selectedchannels(chans, _myia.shape()) 

52 

53 try: 

54 # Now do the continuum subtraction. 

55 lineim = _myia.continuumsub( 

56 outline=linefile, outcont=contfile, region=reg, 

57 channels=channels, fitorder=fitorder, 

58 overwrite=False 

59 ) 

60 if not lineim: 

61 raise Exception("ia.continuumsub did not complete successfully") 

62 try: 

63 param_names = imcontsub.__code__.co_varnames[:imcontsub.__code__.co_argcount] 

64 local_vars = locals( ) 

65 param_vals = [local_vars[p] for p in param_names] 

66 

67 for x in [lineim, contfile]: 

68 write_image_history( 

69 x, sys._getframe().f_code.co_name, 

70 param_names, param_vals, casalog 

71 ) 

72 except Exception as instance: 

73 casalog.post("*** Error \'%s\' updating HISTORY" % (instance), 'WARN') 

74 lineim.done() 

75 

76 finally: 

77 _myia.done() 

78 if (lineim): 

79 lineim.done() 

80 if ( reg != None ): 

81 del reg