Handling Measurement Data
Measurements from Nix devices are provided as objects conforming to the IMeasurementData
interface. These contain all data and metadata to completely describe the measurement. Color, spectral, and density data are obtained from the IMeasurementData
instance as IColorData
, ISpectralData
, and IDensityData
respectively. The differences between these object types are listed below.
IMeasurementData
- Corresponds to a single measurement in a single
ScanMode
from a Nix device - Provides color data as
IColorData
- To get color data, call
toColorData()
- All devices provide data for D50/2° reference white
- Some devices provide additional color data for other reference white values
- To check if available, call
providesColor()
- To get color data, call
- May provide spectral data as
ISpectralData
, depending on the device type and license capabilities- To check if available, use
getProvidesSpectral()
- To get spectral data, use
getSpectralData()
- To check if available, use
- May provide density data as
IDensityData
, depending on the device type and license capabilities- To check if available, use
getProvidesDensity()
- To get density data, use
toDensityData()
- To check if available, use
- The measurement data contains all data and metadata to completely describe the measurement
- For maximum fidelity and ease of use when saving data, save the string data from
getRaw()
. - The raw string value can be used to reconstruct measurement data using
fromRaw()
.
- For maximum fidelity and ease of use when saving data, save the string data from
- Refer to the
IMeasurementData
API documentation for full details (Kotlin or Java)
Supported IColorData
output based on device type
Reference | Mini | Mini 2 | Mini 3 | Pro | Pro 2 | QC | Spectro 2 | Spectro L |
---|---|---|---|---|---|---|---|---|
A/2° | ☐ | ☐ | ☑ | ☐ | ☐ | ☐ | ☑ | ☑ |
A/10° | ☐ | ☐ | ☑ | ☐ | ☐ | ☐ | ☑ | ☑ |
C/2° | ☐ | ☐ | ☑ | ☐ | ☐ | ☐ | ☑ | ☑ |
C/10° | ☐ | ☐ | ☑ | ☐ | ☐ | ☐ | ☑ | ☑ |
D50/2° | ☑ | ☑ | ☑ | ☑ | ☑ | ☑ | ☑ | ☑ |
D50/10° | ☐ | ☐ | ☑ | ☐ | ☐ | ☐ | ☑ | ☑ |
D55/2° | ☐ | ☐ | ☑ | ☐ | ☐ | ☐ | ☑ | ☑ |
D55/10° | ☐ | ☐ | ☑ | ☐ | ☐ | ☐ | ☑ | ☑ |
D65/2° | ☐ | ☐ | ☑ | ☐ | ☐ | ☐ | ☑ | ☑ |
D65/10° | ☐ | ☑ | ☑ | ☐ | ☑ | ☑ | ☑ | ☑ |
D75/2° | ☐ | ☐ | ☑ | ☐ | ☐ | ☐ | ☑ | ☑ |
D75/10° | ☐ | ☐ | ☑ | ☐ | ☐ | ☐ | ☑ | ☑ |
F2/2° | ☐ | ☐ | ☑ | ☐ | ☐ | ☐ | ☑ | ☑ |
F2/10° | ☐ | ☐ | ☑ | ☐ | ☐ | ☐ | ☑ | ☑ |
F7/2° | ☐ | ☐ | ☑ | ☐ | ☐ | ☐ | ☑ | ☑ |
F7/10° | ☐ | ☐ | ☑ | ☐ | ☐ | ☐ | ☑ | ☑ |
F11/2° | ☐ | ☐ | ☑ | ☐ | ☐ | ☐ | ☑ | ☑ |
F11/10° | ☐ | ☐ | ☑ | ☐ | ☐ | ☐ | ☑ | ☑ |
Supported ISpectralData
and IDensityData
output based on device type
Device Type | Supports spectral output | Supports density output |
---|---|---|
Mini | ☐ | ☐ |
Mini 2 | ☐ | ☐ |
Mini 3 | ☐ | ☐ |
Pro | ☐ | ☐ |
Pro 2 | ☐ | ☐ |
QC | ☐ | ☐ |
Spectro 2 | ☑ | ☑ |
Spectro L | ☑ | ☑ |
Warning
The table above indicates whether or not the hardware device is capable of providing these data types. However, these values will only be available if enabled by the active license. See Other license properties for more details.
Tip
The IMeasurementData
flags providesSpectral
and providesDensity
take into account both the device and license capabilities and can be used to determine if these data are currently available.
IColorData
- Consists of colorimetry data for a single reference white point (e.g. - D50/2°) and single measurement mode (e.g. - M2)
- Can be obtained directly from an
IMeasurementData
object, from or anISpectralData
object - Full description of a color consisting of:
- Type / color system:
getType()
asColorType
enum - Value:
getValue()
as double array (3 channels)- Format matches the system defined by
getType()
- Format matches the system defined by
- Reference white point:
getReference()
asReferenceWhite
enum - Scan mode:
getMode()
asScanMode
enum
- Type / color system:
- Regardless of
getType()
, the color is always backed internally by a CIEXYZ value - Color can be converted between any of the types specified in the
ColorType
enum by callingconvertTo()
- Delta E to another
IColorData
instance can be evaluated usingcompareTo()
. - sRGB value can be fetched using
getRgbValue()
- Refer to the
IColorData
API documentation for full details (Kotlin or Java)
ISpectralData
- Consists of spectral data for a single measurement mode
- Obtained from an
IMeasurementData
object that supports spectral data - Full description of the spectral measurement consisting of:
- Scan mode:
getMode()
asScanMode
enum - Wavelength values:
getLambda()
as integer array - Spectral values:
getValue()
as float array
- Scan mode:
- Can be used to obtain density data as
IDensityData
usingtoDensityData()
, if enabled by the current license - Can be used to obtain colorimetry data as
IColorData
object for any reference white usingtoColorData()
- sRGB value can be fetched for any reference white using
toRgbValue()
- Refer to the
ISpectralData
API documentation for full details (Kotlin or Java)
IDensityData
- Consists of density data for a single measurement mode and single 'ISO status' / lookup table
- Obtained from an
IMeasurementData
object that supports spectral data, or anISpectralData
object - Description of the density values for a specific 'ISO Status' consisting of:
- Scan mode:
getMode()
asScanMode
- ISO status:
getStatus()
asDensityStatus
enum - Density values:
getValue()
as double array (4 channels)- Index 0: C
- Index 1: M
- Index 2: Y
- Index 3: K
- Automatic density index:
getAutoIndex()
as integer value
- Scan mode:
- Refer to the
IDensityData
API documentation for full details (Kotlin or Java)
Tip
The ColorUtils
class provides many helpful functions for manual colour conversions and delta E calculations. Further details are provided in the API reference (Kotlin and Java).
Next steps
- Review the example app
- Get additional support