The file syntax of IDF-files (iMOD Data Files) is based on a file structure without any line feeds. This means that all data is written direct after each other. It is not written on a different line, but in a different record. An advantage of such a file structure is the possibility to access data randomly throughout the file (known as direct-access). The fileformat is unformatted and can therefore not be read in a normal TextEditor. It is based on the little-endian data format, as we read the file with records of 4 bytes (or 1 word). Since iMOD 5.0, the IDF file can be written in double-precision as well. In that case, the format of the real values are double precision (float 8) instead of single precision (float 4).
Cond. |
Record |
Format (bytes) |
Variable |
Description |
1 |
Integer 4 |
1271 |
Lahey Record Length Identification; 1271 is a single precision IDF, 2295 a double precision. |
|
2 |
Integer 4 |
NCOL |
Number of columns |
|
3 |
Integer 4 |
NROW |
Number of rows |
|
4 |
Float 4/8 |
XMIN |
X lower-left-coordinate |
|
5 |
Float 4/8 |
XMAX |
X upper-right-coordinate |
|
6 |
Float 4/8 |
YMIN |
Y lower-left-coordinate |
|
7 |
Float 4/8 |
YMAX |
Y upper-right-coordinate |
|
8 |
Float 4/8 |
DMIN |
Minimal data value |
|
9 |
Float 4/8 |
DMAX |
Maximal data value |
|
10 |
Float 4/8 |
NODATA |
NoData value |
|
11 |
Integer 1 |
IEQ |
0: equidistant IDF |
|
Integer 1 |
ITB |
0: no usage of TOP and BOT Values |
||
Integer 1 |
— |
Not used |
||
Integer 1 |
— |
Not used |
||
IEQ=0 |
12 |
Float 4/8 |
DX |
Column width. |
13 |
Float 4/8 |
DY |
Row height. |
|
ITB=1 |
12+ABS(IEQ-1)*2 |
Float 4/8 |
TOP |
Top value if ITB=1 |
13+ABS(IEQ-1)*2 |
Float 4/8 |
BOT |
Bot value if ITB=1 |
|
IEQ=1 |
12+ITB*2 |
Float 4/8 |
DX(NCOL) |
Column width for each column, ranging from west to east |
13+ITB*2+NCOL |
Float 4/8 |
DY(NROW) |
Row height for each row, ranging from north to south |
|
IREC=10 + ABS(IEQ-1)*2 + IEQ*(NROW+NCOL) + ITB*2 + 1 |
||||
IREC |
Float 4/8 |
X(:,:) |
Value for each cell |
|
IREC |
Integer 1 |
IADIT |
Binary number to store optional arguments: |
|
IP1=1 |
IREC |
Integer 1 |
NLINE |
Number of lines that contain comments |
Char. 4 |
COMM(NLINE) |
Comment for NLINE |
||
Voxel representation
The Variables ITB, TOP and BOT are available in order to display an IDF as a Voxel. The word voxel is a contraction of the words VOlume and piXEL. A voxel represents a value on a regular grid in three-dimensional space. IDF-files can represent “voxels” when they have top- and bottom information stored internally. If those IDF-files are used, the internal IDF value per cell (e.g. permeability) will be coloured (using the associated legend) between the stored top and bottom elevation inside the IDF (see example in section 6.3).