Skip to content

Commit 1d3c64c

Browse files
committed
Added missing tests to git
1 parent 7b46e28 commit 1d3c64c

7 files changed

Lines changed: 218 additions & 126 deletions

File tree

autoarray/operators/inversion/inversions.py

Lines changed: 36 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def inversion(masked_dataset, mapper, regularization):
1717
mapper=mapper,
1818
regularization=regularization,
1919
)
20-
20+
2121
elif isinstance(masked_dataset, md.MaskedInterferometer):
2222

2323
return InversionInterferometer.from_data_mapper_and_regularization(
@@ -30,7 +30,6 @@ def inversion(masked_dataset, mapper, regularization):
3030

3131

3232
class Inversion(object):
33-
3433
def __init__(
3534
self,
3635
noise_map,
@@ -152,9 +151,14 @@ def __init__(
152151
The vector containing the reconstructed fit to the hyper_galaxies.
153152
"""
154153

155-
super(InversionImaging, self).__init__(noise_map=noise_map, mapper=mapper, regularization=regularization,
156-
regularization_matrix=regularization_matrix, curvature_reg_matrix=curvature_reg_matrix,
157-
reconstruction=reconstruction)
154+
super(InversionImaging, self).__init__(
155+
noise_map=noise_map,
156+
mapper=mapper,
157+
regularization=regularization,
158+
regularization_matrix=regularization_matrix,
159+
curvature_reg_matrix=curvature_reg_matrix,
160+
reconstruction=reconstruction,
161+
)
158162

159163
self.image = image
160164
self.blurred_mapping_matrix = blurred_mapping_matrix
@@ -288,9 +292,14 @@ def __init__(
288292
The vector containing the reconstructed fit to the hyper_galaxies.
289293
"""
290294

291-
super(InversionInterferometer, self).__init__(noise_map=noise_map, mapper=mapper, regularization=regularization,
292-
regularization_matrix=regularization_matrix, curvature_reg_matrix=curvature_reg_matrix,
293-
reconstruction=reconstruction)
295+
super(InversionInterferometer, self).__init__(
296+
noise_map=noise_map,
297+
mapper=mapper,
298+
regularization=regularization,
299+
regularization_matrix=regularization_matrix,
300+
curvature_reg_matrix=curvature_reg_matrix,
301+
reconstruction=reconstruction,
302+
)
294303

295304
self.visibilities = visibilities
296305
self.transformed_mapping_matrices = transformed_mapping_matrices
@@ -306,24 +315,24 @@ def from_data_mapper_and_regularization(
306315

307316
real_data_vector = inversion_util.data_vector_from_transformed_mapping_matrix_and_data(
308317
transformed_mapping_matrix=transformed_mapping_matrices[0],
309-
visibilities=visibilities[:,0],
310-
noise_map=noise_map[:,0],
318+
visibilities=visibilities[:, 0],
319+
noise_map=noise_map[:, 0],
311320
)
312321

313322
imag_data_vector = inversion_util.data_vector_from_transformed_mapping_matrix_and_data(
314323
transformed_mapping_matrix=transformed_mapping_matrices[1],
315-
visibilities=visibilities[:,1],
316-
noise_map=noise_map[:,1],
324+
visibilities=visibilities[:, 1],
325+
noise_map=noise_map[:, 1],
317326
)
318327

319328
real_curvature_matrix = inversion_util.curvature_matrix_from_transformed_mapping_matrix(
320329
transformed_mapping_matrix=transformed_mapping_matrices[0],
321-
noise_map=noise_map[:,0],
330+
noise_map=noise_map[:, 0],
322331
)
323332

324333
imag_curvature_matrix = inversion_util.curvature_matrix_from_transformed_mapping_matrix(
325334
transformed_mapping_matrix=transformed_mapping_matrices[1],
326-
noise_map=noise_map[:,1],
335+
noise_map=noise_map[:, 1],
327336
)
328337

329338
regularization_matrix = regularization.regularization_matrix_from_mapper(
@@ -334,7 +343,9 @@ def from_data_mapper_and_regularization(
334343
imag_curvature_reg_matrix = np.add(imag_curvature_matrix, regularization_matrix)
335344

336345
data_vector = np.add(real_data_vector, imag_data_vector)
337-
curvature_reg_matrix = np.add(real_curvature_reg_matrix, imag_curvature_reg_matrix)
346+
curvature_reg_matrix = np.add(
347+
real_curvature_reg_matrix, imag_curvature_reg_matrix
348+
)
338349

339350
try:
340351
values = np.linalg.solve(curvature_reg_matrix, data_vector)
@@ -352,6 +363,13 @@ def from_data_mapper_and_regularization(
352363
reconstruction=values,
353364
)
354365

366+
@property
367+
def mapped_reconstructed_image(self):
368+
return inversion_util.mapped_reconstructed_data_from_mapping_matrix_and_reconstruction(
369+
mapping_matrix=self.mapper.mapping_matrix,
370+
reconstruction=self.reconstruction,
371+
)
372+
355373
@property
356374
def mapped_reconstructed_visibilities(self):
357375
real_visibilities = inversion_util.mapped_reconstructed_data_from_mapping_matrix_and_reconstruction(
@@ -364,4 +382,6 @@ def mapped_reconstructed_visibilities(self):
364382
reconstruction=self.reconstruction,
365383
)
366384

367-
return vis.Visibilities(visibilities_1d=np.stack((real_visibilities, imag_visibilities), axis=-1))
385+
return vis.Visibilities(
386+
visibilities_1d=np.stack((real_visibilities, imag_visibilities), axis=-1)
387+
)

autoarray/operators/inversion/mappers.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,9 +127,9 @@ def all_sub_mask_1d_indexes_for_pixelization_1d_index(self):
127127
for mask_1d_index, pix_1_index in enumerate(
128128
self.pixelization_1d_index_for_sub_mask_1d_index
129129
):
130-
all_sub_mask_1d_indexes_for_pixelization_1d_index[
131-
pix_1_index
132-
].append(mask_1d_index)
130+
all_sub_mask_1d_indexes_for_pixelization_1d_index[pix_1_index].append(
131+
mask_1d_index
132+
)
133133

134134
return all_sub_mask_1d_indexes_for_pixelization_1d_index
135135

autoarray/util/inversion_util.py

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@ def data_vector_from_blurred_mapping_matrix_and_data(
2626
for mask_1d_index in range(mapping_shape[0]):
2727
for pix_1_index in range(mapping_shape[1]):
2828
data_vector[pix_1_index] += (
29-
image[mask_1d_index]
30-
* blurred_mapping_matrix[mask_1d_index, pix_1_index]
31-
/ (noise_map[mask_1d_index] ** 2.0)
29+
image[mask_1d_index]
30+
* blurred_mapping_matrix[mask_1d_index, pix_1_index]
31+
/ (noise_map[mask_1d_index] ** 2.0)
3232
)
3333

3434
return data_vector
@@ -80,8 +80,8 @@ def curvature_matrix_from_blurred_mapping_matrix_jit(
8080
for pix_1_index in range(blurred_mapping_matrix.shape[1]):
8181
if blurred_mapping_matrix[mask_1d_index, pix_1_index] > 0.0:
8282
flist[index] = (
83-
blurred_mapping_matrix[mask_1d_index, pix_1_index]
84-
/ noise_map[mask_1d_index]
83+
blurred_mapping_matrix[mask_1d_index, pix_1_index]
84+
/ noise_map[mask_1d_index]
8585
)
8686
iflist[index] = pix_1_index
8787
index += 1
@@ -115,16 +115,14 @@ def mapped_reconstructed_data_from_mapping_matrix_and_reconstruction(
115115
mapped_reconstructred_data = np.zeros(mapping_matrix.shape[0])
116116
for i in range(mapping_matrix.shape[0]):
117117
for j in range(reconstruction.shape[0]):
118-
mapped_reconstructred_data[i] += (
119-
reconstruction[j] * mapping_matrix[i, j]
120-
)
118+
mapped_reconstructred_data[i] += reconstruction[j] * mapping_matrix[i, j]
121119

122120
return mapped_reconstructred_data
123121

124122

125123
@decorator_util.jit()
126124
def data_vector_from_transformed_mapping_matrix_and_data(
127-
transformed_mapping_matrix, visibilities, noise_map
125+
transformed_mapping_matrix, visibilities, noise_map
128126
):
129127
"""Compute the hyper_galaxies vector *D* from a transformed util matrix *f* and the 1D image *d* and 1D noise-map *\sigma* \
130128
(see Warren & Dye 2003).
@@ -143,15 +141,18 @@ def data_vector_from_transformed_mapping_matrix_and_data(
143141

144142
for vis_1d_index in range(transformed_mapping_matrix.shape[0]):
145143
for pix_1d_index in range(transformed_mapping_matrix.shape[1]):
146-
data_vector[pix_1d_index] += visibilities[vis_1d_index] \
147-
* transformed_mapping_matrix[vis_1d_index, pix_1d_index] \
148-
/ (noise_map[vis_1d_index] ** 2.0)
144+
data_vector[pix_1d_index] += (
145+
visibilities[vis_1d_index]
146+
* transformed_mapping_matrix[vis_1d_index, pix_1d_index]
147+
/ (noise_map[vis_1d_index] ** 2.0)
148+
)
149149

150150
return data_vector
151151

152+
152153
@decorator_util.jit()
153154
def curvature_matrix_from_transformed_mapping_matrix(
154-
transformed_mapping_matrix, noise_map,
155+
transformed_mapping_matrix, noise_map
155156
):
156157
"""Compute the curvature matrix *F* from a transformed util matrix *f* and the 1D noise-map *\sigma* \
157158
(see Warren & Dye 2003).
@@ -172,12 +173,13 @@ def curvature_matrix_from_transformed_mapping_matrix(
172173
)
173174

174175
for pix_1d_index_0 in range(transformed_mapping_matrix.shape[1]):
175-
for pix_1d_index_1 in range(pix_1d_index_0+1):
176+
for pix_1d_index_1 in range(pix_1d_index_0 + 1):
176177
for vis_1d_index in range(transformed_mapping_matrix.shape[0]):
177-
curvature_matrix[pix_1d_index_0, pix_1d_index_1] += \
178-
transformed_mapping_matrix[vis_1d_index, pix_1d_index_0] * \
179-
transformed_mapping_matrix[vis_1d_index, pix_1d_index_1] / \
180-
noise_map[vis_1d_index]**2
178+
curvature_matrix[pix_1d_index_0, pix_1d_index_1] += (
179+
transformed_mapping_matrix[vis_1d_index, pix_1d_index_0]
180+
* transformed_mapping_matrix[vis_1d_index, pix_1d_index_1]
181+
/ noise_map[vis_1d_index] ** 2
182+
)
181183

182184
for i in range(transformed_mapping_matrix.shape[1]):
183185
for j in range(transformed_mapping_matrix.shape[1]):
@@ -205,8 +207,8 @@ def inversion_residual_map_from_pixelization_values_and_reconstructed_data_1d(
205207
sub_mask_total += 1
206208
mask_1d_index = mask_1d_index_for_sub_mask_1d_index[sub_mask_1d_index]
207209
residual = (
208-
mapped_reconstructed_data[mask_1d_index]
209-
- pixelization_values[pix_1_index]
210+
mapped_reconstructed_data[mask_1d_index]
211+
- pixelization_values[pix_1_index]
210212
)
211213
residual_map[pix_1_index] += np.abs(residual)
212214

@@ -237,8 +239,8 @@ def inversion_normalized_residual_map_from_pixelization_values_and_reconstructed
237239
sub_mask_total += 1
238240
mask_1d_index = mask_1d_index_for_sub_mask_1d_index[sub_mask_1d_index]
239241
residual = (
240-
mapped_reconstructed_data[mask_1d_index]
241-
- pixelization_values[pix_1_index]
242+
mapped_reconstructed_data[mask_1d_index]
243+
- pixelization_values[pix_1_index]
242244
)
243245
normalized_residual_map[pix_1_index] += np.abs(
244246
(residual / noise_map_1d[mask_1d_index])
@@ -268,8 +270,8 @@ def inversion_chi_squared_map_from_pixelization_values_and_reconstructed_data_1d
268270
sub_mask_total += 1
269271
mask_1d_index = mask_1d_index_for_sub_mask_1d_index[sub_mask_1d_index]
270272
residual = (
271-
mapped_reconstructed_data[mask_1d_index]
272-
- pixelization_values[pix_1_index]
273+
mapped_reconstructed_data[mask_1d_index]
274+
- pixelization_values[pix_1_index]
273275
)
274276
chi_squared_map[pix_1_index] += (
275277
residual / noise_map_1d[mask_1d_index]

0 commit comments

Comments
 (0)