IDE datafile format documentation

You may access the datafiles containing the SIMS images directly. They contain instrument conditions and various other parameters. Note that the Mosaic SIMS datasheets contain the same information except some flag bytes used for storage and organisational purposes. A sample C application that dumps the information on a screen and creates a series of files containing x,y,intensity triplets, can be accessed from each SIMS datasheet.

General Notes

Structure of an IDE datafile:

PPPPPPPPPPPHHIIIIIIIIIIHHIIIIIHHIIIIIIIIIIIIIIHHIIIIIIIIIIIIHHIIHHI....

P File Header (Acquisition Parameters)
H Image Header (Image Parameters)
I SIMS Image Data (moderately run-length encoded)

Bytewise

The File Header

+-------+-------+-------------------------------+---------+
| Bytes | Type  | Name                          | Comment |
+-------+-------+-------------------------------+---------+
| 2     | int   | iPrimaryIonsUsed              |         |
| 2     | int   | iPrimaryIonPolarity           |         |
| 2     | int   | iSecondaryIonPolarity         |         |
| 2     | int   | iPrimaryBeamCurrent           |         |
| 2     | int   | iAccelerationVoltage          | 1)      |
| 2     | int   | iPrimaryAccelVoltage          | 1)      |
| 2     | int   | iRasterSize                   | 1)      |
| 2     | int   | iTransferOpticsSetting        |         |
| 2     | int   | iEnergySlitSetting            |         |
| 2     | int   | iEnergySlitTranslation        |         |
| 4     | float | fEntranceSlitSetting          |         |
| 4     | float | fExitSlitSetting              |         |
| 2     | int   | iFieldAperture                |         |
| 2     | int   | iContrastAperture             | 1)      |
| 2     | int   | iRasterPotSetting             |         |
| 2     | int   | iXDimension                   |         |
| 2     | int   | iYDimension                   |         |
| 2     | int   | iNImages                      |         |
| 2     | int   | iDate                         | 2)      |
| 50    | char*)| szInstrument                  |         |
| 40    | char*)| szFeatureName                 |         |
| 4     | float | fXCoordinate                  |         |
| 4     | float | fXCoordinateError             |         |
| 4     | float | fYCoordinate                  |         |
| 4     | float | fYCoordinateError             |         |
| 1     | char  | cBay                          |         |
| 1     | N/A   | FILLBYTE                      |         |
| 2     | int   | iRow                          |         |
| 240   | char*)| szAnnotations                 |         |
| 2     | word  | wDetectorID                   |         |
| 2     | word  | wFeatureNum                   |         |
| 5     | char*)| szFeatureTypeCode             |         |
| 50    | char*)| szDetectorTypeDesc            |         |
| 50    | char*)| szFeatureTypeDesc             |         |
| 5     | char*)| szFeatureOriginCode           |         |
| 50    | char*)| szFeatureOriginDesc           |         |
| 15    | char*)| szJSCCode                     |         |
| 1     | N/A   | FILLBYTE                      |         |
| 2     | word  | wCentralCraterDiameterX       |         |
| 2     | word  | wCentralCraterDiameterY       |         |
| 2     | word  | wDisChargeDiameterX           |         |
| 2     | word  | wDisChargeDiameterY           |         |
| 2     | word  | wCentralCraterFusedX          |         |
| 2     | word  | wCentralCraterFusedY          |         |
| 2     | word  | wInnerSpall                   |         |
| 2     | word  | wOuterSpall                   |         |
| 2     | word  | wPhotoCode                    |         |
| 2     | word  | wAnalysesCode                 | 3)      |
| 4     | dword | dwMosaicXRefCode              | 3)      |
| 100   | char*)| szEDSFileName                 | 4)      |
| 100   | char*)| szAESFileName                 | 4)      |
| 100   | char*)| szPROFileName                 | 4)      |
| 100   | char*)| szBRGFileName                 | 4)      |
| 100   | char*)| szRATFileName                 | 4)      |
| 10    | char*)| szExperimentName              |         |
| 285   | N/A   | bReserved                     |         |
| 1     | N/A   | FILLBYTE                      |         |
+-------+-------+-------------------------------+---------+
*) zero-byte delimited C string
1) actually never used the value but used a constant
2) same format as DOS file time
3) internal use, may or may not contain valid data
4) dropped, contains usually not a useful value

The File Header

+-------+-------+-------------------------------+---------+
| Bytes | Type  | Name                          | Comment |
+-------+-------+-------------------------------+---------+
| 4     | float | fCpGain                       |         |
| 2     | int   | iNFrames                      |         |
| 2     | int   | iMass                         |         |
| 2     | int   | iImageNumber                  |         |
| 4     | dword | dwCompressedImageSize         | 1)      |
| 4     | dword | dwTotalCount                  |         |
| 2     | word  | wMaxCount                     |         |
| 2	| int	| iXShift			|	  |
| 2	| int	| iYShift			|	  |
| 20    | char*)| szElementName                 |         |
| 2     | int   | iElementID                    | 2)      |
| 2     | int   | fRSF                          |         |
| 2     | int   | iQualityElementClassification |         |
| 2     | int   | iUsedMass                     |         |
| 2     | int   | iOfNumMasses                  |         |
| 2     | int   | iObsolete3                    | 3)      |
| 2     | int   | iObsolete4                    | 3)      |
+-------+-------+-------------------------------+---------+
*) zero-byte delimited C string
1) multiply this value by 2 (pixel data size) for image
   size in bytes
2) internal use, may or may not contain valid data
3) dropped

The Image Data

The image data consists of 256x256 16-Bit pixel intensities. To save some space and time during data processing, a moderate file compression scheme was used. As large parts of the data contain black pixels, these values are not stored but instead, the number of consecutive black pixels. Pixel storage sequence is first row, left pixel then the pixel to its right, then the next row.

Example:

Image:
+----+----+----+----+----+
| 498|  92| 105|  21|  71|
+----+----+----+----+----+
|   1|   0|   0|   0|   2|
+----+----+----+----+----+
|   5|   0|   0|   0|   0|
+----+----+----+----+----+
|   0|   0|   0|   0|   0|
+----+----+----+----+----+
|   0|   8|   2|   0|   5|
+----+----+----+----+----+

Data File:
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
| 498|  92| 105|  21|  71|   1|   0|   3|   2|   5|   0|  10|   8|   2|   0|   1|   5|
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
A sequence of zero words is replaced by a single zero word (which now serves as an escape code) and the count of zero words (as in row 2 which is stored as 0 3, and rows 3 through 5, stored as 0 10).

Please direct any questions or problems to the author.



Klaus G. Paul, 6-8-1994