An ArcGIS style file specifies colour ramps in terms of CIELAB coordinates. These are ultimately converted to RGB when they are displayed on screen. When I generated a set of perceptually uniform colour maps for ArcGIS I found that the colours of the maps were noticeably different from their designed values. After some investigation I have concluded that the conversions between RGB and Lab used within ArcGIS are incorrect. I have been unable to reconcile the ArcGIS conversion results with those I obtain from any other published conversion routines. If it is indeed the case that the ArcGIS conversions are incorrect then proper colour management for ArcGIS may well be impossible. This may be why ArcGIS does not support ICC color profiling.
Using ArcGIS Version 10.2.1.3497 the following menu sequence brings up the colour selection tool
Color Ramp -> Edit Color Ramp -> More Colors -> Color Selector -> Advanced Selection -> Select Color
This tool allows you to interactively inspect the conversions between RGB and CIELAB colour spaces used by ArcGIS for various colours
The table below shows that the values obtained from ArcGIS are quite different from those obtained from MATLAB's colour space conversion functions. I have also verified these differences using the online conversion tools at colormine.org, easyRGB.com and workwithcolor.com
|RGB||255 0 0||0 255 0||0 0 255|
|Lab values from ArcGIS||56.5 76.9 68.1||85.6 -91.5 74.0||34.7 71.1 -101.9|
|Lab values from MATLAB + others||53.2 80.1 67.2||87.7 -86.2 83.2||32.3 79.2 -107.9|
|dark red||dark green||dark blue|
|RGB||128 0 0||0 128 0||0 0 128|
|Lab values from ArcGIS||32.0 50.9 45.0||51.2 -60.5 48.9||17.5 47.0 -67.4|
|Lab values from MATLAB + others||25.4 47.9 37.9||46.1 -51.5 49.8||12.9 47.4 -64.5|
|RGB||255 255 0||255 0 255||0 255 255|
|Lab values from ArcGIS||96.7 -20.4 87.4||64.0 92.1 -53.0||89.6 -51.5 -16.3|
|Lab values from MATLAB + others||97.1 -21.5 94.5||60.3 98.2 -60.8||91.1 -48.1 -14.1|
|dark yellow||dark magenta||dark cyan|
|RGB||128 128 0||128 0 128||0 128 128|
|Lab values from ArcGIS||58.5 -13.5 57.8||36.9 60.9 -35.1||53.9 -34.1 -10.8|
|Lab values from MATLAB + others||51.7 -12.9 56.5||29.7 58.8 -36.4||48.1 -28.8 -8.5|
As you can see some of the differences are very significant. For example the dark yellow given by the RGB values of 128 128 0 are assigned a lightness L value of 58.5 by ArcGIS when it should be 51.7 a difference of 13%. The relative distortions of dark red and dark blue are even worse at 26% and 35% respectively. This is troubling given that the design of perceptually uniform colour maps are crucially dependent on colour lightness values.
I submitted a support request to ESRI to try to confirm and/or understand this problem. I supplied them with the information presented on this page. Dealing with ESRI support was a difficult and slow process. After two months of correspondence I was unable to get a response that addressed the problem at all. My support request was ultimately marked as closed but unresolved.
17th November 2014