FFT Core Module
Core FFT functionality and base classes.
Core Classes and Functions
FFT Core Module
Main FFT class providing unified interface for FFT analysis.
- class mmpp.fft.core.FFT(job_result, mmpp_instance=None)[source]
Bases:
object
Main FFT analysis class providing numpy.fft-like interface.
This class aggregates FFT computation and plotting capabilities for MMPP job results.
- __init__(job_result, mmpp_instance=None)[source]
Initialize FFT analyzer for a job result.
Parameters:
- job_resultZarrJobResult
Job result to analyze
- mmpp_instanceMMPP, optional
Reference to parent MMPP instance
- property plotter: FFTPlotter
Get plotter instance (lazy initialization).
- spectrum(dset='m_z11', z_layer=-1, method=1, save=False, force=False, save_dataset_name=None, **kwargs)[source]
Compute FFT spectrum.
- Return type:
Parameters:
- dsetstr, optional
Dataset name (default: “m_z11”)
- z_layerint, optional
Z-layer (default: -1)
- methodint, optional
FFT method (default: 1)
- savebool, optional
Save result to zarr file (default: False)
- forcebool, optional
Force recalculation and overwrite existing (default: False)
- save_dataset_namestr, optional
Custom name for saved dataset (default: auto-generated)
- **kwargsAny
Additional FFT configuration options
Returns:
: np.ndarray
Complex FFT spectrum
- frequencies(dset='m_z11', z_layer=-1, method=1, save=False, force=False, save_dataset_name=None, **kwargs)[source]
Get frequency array for FFT.
- Return type:
Parameters:
- dsetstr, optional
Dataset name (default: “m_z11”)
- z_layerint, optional
Z-layer (default: -1)
- methodint, optional
FFT method (default: 1)
- savebool, optional
Save result to zarr file (default: False)
- forcebool, optional
Force recalculation and overwrite existing (default: False)
- save_dataset_namestr, optional
Custom name for saved dataset (default: auto-generated)
- **kwargsAny
Additional FFT configuration options
Returns:
: np.ndarray
Frequency array
- power(dset='m_z11', z_layer=-1, method=1, save=False, force=False, save_dataset_name=None, **kwargs)[source]
Compute power spectrum.
- Return type:
Parameters:
- dsetstr, optional
Dataset name (default: “m_z11”)
- z_layerint, optional
Z-layer (default: -1)
- methodint, optional
FFT method (default: 1)
- savebool, optional
Save result to zarr file (default: False)
- forcebool, optional
Force recalculation and overwrite existing (default: False)
- save_dataset_namestr, optional
Custom name for saved dataset (default: auto-generated)
- **kwargsAny
Additional FFT configuration options
Returns:
: np.ndarray
Power spectrum (|FFT|^2)
- phase(dset='m_z11', z_layer=-1, method=1, **kwargs)[source]
Compute phase spectrum.
- Return type:
Parameters:
- dsetstr, optional
Dataset name (default: “m_z11”)
- z_layerint, optional
Z-layer (default: -1)
- methodint, optional
FFT method (default: 1)
- **kwargsAny
Additional FFT configuration options
Returns:
: np.ndarray
Phase spectrum
- magnitude(dset='m_z11', z_layer=-1, method=1, **kwargs)[source]
Compute magnitude spectrum.
- Return type:
Parameters:
- dsetstr, optional
Dataset name (default: “m_z11”)
- z_layerint, optional
Z-layer (default: -1)
- methodint, optional
FFT method (default: 1)
- **kwargsAny
Additional FFT configuration options
Returns:
: np.ndarray
Magnitude spectrum (|FFT|)
- plot_spectrum(dset='m_z11', method=1, z_layer=-1, log_scale=True, normalize=False, save=True, force=False, save_dataset_name=None, **kwargs)[source]
Plot power spectrum.
Parameters:
- dsetstr, optional
Dataset name (default: “m_z11”)
- methodint, optional
FFT method (default: 1)
- z_layerint, optional
Z-layer (default: -1)
- log_scalebool, optional
Use logarithmic scale (default: True)
- normalizebool, optional
Normalize spectrum (default: False)
- savebool, optional
Save FFT result to zarr file (default: True)
- forcebool, optional
Force recalculation and overwrite existing (default: False)
- save_dataset_namestr, optional
Custom name for saved dataset (default: auto-generated)
- **kwargsAny
Additional plotting options
Returns:
: tuple
(figure, axes) matplotlib objects
- property modes: FFTModeInterface
Get mode visualization interface.
Returns:
- FFTModeInterface
Interface for mode operations
Examples:
>>> op[0].fft.modes.interactive_spectrum() >>> op[0].fft.modes.plot_modes(frequency=1.5) >>> op[0].fft[0][200].plot_modes() # Elegant syntax
- __getitem__(index)[source]
Get FFT result by index for mode operations.
- Return type:
Parameters:
- indexint
FFT result index (usually 0 for latest)
Returns:
: FFTModeInterface
Interface for mode operations at specific FFT result
Examples:
>>> op[0].fft[0].interactive_spectrum() >>> op[0].fft[0][200].plot_modes()
- param index:
- type index:
- plot_modes(frequency, dset='m_z11', z_layer=0, **kwargs)[source]
Plot FMR modes at specific frequency.
Parameters:
- frequencyfloat
Frequency in GHz
- dsetstr
Dataset name
- z_layerint
Z-layer index
- **kwargs
Additional arguments for mode plotting
Returns:
: Tuple[Figure, np.ndarray]
Matplotlib figure and axes