Especially in experimental setups a simple text based data format for importing data from an instrument to Epina ImageLab is useful, as text files are easy to handle and can be debugged using a simple text editor. Thus Epina ImageLab supports such a simple import format (called IGTIF - Epina ImageLab General Text Import Format). IGTIF is based on keywords which start with a hash (#) character and which have to be located at the beginning of a line. The keywords are followed by the corresponding data values. Some of the keywords (i.e. #description, #spectra, #properties, #xcoords, #ycoords, #tcoords) may consist of multiple data lines.
The keywords can be stored in any order except for the #filetype keyword, which must always be the first one, and the #spectra keyword which must be the last keyword. The following list defines all available keywords, the keywords printed in red are required. Omitting any of the required keywords stops the import process and results in an error message.
||The name of the author(s): a single line with a maximum length of 255 characters
||The description of the dataset: a multiline description of the data, simple HTML formatting is supported. The following HTML tags are supported: <b>, <i>, <ul>, <li>. Other HTML tags may work but are not explicitly supported. The description is displayed in the Data Description window.
||Defines the type of the data file. This keyword is used to recognize the Epina ImageLab simple text data format. It always has to be stored in the first line of the file and has to be set to "igtif"
||The number of layers (equals the number of intensity values of a spectrum)
||The number of pixels in horizontal direction
||The number of pixels in vertical direction
||The number of time slots
||An arbitrary sample ID, maximum length of 63 characters.
||The spectral data per pixel. This keyword has to be followed by npixx*npixy*ntslots lines. Each line has to specify the position of a particular pixel (x/y/t) and its spectrum. The first three numbers are integers (= pixel coordinates of the data cube), the rest can be either integer or floating point numbers. Please note that the first data line after this keyword must specify the pixel having the lowest pixel coordinates numbers (x/y/t), all other spectral data can be stored in any order.
||The type of spectral data defined in the field "#spectra". The following spectral data are supported:
The following layer types are declared:
Undefined .... undefined/unknown type
IRspec ....... IR spectrum
MSPos ........ MS positive spectrum (lines)
MSPosRaw ..... MS positive spectrum (continuous)
MSNeg ........ MS negative spectrum (lines)
MSNegRaw ..... MS negative spectrum (continuous)
MSsim ........ MS single ion monitoring (lines)
Raman ........ Raman spectrum
UvVis ........ UV/VIS/NIR spectrum
Color ........ individual color
RGBcolors .... red green and blue from a color image (always three layers!)
BwImg ........ black and white image (gray scale 0..255 per pixel)
PixMask ...... pixel mask (deprecated!! masks are managed in an extra structure from version 1.0 upwards)
PhysProp ..... physical properties
THzSpec ...... THz spectrum
Impulse ...... impulse over time
OESRaw ....... optical emission spectroscopy (single lines)
OESsl ........ optical emission spectroscopy (single lines)
EDX .......... energy dispersive xray
SIMS ......... SIMS lines
AFMdata ...... AFM layers
IRdiscrete ... discrete infrared lines
ClassMap ..... classification results
ChemMap ...... chemical map
SpecDesc ..... spectral descriptor
PhaseSpec .... phase spectrum
MagSpec ...... magnitude spectrum
PowerSpec .... power spectrum
LibsRaw ...... LIBS raw data (continuous spectrum)
Libssl ....... LIBS single line data
||The list of real-world time coordinates. The real-world coordinates have to be separated by one or more spaces or by CRLF. The number of specified coordinates has to be equal to the number of datacubes along the time axis (keyword #ntslots). If omitted the index of the time coordinate system equals the indices of the 3D datacubes.
||The list of unit identifiers separated by semicolons. The first unit identifier corresponds to the x coordinates, the second to the y coordinates, the third to the layer index (properties) and the fourth to the time slots.
||The list of properties/wavelengths/wavenumbers/masses etc. The property values have to be separated by one or more spaces or by CRLF. The number of specified properties has to be equal to the number of layers (keyword #nlayers). Please note that there is a synonym of the #properties keyword which can be used alternatively: #wavelengths.
||The list of real-world x coordinates. The real-world coordinates have to be separated by one or more spaces or by CRLF. The number of specified coordinates has to be equal to the number of pixels in horizontal direction (keyword #npixx).
||The list of real-world x coordinates. The real-world coordinates have to be separated by one or more spaces or by CRLF. The number of specified coordinates has to be equal to the number of pixels in vertical direction (keyword #npixy).
The following example shows the dataset for an image of 20 by 15 pixels and 120 layers. Some of the data values has been replaced by ellipses for brevity:
#author Doe Smith
#description The text of this keyword is a description of the data. It
can contain multiple lines and <b>simple</b> HTML formatting. The
description ends with the next valid keyword.
#properties 300.0 310.0 320.0 330.0 ... 780.0 790.0 800.0
#xcoords 0 10 20 30 ... 180 190
#ycoords 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70
1 1 1 3.184E-02 3.276E-02 ... 4.982E-02
1 2 1 3.534E-02 3.356E-02 ... 5.002E-02
1 3 1 3.652E-02 3.699E-02 ... 5.166E-02
1 4 1 3.709E-02 3.871E-02 ... 4.991E-02
20 12 1 4.414E-02 4.544E-02 ... 5.100E-02
20 13 1 4.373E-02 4.363E-02 ... 5.437E-02
20 14 1 4.697E-02 4.774E-02 ... 5.388E-02
20 15 1 4.557E-02 5.182E-02 ... 5.673E-02