Source-linked AI summary

Optimizing colormaps with consideration for color vision deficiency to enable accurate interpretation of scientific data

Jamie R. Nuñez, Christopher R. Anderton, Ryan S. Renslow

arXiv:1712.01662v3cs.CVq-bio.OT

TL;DR

CVD can make scientific colormaps difficult to interpret, motivating optimized maps that support accurate perception across viewers. The paper introduces cmaputil, which modifies colormaps in CVD-safe perceptual space, and presents cividis as an example. The authors report small remaining perceptual-delta imperfections and note cividis’s limited color coverage.

  • Problem

    Existing colormaps can be difficult to interpret for viewers with CVD, while the paper identifies a lack of mathematically optimized CVD colormaps using modern color appearance models.

  • Method

    Cmaputil modifies predefined colormaps in CIECAM02-UCS, considering selected CVD types while linearizing and maximizing the lightness range.

  • Results

    Perceptual-delta imperfections in the optimized colormaps were less than 0.2, compared with greater than 0.8 for jet; cividis was selected as an optimized example.

  • Takeaways & Limitations

    Cmaputil enables researchers to create CVD-optimized colormaps, while cividis balances hue and lightness range for viewers with and without CVD.

  • Takeaways & Limitations

    Cividis covers fewer colors than viridis, and conversion between CIECAM02-UCS and sRGB can prevent perfectly linear perceptual deltas.

Abstract

from arXiv · show

Color vision deficiency (CVD) affects more than 4% of the population and leads to a different visual perception of colors. Though this has been known for decades, colormaps with many colors across the visual spectra are often used to represent data, leading to the potential for misinterpretation or difficulty with interpretation by someone with this deficiency. Until the creation of the module presented here, there were no colormaps mathematically optimized for CVD using modern color appearance models. While there have been some attempts to make aesthetically pleasing or subjectively tolerable colormaps for those with CVD, our goal was to make optimized colormaps for the most accurate perception of scientific data by as many viewers as possible. We developed a Python module, cmaputil, to create CVD-optimized colormaps, which imports colormaps and modifies them to be perceptually uniform in CVD-safe colorspace while linearizing and maximizing the brightness range. The module is made available to the science community to enable others to easily create their own CVDoptimized colormaps. Here, we present an example CVD-optimized colormap created with this module that is optimized for viewing by those without a CVD as well as those with redgreen colorblindness. This colormap, cividis, enables nearly-identical visual-data interpretation to both groups, is perceptually uniform in hue and brightness, and increases in brightness linearly.

Introduction

The paper addresses how colormap choices can hinder scientific-data interpretation, especially for viewers with CVD, and proposes mathematically optimized alternatives. It introduces perceptual evaluation and design principles centered on perceptual uniformity, brightness range, and CVD-safe colorspace.

  • Motivation: CVD can make widely used colormaps difficult to interpret and can contribute to data misinterpretation even for viewers with normal color vision.The paper motivates careful colormap selection for digitally displayed scientific images.
  • Evaluation: CDPS plots compare perceptual differences with underlying data differences to quantify colormap perceptual sensitivity.Perceptual differences are calculated using Euclidean distances in CIECAM02-UCS space and compared with grayscale through the fitted slope.
  • Colormap design principles: A linear increase in lightness helps prevent false gradients and makes relative values easier to compare.Rapid brightness changes can exaggerate small data changes or obscure larger ones.
  • Colormap design principles: Equidistant colors in colorspace make perceptual changes occur at a constant rate across a colormap.This supports visual detection of genuinely significant data changes.
  • Additional design principles: The paper adds maximizing the J0 range within valid color bounds and applying all design principles while considering CVD.These principles aim to increase perceptual distances and improve the correspondence between brightness and higher values.
  • Contribution: Cmaputil automatically modifies predefined colormaps for a chosen CVD type, including deuteranomaly, protanomaly, or tritanomaly.The module is designed to support colormap optimization for viewers with and without CVD.

Color vision deficiency simulation

The authors use colorspacious to simulate CVD and perform colormap modifications in CIECAM02-UCS. Deuteranomaly is selected as the representative CVD type because the model supports severity levels beyond dichromatic vision.

  • Simulation method: Colorspacious converts between sRGB and CIECAM02 color spaces and simulates CVD using specified type and severity.The simulation model is based on Machado et al.
  • Simulation method: CIECAM02-UCS is used to alter colormaps because equal Euclidean distances correspond to equal perceived color differences.Its coordinates describe lightness J0, red-green a0, and yellow-blue b0.
  • Simulation method: Deuteranomaly is chosen as the CVD type because the model can represent conditions ranging from mild deficiency to complete dichromacy.The authors note that other CVD-simulation algorithms exist but select this model for their purposes.

cmaputil: Python-based colormap utilities

cmaputil provides a Python pipeline that converts colormaps through CVD-aware perceptual spaces, equalizes hue spacing, and linearizes or maximizes lightness range.

  • Implementation resources: The module includes scripts for testing and optimizing colormaps, and its code is available through GitHub and PyPI.The authors state that the available minimal dataset and scripts are sufficient to replicate the reported findings.
  • Pipeline and implementation: cmaputil accepts RGB-array colormaps and returns optimized maps in sRGB for sharing and use in other modules.The implementation uses Python and scientific-computing packages, with example processing scripts provided.
  • Optimization: It interpolates a0 versus b0 and selects points at equal arc-length distances to preserve the original hue path while improving perceptual uniformity.The target distance is based on total a0-b0 arc length divided by 255 for a standard 256-color map; other output sizes are supported.
  • Optimization: J0 is linearized either by fitting the original trend or by fitting the steepest line within valid RGB-mapping bounds.The second method maximizes the available lightness range, while the first stays closer to the original colormap.

Mass spectrometry imaging data

The study uses yeast images acquired by NanoSIMS mass spectrometry imaging as one application dataset for evaluating colormap display.

  • Data acquisition: The sample was coated with 10 nm of gold before NanoSIMS analysis to minimize charging.The experiment used a high-lateral-resolution secondary ion mass spectrometer housed at the Environmental Molecular Science Laboratory.

COMSOL Multiphysics1 modeling data

The paper demonstrates cividis on a COMSOL fluid-flow velocity map, alongside a NanoSIMS image, with CDPS plots for data sampled along white lines.

  • Modeling application: COMSOL Multiphysics is used to display a velocity map from a simple fluid-flow model with the optimized cividis colormap.The colormap was planned for availability in COMSOL v5.3a and later.
  • Visualization and evaluation: Figure 5 pairs the NanoSIMS image and COMSOL velocity map with corresponding CDPS plots computed along white-line data paths.The figure caption identifies panels a and b as the two overlaid data displays.
  • Modeling application: The model simulates unsteady incompressible flow past a long cylinder in a channel at right angles to the incoming fluid.The cylinder offset produces unstable symmetry, and Reynolds number 100 produces a developed Kármán vortex street without fully turbulent flow.

Results and discussion Considerations for implementation

The implementation must handle invalid color-space mappings and imperfect perceptual linearity, while offering two J0 strategies with different trade-offs.

  • Considerations for implementation: The original-trend J0 method can fail on invalid mappings, whereas the maximum-range method can fail when no straight line fits the valid range.The authors found maximizing the J0 range worked best in most cases but leave method choice to users’ specific applications.
  • Considerations for implementation: Converting CIECAM02-UCS values back to sRGB can produce invalid RGB values because CIECAM02-UCS spans beyond sRGB.The module clips out-of-range values using absolute colorimetric gamut mapping, which can substantially change colors far outside the valid range.
  • Considerations for implementation: Perceptual deltas are not always perfectly linear after optimized colors are converted to sRGB and back to CIECAM02-UCS.The paper attributes these deviations to gamut conversion and reports a 0.47% average error in the example described.
  • Results: Despite conversion artifacts, perceptual-delta imperfections remain below 0.2, compared with values above 0.8 for jet.The authors therefore regard the colormaps as achieving perceptual uniformity for their stated goal.

An optimized colormap

The authors developed cividis as a CVD-optimized colormap and provide cmaputil to help researchers create and evaluate alternatives. They also describe software distribution, future adaptability, and trade-offs relative to viridis.

  • An optimized colormap: Cividis was generated by optimizing viridis and selecting the J' linearization that maximized the range of J'.The authors selected it for its balance of hue and lightness range and found it close to optimal for protanomaly and tritanomaly.
  • An optimized colormap: Cmaputil improves on viridis for CVD use by flattening perceptual deltas and increasing the covered lightness range.The authors still recommend making both viridis and cividis available because viridis covers more colors for normal vision.
  • An optimized colormap: Cmaputil lets researchers experiment with colormap characteristics and create non-monotonically increasing maps for datasets where diverging colormaps are preferred.The J0 linearization function can be adjusted to support these alternatives.
  • An optimized colormap: Cividis is being added to COMSOL, OpenMIMS, and Fiji, while an ImageJ-compatible LUT is provided as supporting material.The authors also planned outreach to other software teams to increase awareness of the colormap and colormap-design considerations.
  • An optimized colormap: Cividis may become obsolete as displays move beyond the sRGB gamut, but cmaputil can be adapted by changing its target colorspace.Future displays with more available colors could also enable straighter perceptual-delta paths after color conversion.

Future work

The authors identify limited color coverage as cividis's main downside and propose future work to broaden its colors while preserving optimized perception for normal vision and deuteranomaly.

  • Future work: Cividis uses a limited blue-to-yellow range rather than cycling through more colors, making it less aesthetically pleasing than viridis.The authors connect this trade-off to maintaining CVD-compatible perception and seek ways to expand color coverage without losing that property.
  • Future work: Future work will seek more color cycling while keeping cividis optimal for normal color vision and deuteranomaly.The authors plan to maximize perceptual sensitivity while maintaining perceptual uniformity using CDPS plots.

Supporting information

The supporting information provides optimization outputs, complete cividis color tables, an ImageJ LUT, and examples showing cividis under severe forms of CVD.

  • Supporting information: S1 provides optimization figures covering CVD conversion, a0-versus-b0 interpolation, J0 linearization, overlays, and fit comparisons.The file contains example optimization results for multiple tested colormaps.
  • Supporting information: S2 lists all 256 color values for the optimal cividis colormap.The values are supplied in a text table.
  • Supporting information: S3 supplies cividis in the LUT format required by ImageJ and notes planned inclusion in Fiji.Users can add the LUT by pasting it into ImageJ's luts directory.
  • Supporting information: S4 overlays three images with cividis as simulated under deuteranomaly, protanomaly, and tritanomaly at severity 100.The examples include an autofluorescence image collected from ImageJ documentation.
Loading 1712.01662v3…