raw_eater

The raw_eater package is used to parse files with extension *.raw, which are usually binary files produced by the labsoftware Famos to dump measurement time series.

File Structure

The binary *.raw file features a series of markers that indicate the starting point of various blocks of information. Every markers is introduced by character "|" = 0x 7c followed by two uppercase letters, which characterize the type of marker. The following markers are defined:

  1. CF (0x 43 46)
  2. CK (0x 43 4b)
  3. NO (0x 4e 4f)
  4. CG (0x 43 47)
  5. CD (0x 43 44)
  6. NT (0x 4e 54)
  7. CC (0x 43 43)
  8. CP (0x 43 50)
  9. CR (0x 43 52)
  10. CN (0x 43 4e)
  11. Cb (0x 43 62)
  12. CS (0x 43 53)

Each of these markers are followed by multiple commata (0x 2c) separated parameters and are terminated by a semicolon ; = 0x 3b, except for the sequence following the data marker CS, that may have any number of 0x3b occurencies, while still terminated by a semicolon at the very end of the file (since CS is the last marker section in the file). The markers have the following meaning:

  • CF (mostly 4 parameters) this marker is mostly just |CF,2,1,1; and hence I've got no fucking idea what it actually means!
  • CK (mostly 4 parameters) same problem for this one: it always seems to be |CK,1,3,1,1; ...
  • NO (mostly 6 parameters) provides some info about the software package/device and its version that produced the file, e.g. something like |NO,1,85,0,77,imc STUDIO 5.0 R3 (10.09.2015)@imc DEVICES 2.8R7 (26.8.2015)@imcDev__15190567,0,;
  • CG (mostly 5 parameters) another one of these apparently useless markers, looks for instance like |CG,1,5,1,1,1;
  • CD (mostly 11 parameters) since we're dealing with measured entities from the lab this markers contains info about the measurement frequency, i.e. sample rate. For instance |CD,2, 63, 5.0000000000000001E-03,1,1,s,0,0,0, 0.0000000000000000E+00,1; indicates a measured entity every 0.005 seconds, i.e. a sample rate = 200Hz
  • NT (mostly 8 parameters) whatever ?!? for instance |NT,1,16,1,1,1980,0,0,0.0; maybe it's the datatype ??
  • CC (mostly 4 parameters) |CC,1,3,1,1;
  • CP (mostly 10 parameters) |CP,1,16,1,4,7,32,0,0,1,0;
  • CR (mostly 8 parameters) provides the physical unit of the measured entity, maybe shows the minimum and maximum value during the measurment, e.g. |CR,1,60,0, 1.0000000000000000E+00, 0.0000000000000000E+00,1,4,mbar;
  • CN (mostly 9 parameters) gives the name of the measured entity |CN,1,27,0,0,0,15,pressure_Vacuum,0,;
  • Cb (mostly 14 paramters) (optional?) this one probably gives the minimum/maximum measured values!! |Cb,1,117,1,0,1,1,0,341288,0,341288,1,0.0000000000000000E+00,1.1781711390000000E+09,;
  • CS (mostly 4 parameters) this markers announces the actual measurement data in binary format, provide the number of values and the actual data, e.g. |CS,1, 341299, 1, ...data... ;

Open Issues and question?

  • which parameter indicate(s) little vs. big endian?
Description
Enables extraction of measurement data from binary files with extension 'raw' used by proprietary software imcFAMOS/imcSTUDIO and facilitates its storage in open source file formats
Readme 7.9 MiB
Languages
C++ 91.1%
Python 4%
Makefile 2.4%
Cython 1.6%
Shell 0.6%
Other 0.3%