### Blue Files

The Midas Blue File is the standard binary file format used by modern Midas frameworks. Blue files are so ubiquitous in Midas applications that many people erroneously refer to a Blue file as simply a "Midas File". Blue files are designed to efficiently store one-dimensional or two-dimensional signal data as well as record-based information.

The Blue file format was preceded by the Gold file format. While X-Midas and NeXtMidas have the ability to import Gold files, they are no longer used. Many Gold files have been converted to Blue files, those that remain are usually found on tape archives. Users who are relatively new to the Midas community are unlikely to ever encounter a Gold file. (Important Note: These days when people refer to a "gold file" they are often using "gold" to mean a "gold-standard," or a file whose data has been proven valid. This terminology is frequently associated with test cases where the test output is compared to a reference output, called a "gold" file.)

Blue files start with a four-byte "magic number" equal to the ASCII code "BLUE" (see "Magic number (programming)" in Wikipedia for details). Because of this Blue files are often termed "BLUE" files, although the name is not an acronym. (This follows the use of "GOLD" for Gold files.)

The design of Blue files grew out of the Midas community over several decades. The definition of the Blue file format was officially codified in 2006. Please see Midas BLUE File Format / Version 1.0.0 (CCD-2006002-1.0.0).

#### Overview of Blue Files

Blue files are explained, in detail, in the official Midas BLUE File Format / Version 1.0.0 (CCD-2006002-1.0.0) document, a copy of which is contained in the `docs` area of the NeXtMidas `SYS` option tree. What follows below is a very brief overview of Blue files.

- Classes of Blue Files:
  Type 1000
    One-dimensional data.
    Typically used for raw signal data.
    Type 1999 files are a special case used for records of connected points (e.g. world.prm).
    Type 1000 files can be treated as a special case of Type 2000 file where the frame size is one.
  Type 2000
    Two-dimensional frame based data.
    Typically used to show Frequency vs Time (e.g. post-FFT signal data).
    When listing a Type 2000 file it will be automatically assigned the column names F1, F2, F3, ... Fn (where n is the frame size).
  Type 3000
    Record-based data (limited to 26 subrecords). Similar to a flat-file database.
    Unlike Type 5000 files, Type 3000 files allow "gaps" between records.
    - This allows a Type 3000 file to be created from an existing binary file.
    Rarely plotted, but frequently listed.
  Type 4000 (Not supported by NeXtMidas)
    Key/value pairs, used by X-Midas as a work-around for not having tables.
  Type 5000
    Record-based data (limited to 14 subrecords) with system modeling parameters.
    Typically used for geodetic positions and features.
    Unlike Type 3000 files, Type 5000 files include system modeling information and each field has its own coordinate type and units.
  Type 6000
    An extension of Type 3000 files, allows for more complex records.
    Most newer applications prefer to use XML over Type 6000 files.
- Types of Blue Files:
  - Each of the above classes has one generic form (e.g. Type 1000 for the class of Type 1000 files) and many specific forms (e.g. Type 1001, 1002, and 1003 for the class of Type 1000 files).
    - (While it is less confusing to refer to the type classes as Type 1xxx, 2xxx, 3xxx, etc (rather than Type 1000, 2000, 3000, etc), this is not the accepted practice of the Midas community.)
- Structure of Blue Files:
  - There are three main parts to a Blue File:
    Main Header
      The Main Header is divided into two sections:

      Fixed | Basic information about the file (start values, deltas, units).
      | Three keywords (called main header keywords).
      Adjunct | Details about the file layout (varies based on file type).
      | May include system modeling information.

    Data
      The binary data of the file.
    Extended Header
      Stores keywords (auxiliary information about the file).