Skip to content

Commit 6da250e

Browse files
committed
Merge branch 'master' into feature_mpc
# Conflicts: # processing_components/calibration/calibration_control.py
2 parents 5e4bdf7 + a289c3a commit 6da250e

18 files changed

Lines changed: 224 additions & 195 deletions

File tree

‎Makefile‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ code-lint:
8686
code-analysis: code-flake code-lint
8787

8888
examples: inplace
89-
$(MAKE) -C libs/notebooks
89+
$(MAKE) -C processing_library/notebooks
9090
$(MAKE) -C processing_components/notebooks
9191
$(MAKE) -C workflows/notebooks
9292

‎processing_components/calibration/calibration_control.py‎

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
import numpy
1414

15-
from data_models.memory_data_models import Visibility
15+
from data_models.memory_data_models import Visibility, BlockVisibility
1616

1717
from ..calibration.operations import create_gaintable_from_blockvisibility, apply_gaintable, qa_gaintable
1818
from ..calibration.calibration import solve_gaintable
@@ -80,6 +80,8 @@ def apply_calibration_function(vis, gaintables, calibration_context='T', control
8080
else:
8181
avis = vis
8282

83+
assert isinstance(avis, BlockVisibility), avis
84+
8385
for c in calibration_context:
8486
if iteration >= controls[c]['first_selfcal']:
8587
avis = apply_gaintable(avis, gaintables[c], inverse=True, timeslice=controls[c]['timeslice'])
@@ -129,7 +131,9 @@ def calibrate_function(vis, model_vis, calibration_context='T', controls=None, i
129131
amvis = convert_visibility_to_blockvisibility(model_vis)
130132
else:
131133
amvis = model_vis
132-
134+
135+
assert isinstance(avis, BlockVisibility), avis
136+
133137
for c in calibration_context:
134138
if iteration >= controls[c]['first_selfcal']:
135139
changed = True
@@ -191,7 +195,8 @@ def solve_calibrate_function(vis, model_vis, calibration_context='T', controls=N
191195
amvis = convert_visibility_to_blockvisibility(model_vis)
192196
else:
193197
amvis = model_vis
194-
198+
199+
assert isinstance(avis, BlockVisibility), avis
195200

196201
for c in calibration_context:
197202
if iteration >= controls[c]['first_selfcal']:

‎processing_components/simulation/testing_support.py‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -826,7 +826,6 @@ def insert_unittest_errors(vt, seed=180555, calibration_context="TG", amp_errors
826826
:param amp_errors: e.g. {'T': 0.0, 'G': 0.01, 'B': 0.01}
827827
:return:
828828
"""
829-
numpy.random.seed(seed)
830829
controls = create_calibration_controls()
831830

832831
if amp_errors is None:
@@ -841,7 +840,8 @@ def insert_unittest_errors(vt, seed=180555, calibration_context="TG", amp_errors
841840
timeslice=controls[c]['timeslice'],
842841
phase_only=controls[c]['phase_only'],
843842
crosspol=controls[c]['shape'] == 'matrix',
844-
phase_error=phase_errors[c], amplitude_error=amp_errors[c])
843+
phase_error=phase_errors[c], amplitude_error=amp_errors[c],
844+
seed=seed)
845845

846846
vt = apply_gaintable(vt, gaintable, inverse=True, timeslice=controls[c]['timeslice'])
847847

‎processing_library/util/coordinate_support.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ def lmn_to_skycoord(lmn, phasecentre: SkyCoord):
185185
# Convert l,m,n to SkyCoord convention, also enforce celestial sphere
186186
n = numpy.sqrt(1 - lmn[0] ** 2 - lmn[1] ** 2) - 1.0
187187
dc = n + 1, lmn[0], lmn[1]
188-
target = SkyCoord(x=dc[0], y=dc[1], z=dc[2], representation='cartesian', frame=phasecentre.skyoffset_frame())
188+
target = SkyCoord(x=dc[0], y=dc[1], z=dc[2], representation_type='cartesian', frame=phasecentre.skyoffset_frame())
189189
return target.transform_to(phasecentre.frame)
190190

191191

‎setup.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
author_email='realtimcornwell@gmail.com',
4343
url='https://github.com/SKA-ScienceDataProcessor/algorithm-reference-library',
4444
license='Apache License Version 2.0',
45-
packages=['data_models', 'processing_library', 'processing_components', 'workflows', 'examples'],
45+
packages=['data_models', 'processing_library', 'processing_components', 'workflows', 'wrappers', 'examples'],
4646
test_suite="tests",
4747
tests_require=['pytest'],
4848
ext_modules = [libarlffi]

‎tests/processing_components/test_griddata_gridding.py‎

Lines changed: 36 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ class TestGridDataGridding(unittest.TestCase):
4444
def setUp(self):
4545
from data_models.parameters import arl_path
4646
self.dir = arl_path('test_results')
47+
self.persist = False
4748

4849
def actualSetUp(self, zerow=True):
4950
self.doplot = False
@@ -88,35 +89,28 @@ def actualSetUp(self, zerow=True):
8889

8990
# Calculate the model convolved with a Gaussian.
9091
self.cmodel = smooth_image(self.model)
91-
export_image_to_fits(self.model, '%s/test_gridding_model.fits' % self.dir)
92-
export_image_to_fits(self.cmodel, '%s/test_gridding_cmodel.fits' % self.dir)
92+
if self.persist:
93+
export_image_to_fits(self.model, '%s/test_gridding_model.fits' % self.dir)
94+
export_image_to_fits(self.cmodel, '%s/test_gridding_cmodel.fits' % self.dir)
9395
pb = create_pb_generic(self.model, diameter=35.0, blockage=0.0)
9496
self.cmodel.data *= pb.data
95-
export_image_to_fits(self.cmodel, '%s/test_gridding_cmodel_pb.fits' % self.dir)
97+
if self.persist:
98+
export_image_to_fits(self.cmodel, '%s/test_gridding_cmodel_pb.fits' % self.dir)
9699
self.peak = numpy.unravel_index(numpy.argmax(numpy.abs(self.cmodel.data)), self.cmodel.shape)
97100

98101

99102
def test_time_setup(self):
100103
self.actualSetUp()
101104

102-
def test_griddata_weight(self):
103-
self.actualSetUp(zerow=True)
104-
gcf, cf = create_pswf_convolutionfunction(self.model, support=6, oversampling=32)
105-
griddata = create_griddata_from_image(self.model)
106-
griddata, sumwt = grid_weight_to_griddata(self.vis, griddata=griddata, cf=cf)
107-
im = fft_griddata_to_image(griddata, gcf)
108-
im = normalize_sumwt(im, sumwt)
109-
export_image_to_fits(im, '%s/test_gridding_weight.fits' % self.dir)
110-
self.check_peaks(im, 97.00435128311616, tol=1e-7)
111-
112105
def test_griddata_invert_pswf(self):
113106
self.actualSetUp(zerow=True)
114107
gcf, cf = create_pswf_convolutionfunction(self.model, support=6, oversampling=32)
115108
griddata = create_griddata_from_image(self.model)
116109
griddata, sumwt = grid_visibility_to_griddata(self.vis, griddata=griddata, cf=cf)
117110
im = fft_griddata_to_image(griddata, gcf)
118111
im = normalize_sumwt(im, sumwt)
119-
export_image_to_fits(im, '%s/test_gridding_dirty_pswf.fits' % self.dir)
112+
if self.persist:
113+
export_image_to_fits(im, '%s/test_gridding_dirty_pswf.fits' % self.dir)
120114
self.check_peaks(im, 97.00435128311616, tol=1e-7)
121115

122116
def test_griddata_invert_pswf_w(self):
@@ -126,35 +120,40 @@ def test_griddata_invert_pswf_w(self):
126120
griddata, sumwt = grid_visibility_to_griddata(self.vis, griddata=griddata, cf=cf)
127121
im = fft_griddata_to_image(griddata, gcf)
128122
im = normalize_sumwt(im, sumwt)
129-
export_image_to_fits(im, '%s/test_gridding_dirty_pswf_w.fits' % self.dir)
123+
if self.persist:
124+
export_image_to_fits(im, '%s/test_gridding_dirty_pswf_w.fits' % self.dir)
130125
self.check_peaks(im, 97.02498821941138, tol=1e-7)
131126

132127
def test_griddata_invert_aterm(self):
133128
self.actualSetUp(zerow=True)
134129
make_pb = functools.partial(create_pb_generic, diameter=35.0, blockage=0.0)
135130
pb = make_pb(self.model)
136-
export_image_to_fits(pb, "%s/test_gridding_aterm_pb.fits" % self.dir)
131+
if self.persist:
132+
export_image_to_fits(pb, "%s/test_gridding_aterm_pb.fits" % self.dir)
137133
gcf, cf = create_awterm_convolutionfunction(self.model, make_pb=make_pb, nw=1, oversampling=16, support=16,
138134
use_aaf=False)
139135
griddata = create_griddata_from_image(self.model)
140136
griddata, sumwt = grid_visibility_to_griddata(self.vis, griddata=griddata, cf=cf)
141137
im = fft_griddata_to_image(griddata, gcf)
142138
im = normalize_sumwt(im, sumwt)
143-
export_image_to_fits(im, '%s/test_gridding_dirty_aterm.fits' % self.dir)
139+
if self.persist:
140+
export_image_to_fits(im, '%s/test_gridding_dirty_aterm.fits' % self.dir)
144141
self.check_peaks(im, 97.11809546469424, tol=1e-7)
145142

146143
def test_griddata_invert_aterm_noover(self):
147144
self.actualSetUp(zerow=True)
148145
make_pb = functools.partial(create_pb_generic, diameter=35.0, blockage=0.0)
149146
pb = make_pb(self.model)
150-
export_image_to_fits(pb, "%s/test_gridding_aterm_pb.fits" % self.dir)
147+
if self.persist:
148+
export_image_to_fits(pb, "%s/test_gridding_aterm_pb.fits" % self.dir)
151149
gcf, cf = create_awterm_convolutionfunction(self.model, make_pb=make_pb, nw=1, oversampling=1, support=16,
152150
use_aaf=True)
153151
griddata = create_griddata_from_image(self.model)
154152
griddata, sumwt = grid_visibility_to_griddata(self.vis, griddata=griddata, cf=cf)
155153
im = fft_griddata_to_image(griddata, gcf)
156154
im = normalize_sumwt(im, sumwt)
157-
export_image_to_fits(im, '%s/test_gridding_dirty_aterm_noover.fits' % self.dir)
155+
if self.persist:
156+
export_image_to_fits(im, '%s/test_gridding_dirty_aterm_noover.fits' % self.dir)
158157
self.check_peaks(im, 97.11833094589)
159158

160159
def test_griddata_invert_box(self):
@@ -164,7 +163,8 @@ def test_griddata_invert_box(self):
164163
griddata, sumwt = grid_visibility_to_griddata(self.vis, griddata=griddata, cf=cf)
165164
im = fft_griddata_to_image(griddata, gcf)
166165
im = normalize_sumwt(im, sumwt)
167-
export_image_to_fits(im, '%s/test_gridding_dirty_box.fits' % self.dir)
166+
if self.persist:
167+
export_image_to_fits(im, '%s/test_gridding_dirty_box.fits' % self.dir)
168168
self.check_peaks(im, 97.11833094588997, tol=1e-7)
169169

170170
def test_griddata_invert_fast(self):
@@ -174,7 +174,8 @@ def test_griddata_invert_fast(self):
174174
griddata, sumwt = grid_visibility_to_griddata_fast(self.vis, griddata=griddata, cf=cf, gcf=gcf)
175175
im = fft_griddata_to_image(griddata, gcf)
176176
im = normalize_sumwt(im, sumwt)
177-
export_image_to_fits(im, '%s/test_gridding_dirty_fast.fits' % self.dir)
177+
if self.persist:
178+
export_image_to_fits(im, '%s/test_gridding_dirty_fast.fits' % self.dir)
178179
self.check_peaks(im, 97.11833094588997, tol=1e-7)
179180

180181
def check_peaks(self, im, peak=100.0, tol=1e-3):
@@ -187,31 +188,36 @@ def test_griddata_invert_wterm(self):
187188

188189
cf_image = convert_convolutionfunction_to_image(cf)
189190
cf_image.data = numpy.real(cf_image.data)
190-
export_image_to_fits(cf_image, "%s/test_gridding_wterm_cf.fits" % self.dir)
191+
if self.persist:
192+
export_image_to_fits(cf_image, "%s/test_gridding_wterm_cf.fits" % self.dir)
191193

192194
griddata = create_griddata_from_image(self.model, nw=1)
193195
griddata, sumwt = grid_visibility_to_griddata(self.vis, griddata=griddata, cf=cf)
194196
im = fft_griddata_to_image(griddata, gcf)
195197
im = normalize_sumwt(im, sumwt)
196-
export_image_to_fits(im, '%s/test_gridding_dirty_wterm.fits' % self.dir)
198+
if self.persist:
199+
export_image_to_fits(im, '%s/test_gridding_dirty_wterm.fits' % self.dir)
197200
self.check_peaks(im, 97.13863141113761)
198201

199202
def test_griddata_invert_awterm(self):
200203
self.actualSetUp(zerow=False)
201204
make_pb = functools.partial(create_pb_generic, diameter=35.0, blockage=0.0)
202205
pb = make_pb(self.model)
203-
export_image_to_fits(pb, "%s/test_gridding_awterm_pb.fits" % self.dir)
206+
if self.persist:
207+
export_image_to_fits(pb, "%s/test_gridding_awterm_pb.fits" % self.dir)
204208
gcf, cf = create_awterm_convolutionfunction(self.model, make_pb=make_pb, nw=100, wstep=8.0,
205209
oversampling=16, support=32, use_aaf=True)
206210
cf_image = convert_convolutionfunction_to_image(cf)
207211
cf_image.data = numpy.real(cf_image.data)
208-
export_image_to_fits(cf_image, "%s/test_gridding_awterm_cf.fits" % self.dir)
212+
if self.persist:
213+
export_image_to_fits(cf_image, "%s/test_gridding_awterm_cf.fits" % self.dir)
209214

210215
griddata = create_griddata_from_image(self.model, nw=100, wstep=8.0)
211216
griddata, sumwt = grid_visibility_to_griddata(self.vis, griddata=griddata, cf=cf)
212217
im = fft_griddata_to_image(griddata, gcf)
213218
im = normalize_sumwt(im, sumwt)
214-
export_image_to_fits(im, '%s/test_gridding_dirty_awterm.fits' % self.dir)
219+
if self.persist:
220+
export_image_to_fits(im, '%s/test_gridding_dirty_awterm.fits' % self.dir)
215221
self.check_peaks(im, 97.13891073376104)
216222

217223
def test_griddata_predict_pswf(self):
@@ -262,7 +268,8 @@ def test_griddata_predict_awterm(self):
262268
self.actualSetUp(zerow=False)
263269
make_pb = functools.partial(create_pb_generic, diameter=35.0, blockage=0.0)
264270
pb = make_pb(self.model)
265-
export_image_to_fits(pb, "%s/test_gridding_awterm_pb.fits" % self.dir)
271+
if self.persist:
272+
export_image_to_fits(pb, "%s/test_gridding_awterm_pb.fits" % self.dir)
266273
gcf, cf = create_awterm_convolutionfunction(self.model, make_pb=make_pb, nw=100, wstep=8.0,
267274
oversampling=16, support=32, use_aaf=True)
268275
griddata = create_griddata_from_image(self.model, nw=100, wstep=8.0)
@@ -282,10 +289,9 @@ def test_griddata_weight(self):
282289
gd, sumwt = grid_visibility_to_griddata(self.vis, griddata=gd, cf=cf)
283290
im = fft_griddata_to_image(gd, gcf)
284291
im = normalize_sumwt(im, sumwt)
285-
export_image_to_fits(im, '%s/test_gridding_dirty_2d_uniform.fits' % self.dir)
292+
if self.persist:
293+
export_image_to_fits(im, '%s/test_gridding_dirty_2d_uniform.fits' % self.dir)
286294
self.check_peaks(im, 99.42031190701735)
287-
288-
289295

290296
def plot_vis(self, newvis, title=''):
291297
if self.doplot:

0 commit comments

Comments
 (0)