-
Notifications
You must be signed in to change notification settings - Fork 1
/
run_mssc.py
86 lines (73 loc) · 2.93 KB
/
run_mssc.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import inspect, os, sys, json, re, csv, glob
from collections import OrderedDict
import tarfile
filename = inspect.getframeinfo(inspect.currentframe()).filename
sys.path.append(os.path.dirname(os.path.realpath(filename)))
mpipath = os.path.dirname(os.path.realpath(filename))
from VLBI_pipe_functions import *
try:
# CASA 6
import casatools
from casatasks import *
casalog.showconsole(True)
casa6=True
except:
# CASA 5
from casac import casac as casatools
from taskinit import casalog
casa6=False
casalog.origin('vp_apply_to_all')
try:
if casa6 == True:
from casampi.MPICommandClient import MPICommandClient
else:
from mpi4casa.MPICommandClient import MPICommandClient
client = MPICommandClient()
client.set_log_mode('redirect')
client.start_services()
parallel=True
cmd = []
except:
parallel=False
inputs = load_json('vp_inputs.json')
params = load_json(inputs['parameter_file_path'])
steps_run = load_json('vp_steps_run.json', Odict=True, casa6=casa6)
gaintables = load_gaintables(params, casa6=casa6)
gt_r = load_json('vp_gaintables.last.json', Odict=True, casa6=casa6)
gt_r['apply_to_all'] = {'gaintable':[],'gainfield':[],'spwmap':[],'interp':[]}
cwd = os.path.join(params['global']['cwd'],"")
target_outpath = os.path.join(params['apply_to_all']['target_outpath'],"")
msfile= '%s.ms'%(params['global']['project_code'])
p_c=params['global']['project_code']
if os.path.exists('%s%s_msinfo.json'%(params['global']['cwd'],params['global']['project_code']))==False:
save_json(filename='%s%s_msinfo.json'%(params['global']['cwd'],params['global']['project_code']), array=get_ms_info('%s%s.ms'%(params['global']['cwd'],params['global']['project_code'])), append=False)
else:
msinfo = load_json('%s%s_msinfo.json'%(params['global']['cwd'],params['global']['project_code']))
if steps_run['make_mms'] == 1:
parallel = True
else:
parallel = False
reader = csv.reader(open("%starget_files.txt"%cwd), delimiter=" ")
target_files = list(reader)
## First step is to convert to fits
for i in len(target_files):
if params["apply_to_all"]["tar_ms_only"] == True:
os.system("cp -r %s%s*_initial.image %s"%(target_outpath,target_files[i][1],cwd))
image = glob.glob('%s%s*image'%(cwd,target_files[i][1]))
for j in len(image):
exportfits(imagename=image[j], fitsimage='%s%s_premssc_%d.fits'%(cwd,target_files[i][1],j),overwrite=True)
rmdirs(image)
else:
files = extract_tarfile(tar_file='%s%s.ms.tar.gz'%(target_outpath,target_files[i][1]), cwd=cwd,delete_tar=False)
image = glob.glob('%s%s*image'%(cwd,target_files[i][1]))
for j in len(image):
exportfits(imagename=image[j], fitsimage='%s%s_premssc_%d.fits'%(cwd,target_files[i][1],j),overwrite=True)
rmdirs(image)
rmdirs(files)
## Then catalogue
if params['mssc']['source_finder'] == "pybdsf":
run_cataloger_pybdsf(sn_ratio=params['mssc']['detection_thresh'],postfix='premssc')
else:
sys.exit()
## Then to image all of the data sets and uvsub the uv data
## Then to concat data sets and image again.