Coverage for /wheeldirectory/casa-6.7.0-12-py3.10.el8/lib/py/lib/python3.10/site-packages/casatasks/private/imtools.py: 91%
34 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 shutil
2from casatools import image, table
4def pixelmask2cleanmask(imagename='',maskname='mask0',maskimage='',usemasked=False):
5 """
6 convert pixel(T/F) mask (in a CASA image) to a mask image (1/0)
7 used for clean
8 imagename - input imagename that contain a mask to be used
9 maskname - mask name in the image (default: mask0)
10 maskimage - output mask image name
11 usemasked - if True use masked region as a valid region
12 """
13 ia = image( )
14 ia.open(imagename)
15 masks=ia.maskhandler('get')
16 ia.close()
18 inmaskname=''
19 if type(masks)!=list:
20 masks=[masks]
21 for msk in masks:
22 if maskname == msk:
23 inmaskname=msk
24 break
25 if inmaskname=='':
26 raise Exception("mask %s does not exist. Available masks are: %s" % (maskname,masks))
28 tb = table( )
29 tb.open(imagename+'/'+maskname)
30 dat0=tb.getcol('PagedArray')
31 tb.close()
33 #os.system('cp -r %s %s' % (imagename, maskimage))
34 shutil.copytree(imagename,maskimage)
35 ia.open(maskimage)
36 # to unset mask
37 ia.maskhandler('set',[''])
38 # make all valid
39 if (usemasked):
40 ia.set(1)
41 else:
42 ia.set(0)
43 ia.close()
44 #
45 tb.open(maskimage,nomodify=False)
46 imd=tb.getcol('map')
47 # maybe shape check here
48 #by default use True part of bool mask
49 masked=1
50 if (usemasked): masked=0
51 imd[dat0]=masked
52 tb.putcol('map',imd)
53 tb.close()