colour.SpectralShape#

class colour.SpectralShape(start: Real, end: Real, interval: Real)[source]#

Bases: object

Define the base object for spectral distribution shape.

The colour.SpectralShape class represents the shape of spectral data by defining its wavelength range and sampling interval. It provides a structured way to handle spectral data boundaries and generate wavelength arrays for spectral computations.

Parameters:
  • start (Real) – Wavelength \(\lambda_{i}\) range start in nm.

  • end (Real) – Wavelength \(\lambda_{i}\) range end in nm.

  • interval (Real) – Wavelength \(\lambda_{i}\) range interval.

Attributes

Methods

Examples

>>> SpectralShape(360, 830, 1)
SpectralShape(360, 830, 1)
__init__(start: Real, end: Real, interval: Real) None[source]#
Parameters:
Return type:

None

property start: Real#

Getter and setter for the spectral shape start.

Parameters:

value – Value to set the spectral shape start wavelength with.

Returns:

Start wavelength of the spectral shape in nanometres.

Return type:

Real

property end: Real#

Getter and setter for the spectral shape end.

Parameters:

value – Value to set the spectral shape end wavelength with.

Returns:

End wavelength of the spectral shape in nanometres.

Return type:

Real

.

property interval: Real#

Getter and setter for the spectral shape interval.

The interval defines the wavelength spacing between consecutive samples in the spectral distribution.

Parameters:

value – Value to set the spectral shape interval with.

Returns:

Spectral shape interval.

Return type:

Real

property boundaries: tuple#

Getter and setter for the boundaries of the spectral shape.

The boundaries define the start and end points of the spectral range as a tuple of two values.

Parameters:

value – Value to set the spectral shape boundaries with.

Returns:

Spectral shape boundaries.

Return type:

tuple

property wavelengths: NDArrayFloat#

Getter for the spectral shape wavelengths.

Returns:

Spectral shape wavelengths.

Return type:

numpy.ndarray

__str__() str[source]#

Return a formatted string representation of the spectral shape.

Returns:

Formatted string representation.

Return type:

str

__repr__() str[source]#

Return an evaluable string representation of the spectral shape.

Returns:

Evaluable string representation.

Return type:

str

__hash__() int[source]#

Return the hash value of the spectral shape.

The hash is computed based on the spectral shape’s start wavelength, end wavelength, and wavelength interval.

Returns:

Hash value of the spectral shape.

Return type:

int

__iter__() Generator[source]#

Generate wavelengths for the spectral shape range.

Yields:

Generator – Wavelength values from start to end at the specified interval.

Return type:

Generator

Examples

>>> shape = SpectralShape(0, 10, 1)
>>> for wavelength in shape:
...     print(wavelength)
0.0
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
9.0
10.0
__contains__(wavelength: ArrayLike) bool[source]#

Determine if the spectral shape contains the specified wavelength \(\lambda\).

Parameters:

wavelength (ArrayLike) – Wavelength \(\lambda\) to check for containment.

Returns:

Whether the wavelength \(\lambda\) is contained within the spectral shape.

Return type:

bool

Examples

>>> 0.5 in SpectralShape(0, 10, 0.1)
True
>>> 0.6 in SpectralShape(0, 10, 0.1)
True
>>> 0.51 in SpectralShape(0, 10, 0.1)
False
>>> np.array([0.5, 0.6]) in SpectralShape(0, 10, 0.1)
True
>>> np.array([0.51, 0.6]) in SpectralShape(0, 10, 0.1)
False
__len__() int[source]#

Return the spectral shape wavelength \(\lambda_n\) count.

Returns:

Spectral shape wavelength \(\lambda_n\) count.

Return type:

int

Examples

>>> len(SpectralShape(0, 10, 0.1))
101
__eq__(other: object) bool[source]#

Determine whether the spectral shape is equal to the specified other object.

Parameters:

other (object) – Object to determine whether it is equal to the spectral shape.

Returns:

Whether the specified object is equal to the spectral shape.

Return type:

bool

Examples

>>> SpectralShape(0, 10, 0.1) == SpectralShape(0, 10, 0.1)
True
>>> SpectralShape(0, 10, 0.1) == SpectralShape(0, 10, 1)
False
__ne__(other: object) bool[source]#

Determine whether the spectral shape is not equal to the specified other object.

Parameters:

other (object) – Object to determine whether it is not equal to the spectral shape.

Returns:

Whether the specified object is not equal to the spectral shape.

Return type:

bool

Examples

>>> SpectralShape(0, 10, 0.1) != SpectralShape(0, 10, 0.1)
False
>>> SpectralShape(0, 10, 0.1) != SpectralShape(0, 10, 1)
True
range(dtype: Type[DTypeFloat] | None = None) NDArrayFloat[source]#

Return an iterable range for the spectral shape.

Parameters:

dtype (Type[DTypeFloat] | None) – Data type used to generate the range.

Returns:

Iterable range for the spectral distribution shape.

Return type:

numpy.ndarray

Examples

>>> SpectralShape(0, 10, 0.1).wavelengths
array([ 0. ,  0.1,  0.2,  0.3,  0.4,  0.5,  0.6,  0.7,  0.8,  0.9,  1. ,
        1.1,  1.2,  1.3,  1.4,  1.5,  1.6,  1.7,  1.8,  1.9,  2. ,  2.1,
        2.2,  2.3,  2.4,  2.5,  2.6,  2.7,  2.8,  2.9,  3. ,  3.1,  3.2,
        3.3,  3.4,  3.5,  3.6,  3.7,  3.8,  3.9,  4. ,  4.1,  4.2,  4.3,
        4.4,  4.5,  4.6,  4.7,  4.8,  4.9,  5. ,  5.1,  5.2,  5.3,  5.4,
        5.5,  5.6,  5.7,  5.8,  5.9,  6. ,  6.1,  6.2,  6.3,  6.4,  6.5,
        6.6,  6.7,  6.8,  6.9,  7. ,  7.1,  7.2,  7.3,  7.4,  7.5,  7.6,
        7.7,  7.8,  7.9,  8. ,  8.1,  8.2,  8.3,  8.4,  8.5,  8.6,  8.7,
        8.8,  8.9,  9. ,  9.1,  9.2,  9.3,  9.4,  9.5,  9.6,  9.7,  9.8,
        9.9, 10. ])
__weakref__#

list of weak references to the object