colour.recovery.generate_gaussian_basis#

colour.recovery.generate_gaussian_basis(shape: SpectralShape = SPECTRAL_SHAPE_DEFAULT, peak_wavelengths: dict | None = None, fwhm: dict | None = None, exponent: dict | None = None) MultiSpectralDistributions[source]#

Generate a set of Gaussian basis multi-spectral distributions.

The secondary colours are modeled based on their spectral characteristics:

  • Cyan: Peak in blue-green region (absorbs red), modeled as a Gaussian peak clamped left, similar to blue.

  • Yellow: Peak in red-green region (absorbs blue), modeled as a Gaussian peak clamped right, similar to red.

  • Magenta: High at red and blue, low at green (absorbs green), modeled as an inverted Gaussian (valley at green wavelengths).

Parameters:
  • shape (SpectralShape) – Spectral shape for the distributions.

  • peak_wavelengths (dict | None) – Dictionary with peak wavelengths for red, green, blue, cyan, magenta, and yellow.

  • fwhm (dict | None) – Dictionary with FWHM values for red, green, blue, cyan, magenta, and yellow.

  • exponent (dict | None) – Dictionary with exponent values for red, green, blue, cyan, magenta, and yellow. Default 2.0 gives a standard Gaussian. Values > 2 give a flatter peak (super-Gaussian).

Returns:

Gaussian basis multi-spectral distributions with signals: white, cyan, magenta, yellow, red, green, blue.

Return type:

colour.MultiSpectralDistributions

References

[Smi99]

Examples

>>> basis = generate_gaussian_basis()
>>> sorted(basis.labels)
['blue', 'cyan', 'green', 'magenta', 'red', 'white', 'yellow']
>>> float(basis.signals["yellow"].values.max())
1.0...