autolens.Kernel2D#
- class Kernel2D[source]#
Bases:
AbstractArray2D
An array of values, which are paired to a uniform 2D mask of pixels and sub-pixels. Each entry on the array corresponds to a value at the centre of a sub-pixel in an unmasked pixel. See the
Array2D
class for a full description of how Arrays work.The
Kernel2D
class is anArray2D
but with additioonal methods that allow it to be convolved with data.- Parameters
values – The values of the array.
mask – The 2D mask associated with the array, defining the pixels each array value is paired with and originates from.
normalize – If True, the Kernel2D’s array values are normalized such that they sum to 1.0.
Methods
all
Returns True if all elements evaluate to True.
any
Returns True if any of the elements of a evaluate to True.
apply_mask
- rtype
argmax
Return indices of the maximum values along the given axis.
argmin
Return indices of the minimum values along the given axis.
argpartition
Returns the indices that would partition this array.
argsort
Returns the indices that would sort this array.
astype
Copy of the array, cast to a specified type.
byteswap
Swap the bytes of the array elements
choose
Use an index array to construct a new array from a set of choices.
clip
Return an array whose values are limited to
[min, max]
.compress
Return selected slices of this array along given axis.
conj
Complex-conjugate all elements.
conjugate
Return the complex conjugate, element-wise.
Convolve an array with this Kernel2D
Convolve an array with this Kernel2D
copy
Return a copy of the array.
cumprod
Return the cumulative product of the elements along the given axis.
cumsum
Return the cumulative sum of the elements along the given axis.
diagonal
Return specified diagonals.
dot
dump
Dump a pickle of the array to the specified file.
dumps
Returns the pickle of the array as a string.
extent_of_zoomed_array
For an extracted zoomed array computed from the method zoomed_around_mask compute its extent in scaled coordinates.
fill
Fill the array with a scalar value.
flatten
Return a copy of the array collapsed into one dimension.
flip_hdu_for_ds9
from_as_gaussian_via_alma_fits_header_parameters
- rtype
Loads the Kernel2D from a .fits file.
Setup the Kernel2D as a 2D symmetric elliptical Gaussian profile, according to the equation:
Returns an
Kernel2D
by from a PrimaryHDU object which has been loaded via astropy.fitsCreate a Kernel2D (see Kernel2D.__new__) where all values are filled with an input fill value, analogous to the method numpy ndarray.full.
getfield
Returns a field of the given array as a certain type.
item
Copy an element of an array to a standard Python scalar and return it.
itemset
Insert scalar into an array (scalar is cast to array's dtype, if possible)
max
Return the maximum along a given axis.
mean
Returns the average of the array elements along given axis.
min
Return the minimum along a given axis.
newbyteorder
Return the array with the same data viewed with a different byte order.
Setup the Kernel2D as a kernel which does not convolve any signal, which is simply an array of shape (1, 1) with value 1.
Create a Kernel2D (see Kernel2D.__new__) by inputting the kernel values in 1D or 2D, automatically determining whether to use the 'manual_slim' or 'manual_native' methods.
nonzero
Return the indices of the elements that are non-zero.
Create an Kernel2D (see Kernel2D.__new__) where all values are filled with ones, analogous to the method numpy ndarray.ones.
output_to_fits
Output the array to a .fits file.
padded_before_convolution_from
When the edge pixels of a mask are unmasked and a convolution is to occur, the signal of edge pixels will be 'missing' if the grid is used to evaluate the signal via an analytic function.
partition
Rearranges the elements in the array in such a way that the value of the element in kth position is in the position it would be in a sorted array.
prod
Return the product of the array elements over the given axis
ptp
Peak to peak (maximum - minimum) value along a given axis.
put
Set
a.flat[n] = values[n]
for all n in indices.ravel
Return a flattened array.
repeat
Repeat elements of an array.
If the PSF kernel has one or two even-sized dimensions, return a PSF object where the kernel has odd-sized dimensions (odd-sized dimensions are required by a Convolver).
reshape
Returns an array containing the same data with a new shape.
resize
Change shape and size of array in-place.
resized_from
Resize the array around its centre to a new input shape.
round
Return a with each element rounded to the given number of decimals.
searchsorted
Find indices where elements of v should be inserted in a to maintain order.
setfield
Put a value into a specified place in a field defined by a data-type.
setflags
Set array flags WRITEABLE, ALIGNED, WRITEBACKIFCOPY, respectively.
sort
Sort an array in-place.
squeeze
Remove axes of length one from a.
std
Returns the standard deviation of the array elements along given axis.
structure_2d_from
- rtype
Structure
structure_2d_list_from
- rtype
List
[Structure
]
sum
Return the sum of the array elements over the given axis.
swapaxes
Return a view of the array with axis1 and axis2 interchanged.
take
Return an array formed from the elements of a at the given indices.
tobytes
Construct Python bytes containing the raw data bytes in the array.
tofile
Write array to a file as text or binary (default).
tolist
Return the array as an
a.ndim
-levels deep nested list of Python scalars.tostring
A compatibility alias for tobytes, with exactly the same behavior.
trace
Return the sum along diagonals of the array.
transpose
Returns a view of the array with axes transposed.
trimmed_after_convolution_from
When the edge pixels of a mask are unmasked and a convolution is to occur, the signal of edge pixels will be 'missing' if the grid is used to evaluate the signal via an analytic function.
var
Returns the variance of the array elements, along given axis.
view
New view of array with the same data.
Create an Kernel2D (see Kernel2D.__new__) where all values are filled with zeros, analogous to the method numpy ndarray.ones.
zoomed_around_mask
Extract the 2D region of an array corresponding to the rectangle encompassing all unmasked values.
Attributes
T
The transposed array.
base
Base object if memory is from some other object.
binned
Convenience method to access the binned-up array in its 1D representation, which is a Grid2D stored as an
ndarray
of shape [total_unmasked_pixels, 2].binned_across_columns
- rtype
binned_across_rows
- rtype
ctypes
An object to simplify the interaction of the array with the ctypes module.
data
Python buffer object pointing to the start of the array's data.
derive_grid
- rtype
DeriveGrid2D
derive_indexes
- rtype
DeriveIndexes2D
derive_mask
- rtype
DeriveMask2D
dtype
Data-type of the array's elements.
flags
Information about the memory layout of the array.
flat
A 1-D iterator over the array.
geometry
hdu_for_output
The array as an HDU object, which can be output to a .fits file.
imag
The imaginary part of the array.
in_counts
- rtype
in_counts_per_second
- rtype
itemsize
Length of one array element in bytes.
native
Return a Array2D where the data is stored in its native representation, which is an
ndarray
of shape [sub_size*total_y_pixels, sub_size*total_x_pixels].native_skip_mask
Return a Array2D where the data is stored in its native representation, which is an
ndarray
of shape [sub_size*total_y_pixels, sub_size*total_x_pixels].nbytes
Total bytes consumed by the elements of the array.
ndim
Number of array dimensions.
Normalize the Kernel2D such that its data_vector values sum to unity.
origin
original_orientation
pixel_area
pixel_scale
- rtype
pixel_scale_header
- rtype
pixel_scales
readout_offsets
real
The real part of the array.
shape
Tuple of array dimensions.
shape_native
shape_slim
- rtype
size
Number of elements in the array.
slim
Return an Array2D where the data is stored its slim representation, which is an
ndarray
of shape [total_unmasked_pixels * sub_size**2].store_native
strides
Tuple of bytes to step in each dimension when traversing an array.
sub_shape_native
sub_shape_slim
- rtype
sub_size
- rtype
total_area
total_pixels
- rtype
unmasked_grid
- classmethod no_mask(values, pixel_scales, shape_native=None, origin=(0.0, 0.0), normalize=False)[source]#
Create a Kernel2D (see Kernel2D.__new__) by inputting the kernel values in 1D or 2D, automatically determining whether to use the ‘manual_slim’ or ‘manual_native’ methods.
See the manual_slim and manual_native methods for examples. :type values:
Union
[ndarray
,List
] :param values: The values of the array input as an ndarray of shape [total_unmasked_pixels*(sub_size**2)] or a list oflists.
- Parameters
shape_native (
Optional
[Tuple
[int
,int
]]) – The 2D shape of the mask the array is paired with.pixel_scales (
Union
[Tuple
[float
],Tuple
[float
,float
],float
]) – The (y,x) arcsecond-to-pixel units conversion factor of every pixel. If this is input as a float, it is converted to a (float, float).sub_size – The size (sub_size x sub_size) of each unmasked pixels sub-array.
origin (
Tuple
[float
,float
]) – The (y,x) scaled units origin of the mask’s coordinate system.normalize (
bool
) – If True, the Kernel2D’s array values are normalized such that they sum to 1.0.
- classmethod full(fill_value, shape_native, pixel_scales, origin=(0.0, 0.0), normalize=False)[source]#
Create a Kernel2D (see Kernel2D.__new__) where all values are filled with an input fill value, analogous to the method numpy ndarray.full.
From 1D input the method cannot determine the 2D shape of the array and its mask, thus the shape_native must be input into this method. The mask is setup as a unmasked Mask2D of shape_native.
- Parameters
fill_value (
float
) – The value all array elements are filled with.shape_native (
Tuple
[int
,int
]) – The 2D shape of the mask the array is paired with.pixel_scales (
Union
[Tuple
[float
],Tuple
[float
,float
],float
]) – The (y,x) arcsecond-to-pixel units conversion factor of every pixel. If this is input as a float, it is converted to a (float, float).sub_size – The size (sub_size x sub_size) of each unmasked pixels sub-array.
origin (
Tuple
[float
,float
]) – The (y,x) scaled units origin of the mask’s coordinate system.normalize (
bool
) – If True, the Kernel2D’s array values are normalized such that they sum to 1.0.
- Return type
- classmethod ones(shape_native, pixel_scales, origin=(0.0, 0.0), normalize=False)[source]#
Create an Kernel2D (see Kernel2D.__new__) where all values are filled with ones, analogous to the method numpy ndarray.ones.
From 1D input the method cannot determine the 2D shape of the array and its mask, thus the shape_native must be input into this method. The mask is setup as a unmasked Mask2D of shape_native.
- Parameters
shape_native (
Tuple
[int
,int
]) – The 2D shape of the mask the array is paired with.pixel_scales (
Union
[Tuple
[float
],Tuple
[float
,float
],float
]) – The (y,x) arcsecond-to-pixel units conversion factor of every pixel. If this is input as a float, it is converted to a (float, float).sub_size – The size (sub_size x sub_size) of each unmasked pixels sub-array.
origin (
Tuple
[float
,float
]) – The (y,x) scaled units origin of the mask’s coordinate system.normalize (
bool
) – If True, the Kernel2D’s array values are normalized such that they sum to 1.0.
- classmethod zeros(shape_native, pixel_scales, origin=(0.0, 0.0), normalize=False)[source]#
Create an Kernel2D (see Kernel2D.__new__) where all values are filled with zeros, analogous to the method numpy ndarray.ones.
From 1D input the method cannot determine the 2D shape of the array and its mask, thus the shape_native must be input into this method. The mask is setup as a unmasked Mask2D of shape_native.
- Parameters
shape_native (
Tuple
[int
,int
]) – The 2D shape of the mask the array is paired with.pixel_scales (
Union
[Tuple
[float
],Tuple
[float
,float
],float
]) – The (y,x) arcsecond-to-pixel units conversion factor of every pixel. If this is input as a float, it is converted to a (float, float).sub_size – The size (sub_size x sub_size) of each unmasked pixels sub-array.
origin (
Tuple
[float
,float
]) – The (y,x) scaled units origin of the mask’s coordinate system.normalize (
bool
) – If True, the Kernel2D’s array values are normalized such that they sum to 1.0.
- Return type
- classmethod no_blur(pixel_scales)[source]#
Setup the Kernel2D as a kernel which does not convolve any signal, which is simply an array of shape (1, 1) with value 1.
- Parameters
pixel_scales – The (y,x) arcsecond-to-pixel units conversion factor of every pixel. If this is input as a float, it is converted to a (float, float).
- classmethod from_gaussian(shape_native, pixel_scales, sigma, centre=(0.0, 0.0), axis_ratio=1.0, angle=0.0, normalize=False)[source]#
Setup the Kernel2D as a 2D symmetric elliptical Gaussian profile, according to the equation:
(1.0 / (sigma * sqrt(2.0*pi))) * exp(-0.5 * (r/sigma)**2)
- Parameters
shape_native (
Tuple
[int
,int
]) – The 2D shape of the mask the array is paired with.pixel_scales (
Union
[Tuple
[float
],Tuple
[float
,float
],float
]) – The (y,x) arcsecond-to-pixel units conversion factor of every pixel. If this is input as a float, it is converted to a (float, float).sigma (
float
) – The value of sigma in the equation, describing the size and full-width half maximum of the Gaussian.centre (
Tuple
[float
,float
]) – The (y,x) central coordinates of the Gaussian.axis_ratio (
float
) – The axis-ratio of the elliptical Gaussian.angle (
float
) – The rotational angle of the Gaussian’s ellipse defined counter clockwise from the positive x-axis.normalize (
bool
) – If True, the Kernel2D’s array values are normalized such that they sum to 1.0.
- Return type
- classmethod from_fits(file_path, hdu, pixel_scales, origin=(0.0, 0.0), normalize=False)[source]#
Loads the Kernel2D from a .fits file.
- Parameters
file_path (
Union
[Path
,str
]) – The path the file is loaded from, including the filename and the.fits
extension, e.g. ‘/path/to/filename.fits’hdu (
int
) – The Header-Data Unit of the .fits file the array data is loaded from.pixel_scales – The (y,x) arcsecond-to-pixel units conversion factor of every pixel. If this is input as a float, it is converted to a (float, float).
origin – The (y,x) scaled units origin of the mask’s coordinate system.
normalize (
bool
) – If True, the Kernel2D’s array values are normalized such that they sum to 1.0.
- Return type
- classmethod from_primary_hdu(primary_hdu, origin=(0.0, 0.0))[source]#
Returns an
Kernel2D
by from a PrimaryHDU object which has been loaded via astropy.fitsThis assumes that the header of the PrimaryHDU contains an entry named PIXSCALE which gives the pixel-scale of the array.
For a full description of
Kernel2D
objects, including a description of theslim
andnative
attribute used by the API, see theKernel2D class API documentation
.- Parameters
primary_hdu (
PrimaryHDU
) – The PrimaryHDU object which has already been loaded from a .fits file via astropy.fits and contains the array data and the pixel-scale in the header with an entry named PIXSCALE.sub_size – The size (sub_size x sub_size) of each unmasked pixels sub-array.
origin (
Tuple
[float
,float
]) – The (y,x) scaled units origin of the coordinate system.
Examples
from astropy.io import fits import autoarray as aa # Make Kernel2D with sub_size 1. primary_hdu = fits.open("path/to/file.fits") array_2d = aa.Kernel2D.from_primary_hdu( primary_hdu=primary_hdu, sub_size=1 )
import autoarray as aa # Make Kernel2D with sub_size 2. # (It is uncommon that a sub-gridded array would be loaded from # a .fits, but the API support its). primary_hdu = fits.open("path/to/file.fits") array_2d = aa.Kernel2D.from_primary_hdu( primary_hdu=primary_hdu, sub_size=2 )
- Return type
- rescaled_with_odd_dimensions_from(rescale_factor, normalize=False)[source]#
If the PSF kernel has one or two even-sized dimensions, return a PSF object where the kernel has odd-sized dimensions (odd-sized dimensions are required by a Convolver).
The PSF can be scaled to larger / smaller sizes than the input size, if the rescale factor uses values that deviate furher from 1.0.
Kernels are rescald using the scikit-image routine rescale, which performs rescaling via an interpolation routine. This may lead to loss of accuracy in the PSF kernel and it is advised that users, where possible, create their PSF on an odd-sized array using their data reduction pipelines that remove this approximation.
- Parameters
rescale_factor (
float
) – The factor by which the kernel is rescaled. If this has a value of 1.0, the kernel is rescaled to the closest odd-sized dimensions (e.g. 20 -> 19). Higher / lower values scale to higher / lower dimensions.normalize (
bool
) – Whether the PSF should be normalized after being rescaled.
- Return type
- property normalized: Kernel2D#
Normalize the Kernel2D such that its data_vector values sum to unity.
- Return type
- convolved_array_from(array)[source]#
Convolve an array with this Kernel2D
- Parameters
image – An array representing the image the Kernel2D is convolved with.
- Returns
An array representing the image after convolution.
- Return type
convolved_image
- Raises
KernelException if either Kernel2D psf dimension is odd –
- convolved_array_with_mask_from(array, mask)[source]#
Convolve an array with this Kernel2D
- Parameters
image – An array representing the image the Kernel2D is convolved with.
- Returns
An array representing the image after convolution.
- Return type
convolved_image
- Raises
KernelException if either Kernel2D psf dimension is odd –