Specification for CGATS files?


I’m writing an app that will let me “translate” from one target to another, essentially allowing me to re-position patches but generate a CGATS file that “looks” like a different one…

Source: patches in a different order than the sample
Sample: patches in a reccognized order, like a normal P2P.
Destination: the data from the source patches in the order of the sample.

This re-ordering is not difficult, and the manipulation of the data itself is trivial but what I’m finding is that a sample of several CGATS (.txt) files from different measurement devices (i1iO, iSiS, etc…) build the files slightly differently.

What I want to know is if there’s a specification for what information is required in the file, how the file itself is structured, in what order the keywords come in, etc…

For instance, the data format is a tab-delimited list of fields on a single line that define what values belong to what fields. It is preceded by “BEGIN_DATA_FORMAT” and is followed by “END_DATA_FORMAT” so that’s pretty clear. What I don’t know is; can there be multiple definitions? Can there be multiple data sets between the “BEGIN_DATA” and “END_DATA”? Most files have two KEYWORD fields defined, SampleID and SAMPLE_NAME; are these always present? are there other valid keywords?

So I guess I’m looking for a document specification similar to the ICC.1:2010 document that describes profiles, but for these CGATS files instead.

Does such a thing exist?


Hi Brian,

It sounds like you’re wanting the ANSI CGATS.17-2009.


That’s the spec. for how to exchange color information in a text file like that whichMeasureTool puts out.

In practice many software programs are used to their own special “flavor” of which terms they create and accept. Our programs, like ColorThink and Curve2, try to be open to whatever flavor of CGATS file you throw at them. Besides getting the actual spec, the second best thing is to do is get a sample of the file the software wants to see. We can certainly supply you with those.

Excellent! Thanks, Patrick.