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

40 statements  

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

1import tempfile 

2import shutil 

3 

4from casatasks import casalog 

5from casatools import image, imagepol 

6from .ialib import write_image_history 

7 

8def rmfit( 

9 imagename, rm, rmerr, pa0, pa0err, nturns, chisq, 

10 sigma, rmfg, rmmax, maxpaerr 

11): 

12 casalog.origin('prom') 

13 myia = image() 

14 myia.dohistory(False) 

15 mypo = imagepol() 

16 tmpim = "" 

17 try: 

18 if len(imagename) == 0: 

19 raise ValueError("imagename must be specified.") 

20 if type(imagename) == type(['s']): 

21 # negative axis value means concatenate along spectral axis 

22 tmpim = tempfile.mkdtemp(suffix=".im", prefix="_rmfit_concat") 

23 myia = myia.imageconcat( 

24 outfile=tmpim, infiles=imagename, relax=True, 

25 axis=-1, overwrite=True 

26 ) 

27 if not myia: 

28 raise RuntimeError("Unable to concatenate images.") 

29 myia.done() 

30 mypo.open(tmpim) 

31 else: 

32 if not mypo.open(imagename): 

33 raise RuntimeError("Cannot create image analysis tool using " + imagename) 

34 mypo.rotationmeasure( 

35 rm=rm, rmerr=rmerr, pa0=pa0, pa0err=pa0err, nturns=nturns, chisq=chisq, 

36 sigma=sigma, rmfg=rmfg, rmmax=rmmax, maxpaerr=maxpaerr 

37 ) 

38 try: 

39 param_names = rmfit.func_code.co_varnames[:rmfit.func_code.co_argcount] 

40 param_vals = [eval(p) for p in param_names] 

41 for im in [rm, rmerr, pa0, pa0err, nturns, chisq]: 

42 write_image_history( 

43 im, sys._getframe().f_code.co_name, 

44 param_names, param_vals, casalog 

45 ) 

46 except Exception as instance: 

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

48 # tasks no longer return bools 

49 finally: 

50 if (myia): 

51 myia.done() 

52 if (mypo): 

53 mypo.done() 

54 if len(tmpim) > 0: 

55 try: 

56 shutil.rmtree(tmpim) 

57 except Exception as exc: 

58 casalog.post("Could not remove " + tmpim + " because " + str(exc))