spectro/spec2cie
    Summary
    Convert spectral .ti3 or .sp readings into CIE XYZ and D50
    L*a*b* readings. Apply FWA, plot spectrums. Convert to/from XRGA
    standard.
    This is assumed to be for a reflective media by default - i.e. that
    the input .ti3 or .sp file values are spectral reflectances, unless
    the input is marked as DEVICE_CLASS 
    EMISINPUT (See the description of the .ti3 format. This
    would have to be done manually, as no ArgyllCMS tools generate such
    data.)
    Usage
    spec2cie [options] input.[ti3|sp]
          output.[ti3|sp]
           -v
                              
        Verbose mode
         -A NN|AX|AG|XA|XG|GA|GX   XRGA
        conversion (default NN)
        -I illum  
                        
          Override actual instrument illuminant in .ti3 or .sp file:
                    
                       
             A, C, D50, D50M2, D65, F5, F8, F10 or file.sp
                            
                   (only used in conjunction
          with -f)
         -f [illum]
                        
          Use Fluorescent Whitening Agent compensation [simulated inst.
          illum.:
                            
                  M0, M1, M2, A, C, D50 (def.),
          D50M2, D65, F5, F8, F10 or file.sp]
         -i
              illum  
                          
            Choose illuminant for computation of CIE XYZ from spectral
            data & FWA:
                      
                         
              A, C, D50 (def.), D50M2, D65, F5, F8, F10 or file.sp
             -o observ 
                    
          Choose CIE Observer for spectral data:
                   
 
    
                 1931_2 
        (def.), 1964_10, 2012_2,
            2012_10, S&B 1955_2, shaw, J&V 1978_2
        or file.cmf
         -n                       
Don't
output
        spectral values
       -p
                              
        Plot each values spectrum
      input.[ti3|sp]
                  
        Measurement file
         output.[ti3|sp]
                  Converted
        measurement file
    Comments
    This program takes the (usually reflective) spectral data in a .ti3
    or .sp file, converts them to XYZ and D50 L*a*b* and fills the
    XYZ_[XYZ] and LAB_[LAB] columns in the output .ti3 or .sp file. If
    the columns XYZ_[XYZ] and/or LAB_[LAB] are missing in the input
    file, they are added to the output file.
    
    If FWA correction is applied, then the spectra saved will be FWA
    corrected, as well as the XYZ and D50 L*a*b* values.
    
    All other columns are copied from the input to the output .ti3 or
    .sp file.
    
    Setting an actual instrument/simulated instrument/CIE illuminant
    only has an effect for reflective/transmissive spectra. Emissive
    spectra don't have an illuminant, and will simply be converted to
    XYZ using the given observer. 
    
    The -A parameter allows specifying a
    conversion between the XRGA measurement
    standards:
    
            The NN argument
    disabled any conversion.
            The AX argument
    converts from XRGA to XRDI
            The AG argument
    converts from XRGA to GMDI
            The XA argument
    converts from XRDI to XRGA
            The XG argument
    converts from XRDI to GMDI
            The GA argument
    converts from GMDI to XRGA
            The GX argument
    converts from GMDI to XRDI
    
    A warning will be issued if the "from" setting doesn't match that
    contained in the .ti3 file.
    
    (XRGA = Modern X-Rite, XRDI = Historical X-Rite, GMD = Historical
    GretagMacbeth).
    
    The -I parameter allows specifying a an
    illumination spectrum for the actual instrument illuminant,
    overriding that computed from the type of instrument (recorded in
    the .ti3 file). This is rarely used. This parameter can only be used
    in combination with the -f
    flag. If a filename is specified instead, it will be assumed to be
    an Argyll specific .sp custom
    spectrum file. Illuminant details are:
    
            A   CIE
    tungsten filament lamp 2848K
            D50 CIE daylight 5000K
            D65 CIE daylight 6500K
            F5  CIE Fluorescent
    6350K, CRI 72
            F8  CIE Fluorescent
    5000K, CRI 95
            F10 CIE Fluorescent
    5000K, CRI 81
    
    
     The -f flag enables Fluorescent Whitening
    Agent (FWA) compensation. This only works if spectral data is
    available and, the instrument is not UV filtered.  FWA
    compensation adjusts the spectral samples so that they appear to
    have been measured using an illuminant that has a different level of
    Ultra Violet to the one the instrument actually used in the
    measurement. The optional illumination parameter allows specifying a
    standard or custom illumination spectrum to be used as the similated
    instrument illuminant, overriding the default D50 or CIE
    computation illuminant used for FWA (see -i below). See
    colprof -f for a fuller explanation. 
    
    The -i parameter allows specifying a
    standard or custom illumination spectrum, applied to spectral .ti3
    pr .sp data to compute PCS (Profile Connection Space) tristimulus
    values. A, D50, D65, F5, F8,
    F10 are a selection of standard illuminant spectrums, with D50
    being the default. If a filename is specified instead, it will be
    assumed to be an Argyll specific .sp
    custom spectrum file. This only works if spectral data is available.
    Illuminant details are:
    
            A   CIE
    tungsten filament lamp 2848K
            D50 CIE daylight 5000K
            D65 CIE daylight 6500K
            F5  CIE Fluorescent
    6350K, CRI 72
            F8  CIE Fluorescent
    5000K, CRI 95
            F10 CIE Fluorescent
    5000K, CRI 81
    
    Custom illuminants are most often used when a  viewing booth or
    other known viewing conditions is going to be used to view results.
    Other illuminant reference files could be created using a suitable
    measuring instrument such as a spectrolino, or an eyeone using spotread, although such instruments do
    not themselves provide the necessary response down to Ultra Violet
    that is needed for accurate operation of Fluorescent Whitening Agent
    compensation. The best way of measuring a custom illuminant is to
    use illumread, since it uses a special
    method to estimate the illuminant UV in a way that complements FWA
    compensation. (See the discussion above for the -f flag).
    
    Note that if an illuminant other than D50 is chosen, the resulting
    ICC profile will not be standard, and may not work perfectly with
    other profiles that that use  the standard ICC D50 illuminant,
    particularly if the absolute rendering intent is used. Profiles
    should generally be linked with other profiles that have the same
    illuminant and observer.
    
    If a non D50 illuminant is used, then an extra set of L*a*b* output
    fields will be created in the resulting CGATS file, containing
    values relative to the illuminant white point. These will be
    labelled XXXLAB_L etc, where XXX is the name of the illuminant.
    These are informational only, and are not used by any ArgyllCMS
    tools.
    
     The -o flag allows specifying a tristimulus
    observer, and is used to compute PCS (Profile Connection Space)
    tristimulus values. 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.
    
    Note that if an observer other than 1931 2 degree is chosen, the
    resulting ICC profile will not be standard, and cannot be freely
    interchanged with other profiles that that us the standard 1931 2
    degree observer. Profiles should only be linked with other profiles
    that have the same illuminant and observer.
    
    
    The -n flag
    disables the output of the spectral values. If just the XYZ and D50
    L*a*b* values are needed, this makes for a smaller, easier to read
    file.
    
    The -p flag
    causes each spectrum to be plotted. If FWA compensation is used,
    then the before/after compensation spectruma will be shown.