diff --git a/imcal.py b/imcal.py index 7482ae9f3a17e9f459a7f2d73941af636ab96e10..7f7553c3c2eaf0c25959bd1b8993889b0d29ce30 100755 --- a/imcal.py +++ b/imcal.py @@ -28,11 +28,11 @@ import astropy.units as u from astropy.io import fits # the executables: -dppp_bin = distutils.spawn.find_executable('DPPP') or '/home/offringa/Software/DP3/build/DP3' -wsclean_bin = distutils.spawn.find_executable('wsclean') or '/home/offringa/Software/wsclean/build/wsclean' -makesourcedb_bin = distutils.spawn.find_executable('makesourcedb') or '/home/offringa/Software/DP3/build/makesourcedb' -bbs2model_bin = distutils.spawn.find_executable('bbs2model') or '/home/offringa/Software/lofartools/build/bbs2model' -render_bin = distutils.spawn.find_executable('render') or '/home/offringa/Software/lofartools/build/render' +dppp_bin = distutils.spawn.find_executable('DPPP') +wsclean_bin = distutils.spawn.find_executable('wsclean') +makesourcedb_bin = distutils.spawn.find_executable('makesourcedb') +bbs2model_bin = distutils.spawn.find_executable('bbs2model') +render_bin = distutils.spawn.find_executable('render') # Tom's masking code makeMaskFits = '/home/kutkin/rapthor/makeMaskFits' @@ -53,10 +53,10 @@ def modify_filename(fname, string, ext=None): return fbase + string + fext -def wsclean(msin, outname=None, pixelsize=3, mgain=0.8, imagesize=3072, multifreq=8, autothresh=0.3, - automask=3, niter=1000000, multiscale=False, save_source_list=True, - usefitsmask=False, fitsmaskname='mask.fits', - kwstring=''): +def wsclean(msin, outname=None, pixelsize=3, imagesize=3072, mgain=0.8, multifreq=0, autothresh=0.3, + automask=3, niter=1000000, multiscale=False, save_source_list=False, + clearfiles=True, + fitsmask=None, kwstring=''): """ wsclean """ @@ -69,14 +69,14 @@ def wsclean(msin, outname=None, pixelsize=3, mgain=0.8, imagesize=3072, multifre kwstring += f' -auto-threshold {autothresh}' if automask is not None: kwstring += f' -auto-mask {automask}' - if mgain is not None: + if mgain: kwstring += f' -mgain {mgain}' if save_source_list: kwstring += ' -save-source-list' if multifreq: kwstring += f' -join-channels -channels-out {multifreq} -fit-spectral-pol 2' - if usefitsmask: - kwstring += f' -fits-mask {fitsmaskname}' + if fitsmask: + kwstring += f' -fits-mask {fitsmask}' cmd = f'{wsclean_bin} -name {outname} -size {imagesize} {imagesize} -scale {pixelsize}asec -niter {niter} \ {kwstring} {msin}' @@ -87,6 +87,11 @@ def wsclean(msin, outname=None, pixelsize=3, mgain=0.8, imagesize=3072, multifre for fname in glob.glob(outname+'*.fits'): newname = fname.replace('MFS-', '') os.rename(fname, newname) + if clearfiles: + todelete = glob.glob(f'{outname}-000[0-9]-*.fits') # multifreq images + for f in todelete: + os.remove(f) + return 0 diff --git a/imcal.yml b/imcal.yml index 1138945c20ed5817471e6f294100c2f9a2114a35..afa4111b7fff1f8725decc7950c7d2f9c9c5ad9e 100644 --- a/imcal.yml +++ b/imcal.yml @@ -1,7 +1,7 @@ #:=========================================================================== # Settings for imcal #:=========================================================================== -####################### DICAL IMAGING ####################### +####################### IMAGING ####################### #global: # dppp_bin: 'DPPP' # on blizzard @@ -22,10 +22,10 @@ clean1: # wsclean setup imagesize: 3072 pixelsize: 3 multifreq: 0 + mgain: 0 automask: 20 autothresh: 5 - usefitsmask: True - fitsmaskname: 'mask0.fits' + fitsmask: 'mask0.fits' multiscale: False kwstring: '-use-wgridder -parallel-deconvolution 1400' # use this for additional wsclean options, e.g. '-weight uniform -use-idg' @@ -41,8 +41,7 @@ clean2: multifreq: 8 automask: 10 autothresh: 5 - usefitsmask: True - fitsmaskname: 'mask0.fits' + fitsmask: 'mask0.fits' multiscale: True kwstring: '-use-wgridder -parallel-deconvolution 1400 -parallel-gridding 8 -deconvolution-channels 3' @@ -58,8 +57,7 @@ clean3: multifreq: 8 automask: 7 autothresh: 3.5 - usefitsmask: True - fitsmaskname: 'mask1.fits' + fitsmask: 'mask1.fits' multiscale: True kwstring: '-use-wgridder -parallel-deconvolution 1400 -parallel-gridding 8 -deconvolution-channels 3' @@ -67,7 +65,7 @@ dical3: solint: 800 mode: 'diagonal' uvlambdamin: 500 # Ignore baselines / channels with UV < uvlambdamin wavelengths. - cal_nchan: 31 # number of chans with the same solutions + cal_nchan: 30 # number of chans with the same solutions clean4: imagesize: 3072 @@ -76,9 +74,8 @@ clean4: automask: 4.5 autothresh: 0.5 multiscale: True - usefitsmask: True - fitsmaskname: 'mask2.fits' - kwstring: '-use-wgridder -parallel-deconvolution 1400 -parallel-gridding 8 -deconvolution-channels 3 -weight briggs -1.0' + fitsmask: 'mask2.fits' + kwstring: '-use-wgridder -parallel-deconvolution 1400 -parallel-gridding 8 -deconvolution-channels 3 -weight briggs 0.0' ### END