Skip to content

Commit 185ad0f

Browse files
committed
Implemented interferometer_fit visualization methods
1 parent 42e9b21 commit 185ad0f

27 files changed

Lines changed: 772 additions & 147 deletions

autoarray/dataset/interferometer.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
from autoarray import exc
77
from autoarray.dataset import abstract_dataset
8+
from autoarray.structures import visibilities as vis
89

910

1011
logger = logging.getLogger(__name__)
@@ -239,11 +240,14 @@ def from_fits(
239240
file_path=uv_wavelengths_path, hdu=uv_wavelengths_hdu
240241
)
241242

242-
primary_beam = aa.kernel.from_fits(
243-
file_path=primary_beam_path,
244-
hdu=primary_beam_hdu,
245-
renormalize=renormalize_primary_beam,
246-
)
243+
if primary_beam_path is not None:
244+
primary_beam = aa.kernel.from_fits(
245+
file_path=primary_beam_path,
246+
hdu=primary_beam_hdu,
247+
renormalize=renormalize_primary_beam,
248+
)
249+
else:
250+
primary_beam = None
247251

248252
interferometer = Interferometer(
249253
visibilities=visibilities,
@@ -333,6 +337,8 @@ def simulate(
333337
)
334338
noise_map_realization = None
335339

340+
noise_map = vis.Visibilities.manual_1d(visibilities=noise_map)
341+
336342
if np.isnan(noise_map).any():
337343
raise exc.DataException(
338344
"The noise-map has NaN values in it. This suggests your exposure time and / or"

autoarray/fit/fit.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,10 @@ def __init__(self, mask, image, noise_map, model_image, inversion=None):
176176
inversion=inversion,
177177
)
178178

179+
@property
180+
def masked_imaging(self):
181+
return self.masked_dataset
182+
179183
@property
180184
def image(self):
181185
return self.data
@@ -232,6 +236,10 @@ def __init__(
232236
inversion=inversion,
233237
)
234238

239+
@property
240+
def masked_interferometer(self):
241+
return self.masked_dataset
242+
235243
@property
236244
def visibilities_mask(self):
237245
return self.mask

autoarray/mask/geometry.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@ def regions(self):
1818

1919
@property
2020
def central_pixel_coordinates(self):
21-
return float(self.mask.shape_2d[0] - 1) / 2, float(self.mask.shape_2d[1] - 1) / 2
21+
return (
22+
float(self.mask.shape_2d[0] - 1) / 2,
23+
float(self.mask.shape_2d[1] - 1) / 2,
24+
)
2225

2326
@property
2427
def origin(self):
@@ -105,7 +108,9 @@ def unmasked_grid(self):
105108
origin=self.mask.origin,
106109
)
107110

108-
return self.mask.regions.unmasked_mask.mapping.grid_from_grid_1d(grid_1d=grid_1d)
111+
return self.mask.regions.unmasked_mask.mapping.grid_from_grid_1d(
112+
grid_1d=grid_1d
113+
)
109114

110115
@property
111116
def masked_grid(self):

autoarray/masked/masked_dataset.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -235,12 +235,10 @@ def __init__(
235235
if self.interferometer.primary_beam is None:
236236
self.primary_beam_shape_2d = None
237237
elif (
238-
primary_beam_shape_2d is None
239-
and self.interferometer.primary_beam is not None
238+
primary_beam_shape_2d is None
239+
and self.interferometer.primary_beam is not None
240240
):
241-
self.primary_beam_shape_2d = (
242-
self.interferometer.primary_beam.shape_2d
243-
)
241+
self.primary_beam_shape_2d = self.interferometer.primary_beam.shape_2d
244242
else:
245243
self.primary_beam_shape_2d = primary_beam_shape_2d
246244

autoarray/operators/fourier_transform.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
class Transformer(object):
88
def __init__(self, uv_wavelengths, grid_radians, preload_transform=True):
99

10-
self.uv_wavelengths = uv_wavelengths.astype('float')
10+
self.uv_wavelengths = uv_wavelengths.astype("float")
1111
self.grid_radians = grid_radians.in_1d_binned
1212

1313
self.total_visibilities = uv_wavelengths.shape[0]

autoarray/plotters/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@
77
from autoarray.plotters import imaging_plotters as imaging
88
from autoarray.plotters import interferometer_plotters as interferometer
99
from autoarray.plotters import fit_imaging_plotters as fit_imaging
10+
from autoarray.plotters import fit_interferometer_plotters as fit_interferometer
1011
from autoarray.plotters import mapper_plotters as mapper
1112
from autoarray.plotters import inversion_plotters as inversion

autoarray/plotters/array_plotters.py

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -212,10 +212,7 @@ def plot_array(
212212
kpc_per_arcsec=kpc_per_arcsec,
213213
)
214214
plot_mask(
215-
mask=mask,
216-
units=units,
217-
kpc_per_arcsec=kpc_per_arcsec,
218-
pointsize=mask_pointsize,
215+
mask=mask, units=units, kpc_per_arcsec=kpc_per_arcsec, pointsize=mask_pointsize
219216
)
220217
plotter_util.plot_lines(line_lists=lines)
221218
plot_border(
@@ -240,10 +237,7 @@ def plot_array(
240237
pointsize=grid_pointsize,
241238
)
242239
plot_centres(
243-
array=array,
244-
centres=centres,
245-
units=units,
246-
kpc_per_arcsec=kpc_per_arcsec,
240+
array=array, centres=centres, units=units, kpc_per_arcsec=kpc_per_arcsec
247241
)
248242
plot_ellipses(
249243
fig=fig,
@@ -373,12 +367,7 @@ def get_extent(array, extent, units, kpc_per_arcsec, xticks_manual, yticks_manua
373367
elif units in "arcsec" or kpc_per_arcsec is None:
374368
return extent
375369
elif units in "kpc":
376-
return list(
377-
map(
378-
lambda tick: tick * kpc_per_arcsec,
379-
extent,
380-
)
381-
)
370+
return list(map(lambda tick: tick * kpc_per_arcsec, extent))
382371
else:
383372
raise exc.PlottingException(
384373
"The units supplied to the plotted are not a valid string (must be pixels | "
@@ -584,9 +573,7 @@ def plot_centres(array, centres, units, kpc_per_arcsec):
584573
)
585574

586575

587-
def plot_ellipses(
588-
fig, array, centres, axis_ratios, phis, units, kpc_per_arcsec,
589-
):
576+
def plot_ellipses(fig, array, centres, axis_ratios, phis, units, kpc_per_arcsec):
590577
"""Plot the (y,x) centres (e.g. of a mass profile) on the array as an 'x'.
591578
592579
Parameters
@@ -671,9 +658,7 @@ def plot_mask(mask, units, kpc_per_arcsec, pointsize):
671658
)
672659

673660

674-
def plot_border(
675-
mask, include_border, units, kpc_per_arcsec, pointsize,
676-
):
661+
def plot_border(mask, include_border, units, kpc_per_arcsec, pointsize):
677662
"""Plot the borders of the mask or the array on the figure.
678663
679664
Parameters
@@ -701,12 +686,15 @@ def plot_border(
701686
kpc_per_arcsec=kpc_per_arcsec,
702687
)
703688

704-
plt.scatter(y=np.asarray(border_units[:, 0]), x=np.asarray(border_units[:, 1]), s=pointsize, c="y")
689+
plt.scatter(
690+
y=np.asarray(border_units[:, 0]),
691+
x=np.asarray(border_units[:, 1]),
692+
s=pointsize,
693+
c="y",
694+
)
705695

706696

707-
def plot_points(
708-
points_arcsec, array, units, kpc_per_arcsec, pointsize,
709-
):
697+
def plot_points(points_arcsec, array, units, kpc_per_arcsec, pointsize):
710698
"""Plot a set of points over the array of data_type on the figure.
711699
712700
Parameters

0 commit comments

Comments
 (0)