CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-colour-science

Comprehensive Python library providing algorithms and datasets for colour science computations, including chromatic adaptation, colour appearance models, colorimetry, and spectral analysis.

Pending

Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

Overview
Eval results
Files

temperature.mddocs/

Colour Temperature and CCT Calculations

Comprehensive colour temperature and correlated colour temperature (CCT) calculations supporting multiple computational methods for converting between chromaticity coordinates and temperature values.

Capabilities

CIE xy to CCT Conversion

Convert CIE xy chromaticity coordinates to correlated colour temperature using various computational methods.

def xy_to_CCT(xy: ArrayLike, method: str = "CIE Illuminant D Series") -> NDArray:
    """
    Calculate correlated colour temperature from CIE xy chromaticity coordinates.
    
    Parameters:
    - xy: CIE xy chromaticity coordinates as ndarray shape (2,) or (..., 2)
    - method: computation method
        - "CIE Illuminant D Series" (default): CIE D-illuminant series method
        - "Hernandez 1999": Hernández-Andrés, Lee, and Romero (1999) method
        - "Kang 2002": Kang et al. (2002) method
        - "McCamy 1992": McCamy's (1992) approximation method
    
    Returns:
    Correlated colour temperature in Kelvin
    """

# Method collection for xy to CCT conversion
XY_TO_CCT_METHODS: Dict[str, Callable]

CCT to CIE xy Conversion

Convert correlated colour temperature to CIE xy chromaticity coordinates.

def CCT_to_xy(CCT: ArrayLike, method: str = "CIE Illuminant D Series") -> NDArray:
    """
    Calculate CIE xy chromaticity coordinates from correlated colour temperature.
    
    Parameters:
    - CCT: correlated colour temperature in Kelvin
    - method: computation method (same options as xy_to_CCT)
    
    Returns:
    CIE xy chromaticity coordinates as ndarray shape (2,) or (..., 2)
    """

# Method collection for CCT to xy conversion
CCT_TO_XY_METHODS: Dict[str, Callable]

CIE uv to CCT Conversion

Convert CIE UCS uv chromaticity coordinates to correlated colour temperature with delta uv.

def uv_to_CCT(uv: ArrayLike, method: str = "Ohno 2013", **kwargs) -> NDArray:
    """
    Calculate correlated colour temperature and Duv from CIE UCS uv coordinates.
    
    Parameters:
    - uv: CIE UCS uv chromaticity coordinates as ndarray shape (2,) or (..., 2)
    - method: computation method
        - "Ohno 2013" (default): Ohno (2013) method with Duv calculation
        - "Krystek 1985": Krystek (1985) optimization method
        - "Planck 1900": Planckian radiator method
        - "Robertson 1968": Robertson (1968) isotemperature lines method
    - **kwargs: additional method-specific parameters
    
    Returns:
    ndarray with CCT in Kelvin and Duv as [CCT, Duv]
    """

# Method collection for uv to CCT conversion
UV_TO_CCT_METHODS: Dict[str, Callable]

CCT to CIE uv Conversion

Convert correlated colour temperature and delta uv to CIE UCS uv chromaticity coordinates.

def CCT_to_uv(CCT_D_uv: ArrayLike, method: str = "Ohno 2013", **kwargs) -> NDArray:
    """
    Calculate CIE UCS uv coordinates from correlated colour temperature and Duv.
    
    Parameters:
    - CCT_D_uv: array containing [CCT, Duv] values
    - method: computation method (same options as uv_to_CCT)
    - **kwargs: additional method-specific parameters
    
    Returns:
    CIE UCS uv chromaticity coordinates as ndarray shape (2,) or (..., 2)
    """

# Method collection for CCT to uv conversion
CCT_TO_UV_METHODS: Dict[str, Callable]

Specialized Temperature Functions

Additional temperature-related utility functions for specific applications.

def CCT_to_XYZ_Ohno2013(CCT_D_uv: ArrayLike, cmfs: XYZ_ColourMatchingFunctions = None) -> NDArray:
    """
    Convert CCT and Duv to CIE XYZ tristimulus values using Ohno (2013) method.
    
    Parameters:
    - CCT_D_uv: array containing [CCT, Duv] values
    - cmfs: colour matching functions
    
    Returns:
    CIE XYZ tristimulus values
    """

def XYZ_to_CCT_Ohno2013(XYZ: ArrayLike, cmfs: XYZ_ColourMatchingFunctions = None, **kwargs) -> NDArray:
    """
    Convert CIE XYZ tristimulus values to CCT and Duv using Ohno (2013) method.
    
    Parameters:
    - XYZ: CIE XYZ tristimulus values
    - cmfs: colour matching functions
    - **kwargs: additional computation parameters
    
    Returns:
    ndarray with CCT in Kelvin and Duv as [CCT, Duv]
    """

def CCT_to_mired(CCT: ArrayLike) -> NDArray:
    """
    Convert correlated colour temperature to mireds (micro reciprocal degrees).
    
    Parameters:
    - CCT: correlated colour temperature in Kelvin
    
    Returns:
    Temperature in mireds
    """

def mired_to_CCT(mireds: ArrayLike) -> NDArray:
    """
    Convert mireds to correlated colour temperature.
    
    Parameters:
    - mireds: temperature in mireds
    
    Returns:
    Correlated colour temperature in Kelvin
    """

Usage Examples

Basic CCT Calculations

import colour
import numpy as np

# Convert xy chromaticity to CCT
xy_d65 = np.array([0.31270, 0.32900])  # D65 white point
cct_d65 = colour.xy_to_CCT(xy_d65)
print(f"D65 CCT: {cct_d65:.0f}K")  # ~6500K

# Convert CCT back to xy
xy_recovered = colour.CCT_to_xy(cct_d65)
print(f"Recovered xy: {xy_recovered}")

# Try different methods
cct_hernandez = colour.xy_to_CCT(xy_d65, method="Hernandez 1999")
cct_mccamy = colour.xy_to_CCT(xy_d65, method="McCamy 1992")
print(f"Hernandez 1999: {cct_hernandez:.0f}K")
print(f"McCamy 1992: {cct_mccamy:.0f}K")

Advanced CCT with Duv

import colour
import numpy as np

# Convert uv coordinates to CCT with Duv
uv = np.array([0.1978, 0.3122])
cct_duv = colour.uv_to_CCT(uv, method="Ohno 2013")
print(f"CCT: {cct_duv[0]:.0f}K, Duv: {cct_duv[1]:.4f}")

# Convert CCT and Duv back to uv
uv_recovered = colour.CCT_to_uv(cct_duv, method="Ohno 2013")
print(f"Recovered uv: {uv_recovered}")

# Direct XYZ to CCT conversion
XYZ_d65 = np.array([95.047, 100.0, 108.883])
cct_duv_xyz = colour.XYZ_to_CCT_Ohno2013(XYZ_d65)
print(f"XYZ to CCT: {cct_duv_xyz[0]:.0f}K, Duv: {cct_duv_xyz[1]:.4f}")

Mired Conversions

import colour
import numpy as np

# Convert CCT to mireds for color correction calculations
cct_values = np.array([2850, 5600, 6500])  # Tungsten, daylight, D65
mireds = colour.CCT_to_mired(cct_values)
print(f"CCT: {cct_values}")
print(f"Mireds: {mireds}")

# Color temperature shift calculation
shift_mireds = mireds[1] - mireds[0]  # Tungsten to daylight shift
print(f"Color correction shift: {shift_mireds:.0f} mireds")

# Convert back to CCT
cct_recovered = colour.mired_to_CCT(mireds)
print(f"Recovered CCT: {cct_recovered}")

Method Comparison

import colour
import numpy as np

# Compare different methods for same chromaticity
xy_test = np.array([0.3, 0.32])

methods = ["CIE Illuminant D Series", "Hernandez 1999", "Kang 2002", "McCamy 1992"]
for method in methods:
    cct = colour.xy_to_CCT(xy_test, method=method)
    print(f"{method}: {cct:.0f}K")

# Compare uv methods
uv_test = np.array([0.2, 0.31])
uv_methods = ["Ohno 2013", "Krystek 1985", "Robertson 1968", "Planck 1900"]
for method in uv_methods:
    result = colour.uv_to_CCT(uv_test, method=method)
    if len(result) == 2:
        print(f"{method}: {result[0]:.0f}K, Duv: {result[1]:.4f}")
    else:
        print(f"{method}: {result:.0f}K")

Types

from colour.hints import ArrayLike, NDArray, Dict, Callable, Literal
from colour.colorimetry import XYZ_ColourMatchingFunctions

# Method collections type
MethodCollection = Dict[str, Callable]

# CCT calculation result types
CCTResult = NDArray  # Single CCT value
CCTDuvResult = NDArray  # [CCT, Duv] pair

Imports

# Master temperature functions
from colour.temperature import (
    xy_to_CCT, CCT_to_xy, uv_to_CCT, CCT_to_uv,
    XY_TO_CCT_METHODS, CCT_TO_XY_METHODS,
    UV_TO_CCT_METHODS, CCT_TO_UV_METHODS
)

# Specialized functions
from colour.temperature import (
    CCT_to_XYZ_Ohno2013, XYZ_to_CCT_Ohno2013,
    CCT_to_mired, mired_to_CCT
)

# Alternative imports from main package
from colour import (
    xy_to_CCT, CCT_to_xy, uv_to_CCT, CCT_to_uv,
    CCT_to_mired, mired_to_CCT
)

Install with Tessl CLI

npx tessl i tessl/pypi-colour-science

docs

advanced-features.md

chromatic-adaptation.md

colorimetry.md

colour-appearance.md

colour-difference.md

colour-models.md

constants.md

geometry.md

index.md

input-output.md

math-utilities.md

notation.md

plotting.md

quality-assessment.md

temperature.md

tile.json