chartread
Author: Graeme Gill

## spectro/chartread

### Summary

Read a printer test chart using an instrument, to create a .ti3 data file. The type of instrument is determined by the communication port selected.
chartread can also be used to read transmission values, and to read display values manually.

### Usage

chartread [-options] outfile
-v Verbose mode
-c listno Set communication port from the following list (default 1)
-t Use transmission measurement mode
-d Use display measurement mode (white Y relative results)
-y X Display type - instrument specific list to choose from.
-e Use emissive measurement mode (absolute results)
-p Measure patch by patch rather than strip
-x [lx] Take manually entered values, either L*a*b* (-xl) or XYZ (-xx).
-n Don't save spectral information (default saves spectral)
-l Save CIE as D50 L*a*b* rather than XYZ
-L Save CIE as D50 L*a*b* as well as XYZ
-r Resume reading partly read chart
-I file.cal Override calibration info from .ti2 in resulting .ti3
-F filter Set filter configuration:
n None (M0)
5 D50 (M1)
6 D65
u U.V. Cut (M2)
p Polarising filter (M3)
-A N|A|X|G XRGA conversion (default N)
-N Disable initial calibration of instrument unless essential
-B Disable auto bi-directional strip recognition
-b Force enable auto bi-directional strip recognition
-H Use high resolution spectrum mode (if available)
-X file.ccmx Apply Colorimeter Correction Matrix
-X file.ccss Use Colorimeter Calibration Spectral Samples for calibration
-Q observ Choose CIE Observer for spectral data or CCSS instrument:
1931_2 (def.), 1964_10, `2012_2, 2012_10,` S&B 1955_2, shaw, J&V 1978_2 or file.cmf
-T ratio Modify strip patch consistency tolerance by ratio (if available)
-S Suppress wrong strip & unexpected value warnings
-W n|h|x Override serial port flow control: n = none, h = HW, x = Xon/Xoff
-D [level] Print debug diagnostics to stderr
inoutfile Base name for input[.ti2]/output[.ti3] file

### Usage Details

The -v flag causes extra information to be printed out during chartread operation.
Normally instruments are connected via a serial communication port, and the port used should be selected by supplying the correct parameter to the -c flag. If you invoke chartread so as to display the usage information (i.e. "chartread -?" or "chartread --"), then the discovered serial ports will be listed on Windows and Mac OSX systems.
If using an Xrite DTP41T, and printing onto transparent or back lit media, use the -t flag to operate the instrument in transparency mode. If using a Spectrolino or Eye-One Pro (handheld), this triggers a fake transparency mode, that uses a separate backlight (such as a light box). The instrument will be used to calibrate the level of backlight, and use this to compute the transparency of the test chart samples. Note that for good transparency values, the backlight level needs to be neither too bright not too dark, should ideally be incandescent rather than fluorescent (since fluorescent lights often have big dips in their spectrum), and ideally should be of uniform brightness over the measurement area. If using the SpectroScanT, the -t flag operates the instrument in transparency mode, each reading being manually triggered.
The -d flag allows measuring in display mode using instruments that support this mode, with the brightness normalized to the white patch value in the test chart. While the brightness values are then relative to the white, the readings are otherwise absolute. This corresponds to the raw ICC absolute readings created by dispread, and is the mode that should be used for creating a normal display ICC profile using manual, spot by spot readings. This can be useful if the display cannot be driven directly by the computer, but can be made manually to display the test charts.
The -y flag allows setting the Display Type. The selection typically determines two aspects of of the instrument operation: 1) It may set the measuring mode to suite refresh or non-refresh displays. Typically only LCD (Liquid Crystal) displays have a non-refresh nature. 2) It may select an instrument calibration matrix suitable for a particular display type. The selections available depends on the type and model of instrument, and a list of the options for the discovered instruments will be shown in the usage information. For more details on what particular instruments support and how this works, see Operation of particular instruments. 3) Any installed CCSS files (if applicable), or CCMX files. These files are typically created using ccxxmake, and installed using oeminst. The default and Base Calibration types will be indicated in the usage.
If using an instrument that supports an emissive measurement mode (such as the Spectrolino), then the -e flag enables this measurement mode, and the values recorded will be absolute XYZ values. This can be used for media such as backlit film, measuring it on a lightbox, so as to capture the actual illumination characteristics of that particular media. An adaptive integration time will be used in devices that support it.
The -p flag causes chartread to use a spot read mode for an instrument, even if it is capable of faster chart reading modes such as strip reading. This can be useful if strip measurement patch recognition is not reliable for certain media.
The -x flag causes chartread to expect values to be manually entered for each reading, rather than using an instrument to do the measurements. This mode is ideal if your instrument is not supported by Argyll. Either XYZ or L*a*b* values can be entered, depending on what option follows -l, -lx to specify XYZ values, or -ll to specify L*a*b* values. XYZ values are expected to be scaled to a maximum of 100. It is possible to navigate about the test values being measured, so as to do them in any order, as well as re-do values, in case of any mistakes.
-n By default spectral information as well as D50 standard observer XYZ values will be recorded for each test patch, when such readings are available from a device. The spectral readings allow for choosing a non-standard viewing illuminant, a non-standard observer model, or the use of the Fluorescent Paper Whitener Additive compensation when creating the profile. If the spectral readings are not needed, then prinread operation can be speeded up by specifying the -n flag.
-l By default D50 standard observer XYZ values will be recorded for each test patch, but if the -l flag is used, D50 L*a*b* values will be recorded instead.
-L By default D50 standard observer XYZ values will be recorded for each test patch, but if the -L flag is used, XYZ and D50 L*a*b* values will be recorded.
-r By default chartread reads the chart from scratch each time. When reading a chart using a strip instrument or patch by patch you can choose to finish chartread without reading all the patches, and whatever patches have been read will be saved to the output .ti3 file. You can then resume reading the patches by using the -r flag, in which case chartread will read the .ti3 file and set the patches to those previously read values, allowing any unread patches to then be read, or to re-read previously read patches.
-I file.cal Normally per channel calibration curves are added to the .ti2 file using the printtarg -K or -I options, so that they will be passed on to the .ti3 file by chartread, so that colprof is able to correctly compute total ink limits. Where the calibration is being applied in a workflow with native calibration capability though, it is sometimes convenient to re-use a profile chart with different calibration curves without going through the process of using printtarg to re-create it. This would mean though, that the calibration information and subsequent ink limit calculations wouldn't be accurate. To overcome this and allow such a scenario, the chartread -I parameter allows overriding the .ti2 calibration curves placed in the resulting .ti3 file with the actual calibration that was used for that particular print.
The -F options allows configuring the instrument to have a particular filter fitted to it. Some instruments (i.e. the Gretag Spectrolino) allow the fitting of various filters, such as a polarizing filter, D65 illuminant simulation, or Ultra Violet Cut filter, or others (i.e. the X-Rite i1pro3) have measurement emulation modes, and this option allows the instrument to be configured appropriately.
The -A options allows overriding the default or environment variable set XRGA conversion:
-A N|A|X|G
The N argument sets the calibration to Native (default).
The A argument sets the calibration to XRGA.
The X argument sets the calibration to XRDI.
The G argument sets the calibration to GMDI.
-N Any instrument that requires regular calibration will ask for calibration on initial start-up. Sometimes this can be awkward if the instrument is being mounted in some sort of measuring jig, or annoying if several sets of readings are being taken in quick succession. The -N suppresses this initial calibration if a valid and not timed out previous calibration is recorded in the instrument or on the host computer. It is advisable to only use this option on the second and subsequent measurements in a single session.
-B Some strip instruments (i.e.. Eye-One Pro, Color Munki) when used with Argyll will automatically recognize a strip when read in the reverse direction by matching the patch readings against their expected values. If the expected values are not known accurately enough, this may cause erroneous reverse recognition, so the -B flag allows this to be turned off, forcing strips to only be read in the forward direction. (Note that the DTP20 always allows bi-directional strip reading.) If the randomized patch layout has not been used, then bi-directional strip recognition will automatically turned off, and a warning issued if the -B flag is not used.
-b By default chartread will disable bi-directional strip reading if a randomized layout hasn't been used. The -b flag forces bi-directional strip reading on even for charts that don't use a randomized layout. If the chart strips have a distinct patch order, then this will be reliable, but for other patch layouts, the direction may be guessed wrongly, so this option should be used with care.
The -H option turns on high resolution spectral mode, if the instrument supports it. See Operation of particular instruments for more details.
The -X file.ccmx option reads a Colorimeter Correction Matrix from the given file, and applies it to the colorimeter instruments readings. This can improve a colorimeters accuracy for a particular type of display. A list of contributed ccmx files is here.
The -X file.ccss option reads a Colorimeter Calibration Spectral Sample from the given file, and uses it to set the colorimeter instruments calibration. This will only work with colorimeters that rely on sensor spectral sensitivity calibration information (ie. the X-Rite i1d3, or the DataColor Spyder4 & Spyder 5).This can improve a colorimeters accuracy for a particular type of display. A list of contributed ccss files is here.
The -T ratio argument modifies the patch consistency tolerance threshold for some strip reading instruments (ie. the Eye-One Pro). In recognizing patches in a strip, an instrument may take multiple readings as the strip is read, and then divide the readings up into each patch. It may then check the consistency of the multiple readings corresponding to each patch, and reject the measurement if they are too inconsistent. For some media (ie. a coarser screens, fabric etc.) the default tolerance may be unreasonably tight, so the -T ratio argument can be used to modify this criteria. To loosen the tolerance, use a number greater than 1.0 (ie. 1.5, 2.0).
The -Q flag allows specifying a tristimulus observer for a colorimeter when using CCSS instrument calibration capability. The following choices are available:
1931_2 selects the standard CIE 1931 2 degree observer. The default.
1964_10 selects the standard CIE 1964 10 degree observer.
2012_2 selects the proposed CIE 2012 2 degree observer.
2012_10 selects the proposed CIE 2012 10 degree observer.
1955_2 selects the Stiles and Birch 1955 2 degree observer
1978_2 selects the Judd and Voss 1978 2 degree observer
shaw selects the Shaw and Fairchild 1997 2 degree observer
file.cmf selects an observer specified by the given .cmf file.
The -S flag causes the normal "wrong strip" and "unexpected value" warnings to be suppressed. There may be a lot of these warnings if the expected patch value in the .ti2 file is in fact far from the values actually being measured. It is probably advisable to also use the -B flag if warnings are turned off, since many warnings indicate that the expected values are not to be relied on. With warnings suppressed, greater care must be taken to read the correct strip. If the randomized patch layout has not been used, then "wrong strip" warnings will automatically be suppressed, and bi-directional strip recognition turned off.
The -W n|h|x parameter overrides the default serial communications flow control setting. The value n turns all flow control off, h sets hardware handshaking, and x sets Xon/Xoff handshaking. This commend may be useful in workaround serial communications issues with some systems and cables.
The -D flag causes communications and other instrument diagnostics to be printed to stdout. A level can be set between 1 .. 9, that may give progressively more verbose information, depending on the instrument. This can be useful in tracking down why an instrument can't connect.
The inoutfile parameters should be the base name of the .ti2 file, and chartread will output an .ti3 that has the same basename and the .ti3 extension. If the incoming .ti2 file contains per-channel calibration curves, these will be passed through to the .ti3 so that accurate ink limits can be computed during profiling.

### Discussion

For information about the operation of different instruments, see Operation of particular instruments.