# ISG CSV format

## Description

The simplest and most flexible file format is a tabular ISG CSV format.

In terms of its structure it is very similar to an Excel spreadsheet.

- The columns are named in the header. The header can contain both argument and parameter names.
- The actual records are specified in the rows below.
- Row comments start by a double slash "//".
- A "file break" can be created with a hash "#". After this break, a new header and the associated records can be specified.

## Programing Example

Machine position errors

// The header only contains position errors.

Y0A Z0A X0B …

// Position errors are typically (but not necessarily)

// constant. Therefore, one data row is usually sufficient here.

0.1 0.2 0.11 …

## Programing Example

Component errors of the X axis

// The header contains the argument "X" and component errors.

X EXX EYX EZX EAX EBX ECX

0.0 0.02 0.01 0.07 0.00 0.0042 0.003

10.0 0.00 -0.1 0.01 0.00 0.0011 0.002

…

// Further records depending on X

## Extended functional dependencies

Any functional dependencies can be implemented in the ISG CSV format. For example, it is conceivable that two data blocks for component errors in the X axis, one each for Z = 0 and one for Z = 100, must be specified due to sag effects on the machine. Parameters are interpolated as described in Section “File formats supported”.

Any higher-dimensional dependencies can be implemented with this method.

## Programing Example

Component errors of the X axis for Z = 0 and Z = 100

// The argument "Z" now crops up in the header.

Z X EXX EYX EZX EAX EBX ECX

// In the first block Z is always = 0.

0.0 0.0 0.02 0.01 0.07 0.00 0.0042 0.003

0.0 10.0 0.00 -0.1 0.01 0.00 0.0011 0.002

…

// In the second block Z is always = 100.

100.0 0.0 0.01 0.02 0.03 0.07 0.0040 0.003

100.0 10.0 0.03 -0.09 0.03 0.06 0.0015 0.000

…