aspire.nufft package¶
Submodules¶
aspire.nufft.cufinufft module¶
aspire.nufft.finufft module¶
- class aspire.nufft.finufft.FinufftPlan(*args, **kwargs)¶
Bases:
Plan
A plan for non-uniform FFT in 2D or 3D.
- Parameters:
sz – A tuple indicating the geometry of the signal.
fourier_pts – The points in Fourier space where the Fourier transform is to be calculated, arranged as a dimension-by-K array. These need to be in the range [-pi, pi] in each dimension.
epsilon – The desired precision of the NUFFT.
ntransforms – Optional integer indicating if you would like to compute a batch of ntransforms. transforms. Implies vol_f.shape is (ntransforms, …).
- adjoint(signal)¶
Compute the NUFFT adjoint using this plan instance.
- Parameters:
signal – Signal to be transformed. For a single transform, this should be a a 1D array of len num_pts. For a batch, signal should have shape (ntransforms, num_pts).
- Returns:
Transformed signal (sz) or (ntransforms, sz).
- transform(signal)¶
Compute the NUFFT transform using this plan instance.
- Parameters:
signal – Signal to be transformed. For a single transform, this should be a a 1, 2, or 3D array matching the plan sz. For a batch, signal should have shape (ntransforms, *sz).
- Returns:
Transformed signal of shape num_pts or (ntransforms, num_pts).
aspire.nufft.pynfft module¶
aspire.nufft.utils module¶
- aspire.nufft.utils.nextpow2(x)¶
Module contents¶
- class aspire.nufft.Plan(*args, **kwargs)¶
Bases:
object
- aspire.nufft.all_backends()¶
Determine all available NFFT backends
- Returns:
A list of strings representing available NFFT backends
- aspire.nufft.anufft(sig_f, fourier_pts, sz, real=False, epsilon=1e-08)¶
Wrapper for 1, 2, and 3 dimensional Non Uniform FFT Adjoint. Dimension is based on the dimension of fourier_pts and checked against sig_f.
Selects best available package from nfft backends configuration list.
When sig_f is provided as a CuPy GPU array with a cufinufft backend, result is maintained on GPU.
- Parameters:
sig_f – Array representing the signal(s) in Fourier space to be transformed. sig_f either matches length of fourier_pts or sig_f.shape is stack of (ntransforms, …).
fourier_pts – The points in Fourier space where the Fourier transform is to be calculated, arranged as a dimension-by-K array. These need to be in the range [-pi, pi] in each dimension.
sz – A tuple indicating the geometry of the signal.
real – Optional Bool indicating if you would like only the real components, Defaults False.
- Returns:
The Non Uniform FFT adjoint transform.
- aspire.nufft.backend_available(backend)¶
Whether a particular NFFT backend is available
- Parameters:
backend – String representing the NFFT backend, e.g. ‘finufft’ or ‘pynfft’
- Returns:
Boolean on whether the backend is available
- aspire.nufft.check_backends(raise_errors=True)¶
Check all NFFT backends in package configuration
- Parameters:
raise_errors – Whether to raise a RuntimeError if no backends detected.
- Returns:
On return, the global names ‘backends’/’default_plan_class’ have been populated
- aspire.nufft.nufft(sig_f, fourier_pts, real=False, epsilon=1e-08)¶
Wrapper for 1, 2, and 3 dimensional Non Uniform FFT Dimension is based on the dimension of fourier_pts and checked against sig_f.
Selects best available package from nfft backends configuration list.
When sig_f is provided as a CuPy GPU array with a cufinufft backend, result is maintained on GPU.
- Parameters:
sig_f – Array representing the signal(s) in real space to be transformed. sig_f either matches sz or sig_f.shape is stack of (…, ntransforms).
fourier_pts – The points in Fourier space where the Fourier transform is to be calculated, arranged as a dimension-by-K array. These need to be in the range [-pi, pi] in each dimension.
real – Optional Bool indicating if you would like only the real components, Defaults False.
- Returns:
The Non Uniform FFT transform.