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.

Parameters:

mmpp_instance (Optional[Any])

__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

param mmpp_instance:

type mmpp_instance:

Optional[Any]

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:

ndarray

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

param dset:

type dset:

str

param z_layer:

type z_layer:

int

param method:

type method:

int

param save:

type save:

bool

param force:

type force:

bool

param save_dataset_name:

type save_dataset_name:

Optional[str]

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:

ndarray

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

param dset:

type dset:

str

param z_layer:

type z_layer:

int

param method:

type method:

int

param save:

type save:

bool

param force:

type force:

bool

param save_dataset_name:

type save_dataset_name:

Optional[str]

power(dset='m_z11', z_layer=-1, method=1, save=False, force=False, save_dataset_name=None, **kwargs)[source]

Compute power spectrum.

Return type:

ndarray

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)

param dset:

type dset:

str

param z_layer:

type z_layer:

int

param method:

type method:

int

param save:

type save:

bool

param force:

type force:

bool

param save_dataset_name:

type save_dataset_name:

Optional[str]

phase(dset='m_z11', z_layer=-1, method=1, **kwargs)[source]

Compute phase spectrum.

Return type:

ndarray

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

param dset:

type dset:

str

param z_layer:

type z_layer:

int

param method:

type method:

int

magnitude(dset='m_z11', z_layer=-1, method=1, **kwargs)[source]

Compute magnitude spectrum.

Return type:

ndarray

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|)

param dset:

type dset:

str

param z_layer:

type z_layer:

int

param method:

type method:

int

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.

Return type:

tuple[Any, Any]

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

param dset:

type dset:

str

param method:

type method:

int

param z_layer:

type z_layer:

int

param log_scale:

type log_scale:

bool

param normalize:

type normalize:

bool

param save:

type save:

bool

param force:

type force:

bool

param save_dataset_name:

type save_dataset_name:

Optional[str]

clear_cache()[source]

Clear FFT computation cache.

__repr__()[source]

Rich documentation display for FFT interface.

Return type:

str

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:

FFTModeInterface

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:

int

plot_modes(frequency, dset='m_z11', z_layer=0, **kwargs)[source]

Plot FMR modes at specific frequency.

Return type:

tuple[Any, Any]

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

param frequency:

type frequency:

float

param dset:

type dset:

str

param z_layer:

type z_layer:

int

interactive_spectrum(dset='m_z11', **kwargs)[source]

Create interactive spectrum plot with mode visualization.

Return type:

Any

Parameters:

dsetstr

Dataset name

**kwargs

Additional arguments for interactive plotting

Returns:

: Figure

Interactive matplotlib figure

param dset:

type dset:

str