Skip to content

Commit d76904e

Browse files
authored
Merge pull request #161 from Jammy2211/feature/unsecret_interferometer
Feature/unsecret interferometer
2 parents 270dd51 + bb7cfa0 commit d76904e

7 files changed

Lines changed: 2071 additions & 21 deletions

File tree

autoarray/dataset/interferometer/dataset.py

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
from astropy.io import fits
12
import logging
23
import numpy as np
4+
from pathlib import Path
35
from typing import Optional
46

57
from autoconf import cached_property
@@ -14,6 +16,8 @@
1416

1517
from autoarray.structures.arrays import array_2d_util
1618

19+
from autoarray.inversion.inversion.interferometer import inversion_interferometer_util
20+
1721
logger = logging.getLogger(__name__)
1822

1923

@@ -25,6 +29,7 @@ def __init__(
2529
uv_wavelengths: np.ndarray,
2630
real_space_mask,
2731
transformer_class=TransformerNUFFT,
32+
preprocessing_directory=None,
2833
):
2934
"""
3035
An interferometer dataset, containing the visibilities data, noise-map, real-space msk, Fourier transformer and
@@ -86,6 +91,8 @@ def __init__(
8691
uv_wavelengths=uv_wavelengths, real_space_mask=real_space_mask
8792
)
8893

94+
self.preprocessing_directory = Path(preprocessing_directory) if preprocessing_directory is not None else None
95+
8996
@cached_property
9097
def grids(self):
9198
return GridsDataset(
@@ -132,6 +139,27 @@ def from_fits(
132139
transformer_class=transformer_class,
133140
)
134141

142+
def w_tilde_preprocessing(self):
143+
144+
if self.preprocessing_directory.is_dir():
145+
146+
filename = "{}/curvature_preload.fits".format(self.preprocessing_directory)
147+
148+
if not self.preprocessing_directory.isfile(filename):
149+
print(
150+
"The file {} does not exist".format(filename)
151+
)
152+
logger.info("INTERFEROMETER - Computing W-Tilde... May take a moment.")
153+
154+
curvature_preload = inversion_interferometer_util.w_tilde_curvature_preload_interferometer_from(
155+
noise_map_real=self.noise_map.real,
156+
uv_wavelengths=self.uv_wavelengths,
157+
shape_masked_pixels_2d=self.transformer.grid.mask.shape_native_masked_pixels,
158+
grid_radians_2d=self.transformer.grid.mask.unmasked_grid_sub_1.in_radians.native,
159+
)
160+
161+
fits.writeto(filename, data=curvature_preload)
162+
135163
@cached_property
136164
def w_tilde(self):
137165
"""
@@ -152,10 +180,8 @@ def w_tilde(self):
152180

153181
logger.info("INTERFEROMETER - Computing W-Tilde... May take a moment.")
154182

155-
from autoarray.inversion.inversion import inversion_util_secret
156-
157183
curvature_preload = (
158-
inversion_util_secret.w_tilde_curvature_preload_interferometer_from(
184+
inversion_interferometer_util.w_tilde_curvature_preload_interferometer_from(
159185
noise_map_real=np.array(self.noise_map.real),
160186
uv_wavelengths=np.array(self.uv_wavelengths),
161187
shape_masked_pixels_2d=np.array(
@@ -167,7 +193,7 @@ def w_tilde(self):
167193
)
168194
)
169195

170-
w_matrix = inversion_util_secret.w_tilde_via_preload_from(
196+
w_matrix = inversion_interferometer_util.w_tilde_via_preload_from(
171197
w_tilde_preload=curvature_preload,
172198
native_index_for_slim_index=self.real_space_mask.derive_indexes.native_for_slim,
173199
)

autoarray/inversion/inversion/factory.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -207,11 +207,6 @@ def inversion_interferometer_from(
207207
-------
208208
An `Inversion` whose type is determined by the input `dataset` and `settings`.
209209
"""
210-
try:
211-
from autoarray.inversion.inversion import inversion_util_secret
212-
except ImportError:
213-
settings.use_w_tilde = False
214-
215210
if any(
216211
isinstance(linear_obj, AbstractLinearObjFuncList)
217212
for linear_obj in linear_obj_list

0 commit comments

Comments
 (0)