The UDF file format was designed and optimized for use with Space Physics Data sets. For reasons of efficiency and to keep the format fully generic the format is build around a four file base. These are: the UDF data file, the UDF header file, the Virtual Instrument Description file (VIDF), and the Plot Interface Definition file (PIDF). Each UDF definition consists of one instance of the PIDF file, one or at most a few instances of the VIDF file, and multiple instances of the of the Header/Data files which always exist as matched pairs of files.
At its most basic level, a UDF definition is simply a set of correlated measurements. These measurements are divided into three classes; sensor, ancillary, and mode. The differences between the various classes has to do with how they are stored into the UDF file structure and how they UDF software treats and uses them. Most UDF based applications spare the end user from having to know under what class a particular measurement has been stored.
Each of the four UDF file types plays a unique role in a UDF definition. The VIDF file is the basic UDF documentation file. This is an ASCII based file which contains a full description all measurements which may be returned under the UDF definition. This includes measurement names, storage related information, all related calibration coefficients, any related ancillary information both numerical or descriptive, and some general timing definitions. The file is used primarily by the UDF kernel software both as a road-map when accessing the stored UDF data and as the source of all of the calibration and constant values used any defined algorithms which operate on the retrieved measurements.
VIDF files have an associated beginning and ending time. This is to accommodate time changes the calibration values. The VIDF is also able to accommodate continual changes in calibration coefficients which can be fit to an arbitrary time based polynomial function.
The PIDF is the interface between the UDF definition and all external applications. It is a key-based ASCII file which can be queried to obtain most of the information that an application would need to pass onto a user or to act on its own. This includes lists of the available measurements, the UDF measurement classification, what units each measurement can be returned in and the algorithm steps to pass into the UDF conversion routine to obtain the desired unit.
All of the defined measurements in a UDF definition are stored either in the UDF header or the UDF data file. These two files are always created in pairs. The Header file consists of a set of variable length records each of which holds a measurement return definition. Each record holds information on what sensors are being returned, measurement timing information, data quality flags, the array indices or matrix rows being returned for array and matrix sensors respectively and the defined status measurements. Over the period of time spanned by a data file these are generally very slowly varying or unchanging quantities so the UDF header file is generally quite small. It is not uncommon for a header file to contain only a single block information.
The UDF data file consists of one or more fixed length records which contain the defined sensor and ancillary class measurements. Each data record hold one or more blocks of measurements called sensor sets and each sensor set is described by one measurement return definition in the header record. A single measurement return definition may be used to describe multiple data blocks. Between the header and data timing information coupled with general timing information found in the VIDF to be able to derive the start and stop time of each stored measurement within the data file.
Both files are time based with start and stop times determined from the time of the first and last measurement in the data file. This is no hard and fast rule as to how much data to put into header/data pair. This is set according to any number of criteria including file size, orbital period, transmission cycles, etc.
The UDF uses a standard file naming convention. The Header and Data files have names beginning with the Virtual Instrument Acronym with which they are associated followed by the year, day of year, hour, and minute of the first data measurement in the file. Header files end with the character H and Data files with the character D.
The VIDF files have an identical naming convention to the Header and Data files with the exception that they end with the character V. The time in the file name refers to the start time at which the information in the VIDF becomes applicable.
The PIDF files, which have no time dependence, use just the Virtual Instrument Acronym as their file name with the extension ,pidf.v2 added.
The names below are an example of file names which might be associated with the IMFHWIC virtual instrument definition.