Source code for colour.quality

# -*- coding: utf-8 -*-

from __future__ import absolute_import

import sys

from colour.utilities.deprecation import ModuleAPI, build_API_changes
from colour.utilities.documentation import is_documentation_building

from .datasets import *  # noqa
from . import datasets
from .cfi2017 import (ColourRendering_Specification_CIE2017,
                      colour_fidelity_index_CIE2017)
from .cri import ColourRendering_Specification_CRI, colour_rendering_index
from .cqs import (COLOUR_QUALITY_SCALE_METHODS,
                  ColourRendering_Specification_CQS, colour_quality_scale)
from .ssi import spectral_similarity_index
from .tm3018 import (ColourQuality_Specification_ANSIIESTM3018,
                     colour_fidelity_index_ANSIIESTM3018)
from colour.utilities import CaseInsensitiveMapping

__all__ = []
__all__ += datasets.__all__
__all__ += [
    'ColourRendering_Specification_CIE2017', 'colour_fidelity_index_CIE2017'
]
__all__ += [
    'ColourQuality_Specification_ANSIIESTM3018',
    'colour_fidelity_index_ANSIIESTM3018'
]
__all__ += ['ColourRendering_Specification_CRI', 'colour_rendering_index']
__all__ += [
    'ColourRendering_Specification_CQS', 'COLOUR_QUALITY_SCALE_METHODS',
    'colour_quality_scale'
]
__all__ += ['spectral_similarity_index']

COLOUR_FIDELITY_INDEX_METHODS = CaseInsensitiveMapping({
    'CIE 2017': colour_fidelity_index_CIE2017,
    'ANSI/IES TM-30-18': colour_fidelity_index_ANSIIESTM3018,
})
COLOUR_FIDELITY_INDEX_METHODS.__doc__ = """
Supported  *Colour Fidelity Index* (CFI) computation methods.

References
----------
:cite:`CIETC1-902017`, :cite:`ANSI2018`

COLOUR_FIDELITY_INDEX_METHODS : tuple
    **{'CIE 2017', 'ANSI/IES TM-30-18'}**
"""


[docs]def colour_fidelity_index(sd_test, additional_data=False, method='CIE 2017'): """ Returns the *Colour Fidelity Index* (CFI) :math:`R_f` of given spectral distribution using given method. Parameters ---------- sd_test : SpectralDistribution Test spectral distribution. additional_data : bool, optional Whether to output additional data. method : unicode, optional **{'CIE 2017', 'ANSI/IES TM-30-18'}**, Computation method. Returns ------- numeric or ColourRendering_Specification_CIE2017 or \ ColourQuality_Specification_ANSIIESTM3018 *Colour Fidelity Index* (CFI) :math:`R_f`. References ---------- :cite:`CIETC1-902017`, :cite:`ANSI2018` Examples -------- >>> from colour.colorimetry import SDS_ILLUMINANTS >>> sd = SDS_ILLUMINANTS['FL2'] >>> colour_fidelity_index(sd) # doctest: +ELLIPSIS 70.1208254... """ function = COLOUR_FIDELITY_INDEX_METHODS[method] return function(sd_test, additional_data)
__all__ += ['COLOUR_FIDELITY_INDEX_METHODS', 'colour_fidelity_index'] # ----------------------------------------------------------------------------# # --- API Changes and Deprecation Management ---# # ----------------------------------------------------------------------------# class quality(ModuleAPI): def __getattr__(self, attribute): return super(quality, self).__getattr__(attribute) # v0.3.16 API_CHANGES = { 'ObjectRenamed': [ [ 'colour.quality.CQS_Specification', 'colour.quality.ColourRendering_Specification_CQS', ], [ 'colour.quality.CRI_Specification', 'colour.quality.ColourRendering_Specification_CRI', ], [ 'colour.quality.TCS_SDS', 'colour.quality.SDS_TCS', ], [ 'colour.quality.VS_SDS', 'colour.quality.SDS_VS', ], ] } """ Defines *colour.quality* sub-package API changes. API_CHANGES : dict """ if not is_documentation_building(): sys.modules['colour.quality'] = quality(sys.modules['colour.quality'], build_API_changes(API_CHANGES)) del ModuleAPI, is_documentation_building, build_API_changes, sys