class apav.analysis.spatial.RangedGrid(roi, ranges, bin_width=1, first_pass=True, delocalization=array([3.0, 3.0, 1.5]), gauss_trunc=4)[source]

Compute the ionic and elemental composition spatially distributed among a structured grid

  • roi (Roi) – Parent the RangedGrid is competed on

  • ranges (RangeCollection) – RangeCollection defining the ranges

  • bin_width (Number) – symmetric bin width size

  • first_pass (bool) – Whether the first pass delocalization is computed using a gaussian transfer function.

  • delocalization (Union[Number, Sequence[Number]]) – The delocalization distances (as 3 standard deviations of a normal distribution)

  • gauss_trunc (Number) – Number of standard deviations to truncate the gaussian kernel for second pass delocalization

property all_elemental_frac: Dict[Element, ndarray]

Get all elemental fraction grids as a dict

property all_elemental_frac_str: Dict[str, ndarray]

Get all elemental fraction grids as a dictionary (using elemental symbols)

property all_ionic_counts: Dict[Ion, ndarray]

Get all ionic count grids in a dict

property bin_width: float

Bin width of the voxels

property centers: Tuple[ndarray, ndarray, ndarray]

The center positions of the structured grids

For MxNxP voxels this returns 3 arrays of dimensions: Mx1x1, 1xNx1, 1x1xP

property delocalization: ndarray

Amount of smoothing used during the delocalization process

property elemental_counts_grid: ndarray

Get an array of the cumulative elemental counts in each bin

property elemental_counts_total: Number

Get the total (sum) of all elemental counts


Get a single elemental fraction grid :type element: Union[str, Element] :param element: the elemental of the grid to return (Element or str)

Return type:


property extents: Tuple[Tuple[float, float], Tuple[float, float], Tuple[float, float]]

Get the spatial extents (by center positions) of the grids

property first_pass: bool

Whether to compute first pass delocalization

property gauss_trunc: Number

Where to truncate the gaussian kernel for second pass delocalization


Get a single ionic counts grid :type ion: Ion :param ion: The ion of the grid to return

Return type:


property ranges: RangeCollection

The ranges used for ranging the mass spectrum


class apav.analysis.spatial.DensityHistogram(roi, bin_width=0.3, axis='z', multiplicity='all')[source]

Compute density histograms on an Roi

  • roi (Roi) – region of interest

  • bin_width – width of the bin size in Daltons

  • axis – which axis the histogram should be computed on (“x”, “y”, or “z”)

  • multiplicity – the multiplicity order to compute histogram with


apav.analysis.spatial.make_coordinate_grids(extents, bin_width, edges=False)[source]

Generate 3D x/y/z coordinate arrays for indexing into compositional grids

  • extents (Sequence[Tuple[Number, Number]]) – The x/y/z extent to generate the grids for

  • bin_width (Union[Sequence[Number], Number]) – The bin width of each bin, a single number or sequence of numbers for each dimension

  • edges – Whether the coordinates represent the edges of the bins or centers

Return type:

Tuple[ndarray, ndarray, ndarray]


apav.analysis.spatial.ion_transfer(X, Y, Z, pos, stddev3)[source]

Transfer an array of ion positions to a binned grid.

  • X (ndarray) – 3D array of x-coordinates of grid

  • Y (ndarray) – 3D array of y-coordinates of grid

  • Y – 3D array of z-coordinates of grid

  • pos (ndarray) – 2D array of positions

  • stddev3 (Number) – 3sigma standard deviation of gaussian distribution

Return type:



3D array of counts