EDF Syntax

Files with a .edf extension are used to define the extraction of experimental data from the raw data files written by the lgr program to SNAFU spreadsheet format, which is more suitable for data analysis. The edf2ext compiler converts these definitions into TMC code, which is in turn compiled to C and linked into an executable which performs the actual extraction. The SNAFU spreadsheet format is not the only possible format for data analysis, and creating other methods of extraction is not difficult. The .tmc output from edf2ext can be used as a starting point for the development of alternative extractions.

An .edf file defines extraction to one or more spreadsheets. Each spreadsheet must be identified by name and the number of columns. An optional keyword, separate can be added, which is explained later.

spreadsheet <name> <n_columns> [ separate ]

After the spreadsheet is identified, the columns to which data is to be extracted are defined:

<column> <mnemonic> <format> [ <conversion> ]

<column> is the column number, which must be greater than zero and less than the number of columns in the spreadsheet. Column zero is reserved for Time.

<mnemonic> is the datum mnemonic which must correspond to a TMC definition.

<format> is a C-style output format which SNAFU can use to display the data. (SNAFU supports some extensions to the C formats. Refer to the SNAFU manual for details.)

<conversion> is an optional parameter which allows you to override the conversion defined for the mnemonic's TMC type. This is useful, for example, if you would like to extract the raw, unconverted data or use a more sophisticated conversion than the one used for realtime display.

At any point in the file, the keyword init_only may be specified to suppress the generation of the code which places each data point into the spreadsheet. This is useful when you wish to take more direct control of how data is written to the spreadsheet or when multiple numbered spreadsheets are required from a single specification (e.g. one for each scan).

Another method for controlling what data goes into a spreadsheet is the condition keyword. This may be placed on the line immediately following spreadsheet and includes a conditional statement which defines which values should be included. For example:

spreadsheet foo 5
  condition if ( status == 7 )

or

spreadsheet foo 5
  condition depending on ( SCANNING )

The optional separate keyword indicates that each column should be inserted when it is received independent of the rates of the other data in the spreadsheet. By default, data is inserted into the spreadsheet at the rate of the slowest channel in the spreadsheet. When separate is in effect, slower-rate channels will have blank cells when the higher-rate data is inserted. This is rarely useful. More commonly, data is segregated by rate and then combined as appropriate using SNAFU's merge capabilities.


Return to Manuals Guide


last updated: Wed Jul 18 15:10 2012 webmaster@huarp.harvard.edu
Copyright 1995 by the President and Fellows of Harvard College