slitronomy.Util package¶
Submodules¶
slitronomy.Util.metrics_util module¶
-
slitronomy.Util.metrics_util.QOR(truth, model, noise_map)¶ computes Quality Of Reconstruction
-
slitronomy.Util.metrics_util.SDR(truth, model)¶ computes Source Distortion Ratio
-
slitronomy.Util.metrics_util.SSIM(truth, model)¶ computes Structure Similarity Index
-
slitronomy.Util.metrics_util.chi2_nu(normalized_residuals, num_data_points)¶ computes the reduced chi2 from a normalized residual map
-
slitronomy.Util.metrics_util.chi2_threshold(normalized_residuals, sigma_threshold=3)¶ computes the reduced chi2 from a normalized residual map
-
slitronomy.Util.metrics_util.total_mag(flux_map, zero_point)¶
slitronomy.Util.plot_util module¶
-
class
slitronomy.Util.plot_util.ReNormColormapAdaptor(base, cmap_norm, orig_norm=None)¶ Bases:
matplotlib.colors.ColormapColormap adaptor that uses another Normalize instance for the colormap than applied to the mappable.
credits : https://stackoverflow.com/questions/26253947/logarithmic-colormap-in-matplotlib
-
slitronomy.Util.plot_util.log_cmap(cmap_name, vmin, vmax)¶
-
slitronomy.Util.plot_util.nice_colorbar(mappable, position='right', pad=0.1, size='5%', label=None, fontsize=12, invisible=False, divider_kwargs={}, colorbar_kwargs={}, label_kwargs={})¶
-
slitronomy.Util.plot_util.nice_colorbar_residuals(mappable, res_map, vmin, vmax, position='right', pad=0.1, size='5%', invisible=False, label=None, fontsize=16)¶
-
slitronomy.Util.plot_util.std_colorbar(mappable, label=None, fontsize=12, label_kwargs={}, **colorbar_kwargs)¶
-
slitronomy.Util.plot_util.std_colorbar_residuals(mappable, res_map, vmin, vmax, label=None, fontsize=12, label_kwargs={}, **colorbar_kwargs)¶
slitronomy.Util.solver_plotter module¶
-
class
slitronomy.Util.solver_plotter.SolverPlotter(solver_class, show_now=True)¶ Bases:
object-
plot_final(image)¶
-
plot_init(image)¶
-
plot_results(log_scale=False, vmin_image=None, vmax_image=None, normalised_res=True, vmin_source=None, vmax_source=None, vmin_res=-6, vmax_res=6, cmap_image=None, cmap_source=None, cmap_residuals=None, fontsize=12, with_history=True, unconvolved=False, point_source_add=False)¶
-
static
plot_source_residuals_comparison(source_truth, source_model_list, name_list, vmin_res=-0.5, vmax_res=-0.5, cmap='cubehelix', fontsize=12)¶ given a true source, plot residuals of a list of source model
-
plot_step(image, iter_1, iter_2=None, iter_3=None)¶
-
static
quick_imshow(image, title=None, show_now=False, **kwargs)¶
-
slitronomy.Util.solver_tracker module¶
slitronomy.Util.util module¶
-
slitronomy.Util.util.Downsample(image, factor=1)¶ resizes image with nx x ny to nx/factor x ny/factor :param image: 2d image with shape (nx,ny) :param factor: integer >=1 :return:
-
slitronomy.Util.util.Upsample(image, factor=1)¶
-
slitronomy.Util.util.array2cube(array, n_1, n_23)¶
-
slitronomy.Util.util.array2image(array, nx=0, ny=0)¶ returns the information contained in a 1d array into an n*n 2d array (only works when lenght of array is n**2) Credits to S. Birrer (lenstronomy)
Parameters: array (array of size n**2) – image values Returns: 2d array Raises: AttributeError, KeyError
-
slitronomy.Util.util.cube2array(cube)¶
-
slitronomy.Util.util.dirac_impulse(num_pix)¶ returns the 2d array of a Dirac impulse at the center of the image
Returns: 2d numpy array
-
slitronomy.Util.util.exponential_decrease(curr_value, init_value, min_value, num_iter, num_iter_at_min_value)¶ Computes a exponentially decreasing value, for a given loop index, starting at a specified value.
Parameters: - curr_value (float) – Current value to be updated
- init_value (float) – Value at iteration 0.
- min_value (float) – Minimum value, reached at iteration num_iter - num_iter_at_min_value - 1.
- num_iter (int) – Total number of iterations.
- num_iter_at_min_value (int) – Number of iteration for which the returned value equals min_value.
Returns: Exponentially decreased value.
Return type: float
Raises: ValueError– If num_iter - num_iter_at_min_value < 1, cannot compute the value.
-
slitronomy.Util.util.generate_initial_guess(num_pix, n_scales, transform, inverse_transform, formulation='analysis', guess_type='background_rms', background_rms=None, noise_map=None, noise_map_synthesis=None, seed=None)¶ Generates a random image and its transform for sparse optimization initialisation. This supports both analysis and synthesis types of initial guess.
Parameters: - num_pix (int) – Number of side pixels.
- n_scales (int) – Number of decomposition scales, consistent with the transform operator.
- transform (callable) – Operator (e.g. wavelet transform) for transformed random guess.
- inverse_transform (callable) – Inverse operator (e.g. wavelet inverse transform) for direct space random guess.
- formulation (str, 'analysis') – ‘analysis’ generates the random image in direct space, then transforms it. ‘synthesis’ generates the random coefficients in transformed space, then inverse transforms it for direct space image.
- guess_type (str, 'background_rms') – ‘background_rms’ uses the background noise RMS value for random image generate. ‘noise_map’ uses the whole noise (diagonal) covariance for random image generate.
- background_rms (float, None) – Background noise RMS value. Required if guess_type is ‘background_rms’
- noise_map (array_like, None) – Noise map, diagonal noise covariance per pixel. Required if guess_type is ‘noise_map’ and formulation is ‘analysis’.
- noise_map_synthesis (array_like, None) – Diagonal noise covariance per pixel, in transformed space. Required if guess_type is ‘noise_map’ and formulation is ‘synthesis’.
Returns: - array_like – Random image.
- array_like – Transform of the above array, after call to the transform callable.
-
slitronomy.Util.util.generate_initial_guess_simple(num_pix, transform, background_rms, seed=None)¶ Generates a random image and its transform for sparse optimization initialisation.
Parameters: - num_pix (int) – Number of side pixels.
- transform (callable) – Operator (e.g. wavelet transform) for transformed random image.
- background_rms (float) – Background noise RMS value.
Returns: - array_like – Random image, normal distribution with std dev background_rms.
- array_like – Transform of the above array, after call to the transform callable.
-
slitronomy.Util.util.hard_threshold(array, thresh)¶
-
slitronomy.Util.util.image2array(image)¶ returns the information contained in a 2d array into an n*n 1d array Credits to S. Birrer (lenstronomy)
Parameters: array (array of size (n,n)) – image values Returns: 1d array Raises: AttributeError, KeyError
-
slitronomy.Util.util.index_1d_to_2d(i, num_pix)¶
-
slitronomy.Util.util.index_2d_to_1d(x, y, num_pix)¶
-
slitronomy.Util.util.linear_decrease(curr_value, init_value, min_value, num_iter, num_iter_at_min_value)¶ Computes a linearly decreasing value, for a given loop index, starting at a specified value.
Parameters: - curr_value (float) – Current value to be updated
- init_value (float) – Value at iteration 0.
- min_value (float) – Minimum value, reached at iteration num_iter - num_iter_at_min_value - 1.
- num_iter (int) – Total number of iterations.
- num_iter_at_min_value (int) – Number of iteration for which the returned value equals min_value.
Returns: Linearly decreased value.
Return type: float
Raises: ValueError– If num_iter - num_iter_at_min_value < 1, cannot compute the value.
-
slitronomy.Util.util.make_grid(numPix, deltapix, subgrid_res=1, left_lower=False)¶ Credits to S. Birrer (lenstronomy)
Parameters: - numPix – number of pixels per axis
- deltapix – pixel size
- subgrid_res – sub-pixel resolution (default=1)
Returns: x, y position information in two 1d arrays
-
slitronomy.Util.util.regridding_error_map_squared(mag_map=None, data_image=None, image_pixel_scale=None, source_pixel_scale=None, noise_map2_prefactor=None)¶ Computes the regridding error map as defined in Suyu et al. 2009 (https://ui.adsabs.harvard.edu/abs/2009ApJ…691..277S/abstract) The error is a 2D array corresponding to the noise variance sigma^2 per pixel.
Parameters: - mag_map (array_like, optional) – Magnification map, as a 2D array.
- data_image (array_like, optional) – Imaging data, as a 2D array.
- image_pixel_scale (float, optional) – Pixel scale of image plane grid.
- source_pixel_scale (None, optional) – Pixel scale of source plane grid.
- noise_map2_prefactor (None, optional) – Prefactor pre-computed. If provided, this won’t be computed again. This is the second returned array of this function.
Returns: - array_like – Full regridding error map.
- array_like – Part of the map that is independent of the magnification, for speedup next call to the function.
-
slitronomy.Util.util.soft_threshold(array, thresh)¶
-
slitronomy.Util.util.spectral_norm(num_pix, operator, inverse_operator, num_iter=20, tol=1e-10, seed=None)¶ compute spectral norm from operator and its inverse
Sometimes referred to as the Lipschitz constant, it is essentially the greatest singular value of a matrix/operator (in this case the Starlet transform operator) This is particularly important for determining the optimal amplitude of gradient descent step in a minimization problem.
See e.g. http://fourier.eng.hmc.edu/e161/lectures/algebra/node12.html
-
slitronomy.Util.util.starlet_transorm(array, num_scales)¶