{ "cells": [ { "cell_type": "markdown", "id": "5be417ac-c7bd-4bed-94ea-f2f624d75428", "metadata": {}, "source": [ "\n", "Colorimetric observer models\n", "============================\n", "\n", "For silent substitution we quantify light in terms of photoreceptor excitation using the equation:\n", "\n", "\\begin{equation}\n", "E_{\\alpha} = \\sum\\limits_{380}^{780}E(\\lambda)S_\\alpha(\\lambda)\\Delta_{\\lambda}\n", "\\end{equation}\n", "\n", "where $E_\\alpha$ is a scalar representing the photoreceptor activation for photoreceptor class $\\alpha$, $E(\\lambda)$ is the spectral power distribution of the light source (radiance or irradiance in photons or watts), $S_\\alpha(\\lambda)$ is the estimated photoreceptor action spectrum, and $\\mathrm{\\Delta}_\\lambda$ is the width of the spectral sampling. \n", "\n", "By convention ([CIE S 026/E:2018](https://cie.co.at/publications/cie-system-metrology-optical-radiation-iprgc-influenced-responses-light-0)), when this computation concerns the spectral sensitivity functions of retinal photoreceptors, the resulting measures may be called $\\alpha$-opic irradiance, where $\\alpha$ denotes the opsin-based photopigment of one of the five photoreceptors (S cones, M cones, L cones, rods and ipRGCs). \n", "\n", "The example below shows how a measured spectrum is converted to $\\alpha$-opic irradiance.\n", "\n", "\n", "\n", "![aopic irradiance](../../img/alphaopic_irradiance.svg)\n", "\n", "The International Commission on Illumination (CIE) define [average colorimetric observer models](https://cie.co.at/publications/colorimetric-observers) with estimates of the photoreceptor spectral sensitivities for a given age and field size. The estimates are based on decades of research involving predominantly psychophysical methods. The CIE 1964 Standard Colorimetric Observer assumes an age and field size of 32 years and 10°, and is deemed suitable for most situations. \n", "\n", "For silent substitution, it may be preferable to address [inter-observer differences in ocular physiology](07b_prereceptoral_filtering.ipynb) by adjusting the spectral sensitivity functions to account for prereceptoral filtering of incident light by the lens and other ocular media. To support this, *PySilSub* uses a `ColorimetricObserver` class, which can be passed as an argument when instantiating a `StimulationDevice` or `SilentSubstitutionProblem`. " ] }, { "cell_type": "markdown", "id": "c62c9e17-e6a4-4ff7-bcad-46a6070d8a29", "metadata": {}, "source": [ "\n", "`pysilsub.observers.ColorimetricObserver`\n", "-----------------------------------------\n", "\n", "When instantiated without arguments, this corresponds to the CIE Standard Physiological Observer for a 32-year-old and 10° field size. Action spectra are obtained from the [CIE S026/E:2018 toolbox](https://cie.co.at/publications/cie-system-metrology-optical-radiation-iprgc-influenced-responses-light-0) and normalised in the radiometric system. \n", "\n", "**Note:** For quantities expressed in the spectral photon system, a wavelength-dependent conversion and renormalisation is required to generate applicable action spectra. " ] }, { "cell_type": "code", "execution_count": 4, "id": "4ed55775-1331-4588-b20f-6b6e31c770b9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ColorimetricObserver(age=32, field_size=10)\n" ] }, { "data": { "text/html": [ "
\n", " | sc | \n", "mc | \n", "lc | \n", "rh | \n", "mel | \n", "
---|---|---|---|---|---|
Wavelength | \n", "\n", " | \n", " | \n", " | \n", " | \n", " |
380 | \n", "0.000000e+00 | \n", "0.000000 | \n", "0.000000 | \n", "5.890000e-04 | \n", "9.181600e-04 | \n", "
381 | \n", "0.000000e+00 | \n", "0.000000 | \n", "0.000000 | \n", "6.650000e-04 | \n", "1.045600e-03 | \n", "
382 | \n", "0.000000e+00 | \n", "0.000000 | \n", "0.000000 | \n", "7.520000e-04 | \n", "1.178600e-03 | \n", "
383 | \n", "0.000000e+00 | \n", "0.000000 | \n", "0.000000 | \n", "8.540000e-04 | \n", "1.322800e-03 | \n", "
384 | \n", "0.000000e+00 | \n", "0.000000 | \n", "0.000000 | \n", "9.720000e-04 | \n", "1.483800e-03 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
776 | \n", "1.231928e-24 | \n", "0.000002 | \n", "0.000024 | \n", "1.730000e-07 | \n", "2.550000e-08 | \n", "
777 | \n", "2.155874e-24 | \n", "0.000002 | \n", "0.000022 | \n", "1.640000e-07 | \n", "2.420000e-08 | \n", "
778 | \n", "2.463856e-24 | \n", "0.000002 | \n", "0.000021 | \n", "1.550000e-07 | \n", "2.290000e-08 | \n", "
779 | \n", "1.847892e-24 | \n", "0.000002 | \n", "0.000020 | \n", "1.470000e-07 | \n", "2.170000e-08 | \n", "
780 | \n", "0.000000e+00 | \n", "0.000001 | \n", "0.000019 | \n", "1.390000e-07 | \n", "2.050000e-08 | \n", "
401 rows × 5 columns
\n", "