Source code for autoarray.inversion.pixelization.mesh.voronoi
from autoarray.structures.mesh.voronoi_2d import Mesh2DVoronoi
from autoarray.inversion.pixelization.mesh.triangulation import Triangulation
from autoarray.numba_util import profile_func
[docs]class Voronoi(Triangulation):
def __init__(self):
"""
An irregular mesh of Voronoi pixels, which using no interpolation are paired with a 2D grid of (y,x)
coordinates.
For a full description of how a mesh is paired with another grid,
see the :meth:`Pixelization API documentation <autoarray.inversion.pixelization.pixelization.Pixelization>`.
The Voronoi mesh represents pixels as an irregular 2D grid of Voronoi cells.
A ``Pixelization`` using a ``Voronoi`` mesh has four grids associated with it:
- ``image_plane_data_grid``: The observed data grid in the image-plane (which is paired with the mesh in
the source-plane).
- ``image_plane_mesh_grid``: The (y,x) mesh coordinates in the image-plane (which are the centres of Voronoi
cells in the source-plane).
- ``source_plane_data_grid``: The observed data grid mapped to the source-plane (e.g. after gravitational lensing).
- ``source_plane_mesh_grid``: The centre of each Voronoi cell in the source-plane
(the ``image_plane_mesh_grid`` maps to this after gravitational lensing).
Each (y,x) coordinate in the ``source_plane_data_grid`` is paired with all Voronoi cells it falls within,
without using an interpolation scheme.
"""
super().__init__()
@property
def uses_interpolation(self):
return False
[docs] @profile_func
def mesh_grid_from(
self,
source_plane_data_grid=None,
source_plane_mesh_grid=None,
) -> Mesh2DVoronoi:
"""
Return the Voronoi `source_plane_mesh_grid` as a `Mesh2DVoronoi` object, which provides additional
functionality for performing operations that exploit the geometry of a Voronoi mesh.
Parameters
----------
source_plane_data_grid
A 2D grid of (y,x) coordinates associated with the unmasked 2D data after it has been transformed to the
`source` reference frame.
source_plane_mesh_grid
The centres of every Voronoi pixel in the `source` frame, which are initially derived by computing a sparse
set of (y,x) coordinates computed from the unmasked data in the `data` frame and applying a transformation
to this.
settings
Settings controlling the pixelization for example if a border is used to relocate its exterior coordinates.
"""
return Mesh2DVoronoi(
values=source_plane_mesh_grid,
uses_interpolation=self.uses_interpolation,
)