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