Measuring Test Chart Patches with a Spectrophotometer

Using Babelcolor Patch Tool or SpectraShop 4

This post describes how to measure color and grayscale patches on a variety of test charts, including Imatest SFRplus and eSFR ISO charts, the X-Rite Colorchecker, ISO-15729, ISO-14524, ChromaDuMonde CDM-28R, and many more, using a spectrophotometer and one of two software packages.


Measurement results are stored in CGATS files, which can be used as reference files for grayscale and color chart analysis in Multicharts, Multitest, Colorcheck, Stepchart, and SFRplus. In many cases, custom reference files provide more accurate results than the default values.

In addition, Argyll CMS is a free, Open Source, command line-based package that can be used for a number of measurements, including illumination intensity and spectrum. See the Argyll CMS documentation for more details.


At Imatest we currently use the i1Basic Pro 2 (a good choice if you’re shopping for a new instrument; ). We’ll call it the i1Pro in the text below. It’s one of several instruments supported by Babelcolor PatchTool and Robin Myers SpectraShop 4 software. The i1Pro is primarily designed for reflective readings, but it can also be used to measure transmissive (backlit) charts.

  • If you don’t have the original disk, Load the drivers and software from X-Rite. For our i1Pro we clicked on Software downloads (5 Items) (on this page), and loaded all relevant software. For the i1Basic Pro 2, go to this page.

  • Install the drivers for your system and i1Diagnostics. Run i1Diagnostics to make sure your hardware is functioning properly.

  • The other programs for the i1Pro are useful for purposes such as monitor calibration, but not directly relevant to chart calibration/patch measurement.

Babelcolor Patch Tool

Read the description of PatchTool on the Babelcolor page, then download and install it. You’ll need to purchase it in order to run Patch-Reader (no luck with evaluation mode). Registration is straightforward (no special instructions needed).

  • Open PatchTool. The window is very simple— not much to it.

  • Click Tools, Patch-Reader… to open the Patch-Reader…

  • Select the Chat type. Click Custom chart for rectangular grid charts (like the X-Rite Colorchecker), and select the correct number of rows and columns. The default is 4 rows, 6 columns (for the Colorchecker). Select 4 rows, 5 columns for SFRplus color and grayscale charts. Unconstrained measurements work perfectly well for rectangular grid charts and must be used for charts that don’t have a regular rectangular grid (like the ISO-15739, CDM-28R, etc.). The Patch-Reader window will look like this.

Initial Patch-Reader window (4 rows, 5 columns)
  •  Press Start. A window opens with the following message for calibrating the spectrophotometer. Follow instructions and press  OK  .

REFLECTANCE CALIBRATION: Remove the AMBIENT DIFFUSER if installed. Place the i1Pro on its BASE (white tile). When ready, press the ‘Return’ or ‘Enter’ keys or close this message window.NOTE: This calibration may take several seconds!



  • After you finish the calibration, Read and Stop buttons appear on the lower-right of the Patch-Reader window.

  • Place the i1Pro on the first patch of the chart and click the button on the side. This is equivalent to pressing Read (which should never be necessary).

  • Now go through the patches one-by-one, by rows (for rectangular charts). For non-rectangular charts you’ll need to know the patch order, which is described below. For rectangular grid charts the Patch-Reader window will displays the location of the next patch to measure. Be sure to position the i1Pro carefully over the center of the patch and press it firmly against the target to minimize stray light. (Subdued room light doesn’t hurt.) (For a m row x n column chart, the order is Row 1-Col 1, Row 1-Col 2, … Row 1-Col m, Row 2-Col 1, etc.)

A little inconsistencyAlthough you enter patches by rows (R1C1, R1C2, …, R1Cn, R2C1, … R2Cn, …) at Patch-Reader’s prompting, the patches in CGATS files (created using Custom chart: m rows x n columns) are stored by columns: (R1C1,R2C1, …, RmC1, R1C2, …, RmC2, …). This is NOT consistent with CSV files, which are stored by patch order, i.e., rows (R1C1, R2C2, …R1Cn, R2C1, … R2Cn, … for rectangular charts). Imatest recognizes the file type (CSV or CGATS) and interprets the patch order correctly (using the LGOROWLENGTH setting in CGATS files).

  • You can use the mouse to select a patch to measure, i.e., you can go back and re-measure if you have any doubts about measurement quality.

  • When you have finished the Patch-Reader window will look like this. You should examine this image carefully to be sure it resembles the chart— all patches should look correct:  You can still select patches to re-measure if necessary.

  • Click Stop, and the a window appears with the following options.

Do youl want to Save these measurements?Click ‘Cancel’ to continue making measurements.


 Save     Discard     Cancel

  • When you click Save, the following window appears. For typical Imatest use, only the L*a*b* data field needs to be checked. ID (SAMPLE_ID; the numeric sequence) and Name (SAMPLE_NAME; The alpha column and numeric row, i.e., A1, …, A4, B1, …, F4) may be checked, but will be ignored by Imatest. XYZ and xyY may be checked, but will be ignored if L*a*b* is checked. (The order of precedence in reading data is L*a*b*, XYZ, then xyY.)

  • The save file name should include the media type (matte, luster, …) and any other information needed to identify the chart.

PatchTool writes files in CGATS format (an industry standard best explained in the PatchTool Help PDF document). Imatest can read CGATS files starting with August 2013 3.10 builds. Here is an example:

CGATS.17 ORIGINATOR    "BabelColor PatchTool, version 4.1.0 b321" LGOROWLENGTH    4 CREATED    "2013-07-01"  # Time: 1:25:46 PM INSTRUMENTATION    "i1Pro" INSTRUMENT_SN    "608994" MEASUREMENT_SOURCE    "Illumination=D50 ObserverAngle=2 WhiteBase=Abs Filter=UVcut" ILLUMINATION_NAME    "D50" OBSERVER_ANGLE    "2" FILTER    "UVcut" MEASUREMENT_CONDITION    "M2" WEIGHTING_FUNCTION    "ILLUMINANT, D50" WEIGHTING_FUNCTION    "OBSERVER, 2 degree" KEYWORD    "DEVCALSTD" DEVCALSTD    "XRGA" # # THIS FILE CONTAINS REFLECTANCE MEASUREMENTS MADE WITH PatchTool Patch-Reader # # Chart_type: "Custom chart" # No_rows: 4 # No_columns: 5 # No_samples: 20 # NUMBER_OF_FIELDS    3 BEGIN_DATA_FORMAT LAB_L    LAB_A    LAB_B END_DATA_FORMAT NUMBER_OF_SETS    20 BEGIN_DATA 44.050    -4.479    -15.534 46.989    3.638    -16.591 38.129    6.395    6.321 52.539    -0.730    -3.700 40.766    32.354    14.498 42.772    -19.174    -21.994 57.309    12.668    12.012 53.507    1.771    3.460 47.533    -25.359    16.443 44.629    32.242    -6.113 61.667    -18.258    37.479 37.817    2.403    -27.741 33.075    4.416    -29.699 75.079    4.192    62.638 63.637    15.573    46.478 45.767    28.423    10.312 41.007    -8.057    10.701 59.762    -28.214    -1.841 55.213    23.810    34.126 33.661    10.341    -10.492 END_DATA

SpectraShop 4

Download and purchase SpectraShop 4 using links at the bottom the product description page. Both Windows and Mac versions are available. The brief Tutorials are recommended. You should also download the full PDF manual and look at the FAQ, which has troubleshooting information. Open SpectraShop 4. Click on the Measure specimens box, which is the second from the left. (I’ve tried Create and edit charts and Measure chart without luck.)

This opens the Instrument Connection window, shown on the right. Select the spectrophotometer, click Connect, select the Specimen Type (reflective, transmissive, etc.). Be sure the spectrophotometer is on its base (with white tile), then press Calibrate.

Instrument Connection window, shown just before Calibration


After Calibration is complete, the Measure Reflective Specimens page will open. None of the settings are critical, but we recommend


  • Set Value: to 1. This is the number of the first patch. This corresponds to patch order better than the default 0.

  • Set Root: to a short description of the chart or patch.

  • Set Digits: to 2 (especially if you plan to measure over 10 patches). This will make the file sortable since the sequence will be 01, 02, …, 10, 11, …

When you have finished making settings, press Start. Place the spectrophotometer sensor over the patch. If possible the room should be dimly lit to minimize light leakage. Take each reading by clicking the spectrophotometer button— waiting about two seconds for a beep indicating that the reading is complete. Patch order is described below. Take readings carefully. I haven’t (yet) found a convenient way to edit or redo erroneous readings.

Saving the reference file

I recommend saving results in two formats: the default SpectraShop 4 ss3 format (not interchangeable, but can be reopened in Spectrashop 4), which contains all results (including the spectrum), and CGATS with just the results used by Imatest. To save the SS3 file, click (in the window shown below) File, Save… or Save as… The procedure for saving Imatest-readable CGATS files is shown below.


To save the measurements in an Imatest-readable CGATS file, click File, Export… The window on the right opens. Select CGATS 1.7 ASCII as the Export Format. Spectrum should be unchecked and L*a*b* should be checked. XYZ and xyY may be checked if desired, but they will be ignored by Imatest if L*a*b* has been checked.


Spectrashop 4 Export window
(for writing CGATS files)


Here are the results:


CGATS.17 ORIGINATOR    "" CREATED    "2013-08-28 16:43:55" INSTRUMENTATION    "i1Pro" MEASUREMENT_GEOMETRY    "45/0" MEASUREMENT_SOURCE    "A" WEIGHTING_FUNCTION    "OBSERVER,2 degree" WEIGHTING_FUNCTION    "ILLUMINANT,A" NUMBER_OF_FIELDS    4 BEGIN_DATA_FORMAT SAMPLE_ID    LAB_L    LAB_A    LAB_B     END_DATA_FORMAT NUMBER_OF_SETS    24 BEGIN_DATA "Colorchecker-01"    39.80    14.43    17.09     "Untitled-02"    67.86    22.51    20.21     "Untitled-03"    48.51    -9.36    -23.27     "Untitled-04"    43.04    -10.81    20.67     "Untitled-05"    54.88    5.55    -24.67     "Untitled-06"    68.04    -32.15    -6.00     "Untitled-07"    66.70    34.88    63.83     "Untitled-08"    38.48    -0.44    -45.06     "Untitled-09"    56.15    47.12    25.25     "Untitled-10"    31.91    17.66    -16.69     "Untitled-11"    71.40    -16.98    50.80     "Untitled-12"    74.84    21.00    71.57     "Untitled-13"    27.04    0.66    -49.03     "Untitled-14"    52.88    -32.25    23.97     "Untitled-15"    47.07    55.90    37.55     "Untitled-16"    83.99    9.76    78.29     "Untitled-17"    55.75    47.38    -5.30     "Untitled-18"    47.53    -31.32    -35.23     "Untitled-19"    95.01    0.32    4.03     "Untitled-20"    80.78    -0.72    0.38     "Untitled-21"    66.36    -0.71    0.28     "Untitled-22"    49.81    -1.43    -0.39     "Untitled-23"    36.00    -0.85    -0.45     "Untitled-24"    20.92    -0.34    -0.53     END_DATA

Patch order

Charts with a regular m x n rectangular grid have patches numbered in a sequence shown in the example below for the 4 row X 6 column X-Rite Colorchecker. Use this order in acquiring patch data.

























Several grayscale charts (ISO-15739, etc.) that don’t have regular m x n grids have their patch order listed in Special and ISO Charts. These charts are supported by Multicharts.

Patch order for charts supported by Multicharts can be displayed by running Multicharts, selecting 3. Split Colors: Reference/Input (in Display), then checking the Numbers checkbox. Here are the patch numbers for the DSC Labs CDM-28R.


There are a few special cases, such as the Rezchecker (a tiny precision reflective chart for measuring color, tones, and MTF). The numbering follows the standard rectangular grid, but corner patches and patches used for slanted-edge MTF have L* = a* = b* = 0 in their reference file, and are omitted from color analysis. For the Rezchecker these include patches 1, 6, 8-11, 14-17, 37, and 42.

Some cases are not obvious, like the eSFR ISO color patches, which are supported by Multicharts, but usually run in eSFR ISO.

eSFR ISO color patches

See Also