MLOC Data Format MNF v1.5

MLOC Native Format (MNF) v1.5

The current version of the format is v1.5.0, released on March 20, 2016 with mloc 10.3.0.

MNF v1.5 format is the only format that can be used to read differential time data in mloc, using the diff command. It is read by the subroutine read_mnf_15 in the module mlocio_mnf.f90. Differential time data consists of time differences between onsets of the same phase recorded at the same station for two different events. The formulation used by mloc is described here.

Format Description

Like other varieties of MNF, v1.5 uses several types of ‘records’ with defined formats and a character in column 1 that defines the type of record. Unlike the other MNF formats, which are event-oriented (i.e., records are grouped by event), v1.5 data files are cluster-oriented, and each differential time record carries references to two events in the cluster. Only 4 record types are defined:

Record Types of MNF v1.5
Flag Record Type Minimum Length Full Length
F Format 14 14
D Differential Time 87 149
# Comment 1 149
EOF End of file 3 3

Unlike all other record types, which are distinguished by the flag in column 1, the end-of-file record (“EOF”) uses columns 1:3; it has no other arguments. It causes processing of a data file to end, so it would normally only be found once, at the end of the file. If an end-of-file record is placed in the middle of a file, processing will stop there.

The differential time record carries a “usage” flag (in column 3) that determines the way (or if) the information in that record will be used by mloc. None of the other record types carries a usage flag.

Comment records (flag “#“) can be inserted anywhere in an MNF-formatted file, but should not be the first or last record. Obviously, any text that occurs after the first end-of-file record will not be processed and can be considered as a comment, regardless of the formatting, but the use of the end-of-file record in this manner is not recommended. Information about the nature of the differential time data set can be carried in comment records.

File Structure

The first line in a data file must be a format record. This is followed by some number of differential time records (and comment records, optionally) and the file must end with an end- of-file record.

Defined Record Types

The concept of “optional” fields in the descriptions of record types is specifically in the context of use by mloc. In writing MNF-formatted data files it is advisable to pad lines to the full length of that record type, which is based on the defined fields, not the required fields, and it is not unwise to pad all lines to 149 characters, the full length of the longest defined record types, regardless of record type.

Format Version Record

Column Description
1:1 Record format flag “F”
10:14 Format version (a5)

It is useful for readability to include extra text, such that columns 5:9 read “MNF v”, but all that is required is the “F” in column 1 and the version number in columns 10:14. Version number is treated by mloc as a character string that can accommodate three-level versioning (e.g., ‘1.5.0’).

Differential Time Record

Column Description
1:1 Record format flag “D”
3:3 Usage flag (a1), optional
5:20 Template Event Designator (a16)
22:31 Template Event EVID (a10), optional
33:48 Target Event Designator (a16)
50:59 Target Event EVID (a10), optional
61:66 Station (a6)
68:75 Phase (a8)
77:87 Reduced Relative Arrival Time (f11.4)
89:90 Reading Precision (i2), optional
92:97 Uncertainty, s (f6.4), optional
99:103 Correlation Coefficient (f5.3), optional
105:112 Original phase name, optional (a8)
114:118 Agency, optional (a5)
120:127 Deployment or network, optional (a8)
129:133 Station, optional (a5)
135:136 Location, optional (a2)
138:140 Channel, optional (a3)
142:149 Author, optional (a8)

The usage field is used here for phase reading flags, usually to indicate that the reading will not be used.

The “event designator” field for the template and target events carries an identifier for each event based on an estimate of the date and origin time, to the nearest second. The format is “” with the character ‘0’ filling any blanks. Although the identifier could be read as numeric values for year, month, day, etc, mloc treats it as a character string that is only used to make the correct association with two corresponding events in the cluster being relocated. An equivalent event identifier is declared for each event in the mloc command file, using the even command. Therefore it is desirable to ensure that the integer seconds part of the identifiers match. The evid (event id) fields are provided for the same reason. While evids are not always available, if they are they provide a more robust way to make the association with events in the cluster. mloc attempts to make the match using evids first.

The definition of ‘reduced relative arrival time’ is discussed elsewhere.

Reading precision is an integer that indicates the number of significant decimal places in the reduced relative arrival time datum. It is used in mloc to correctly format output. The values appropriate for differential time data are:

Value Meaning
0 nearest second
-1 nearest tenth
-2 nearest hundredth
-3 nearest thousandth
-4 nearest ten-thousandth

If no value for reading precision is provided, mloc attempts to determine it from the formatting of the datum. No great harm will be done if this process is inaccurate, but specification of a reading precision is strongly recommended as good practice.

If an uncertainty for the estimate of reduced relative arrival time is provided, it will be read and may be used in mloc, at least initially, although it can be over-ridden in various ways. It is desirable to have an estimate of uncertainty from the cross-correlation analysis but mloc can proceed without one.

If the correlation coefficient field is non-blank, it is read by mloc. It can be used on input to filter out differential times with correlation coefficients below a threshold set by the user. It may also be helpful in deciding whether or not to flag a particular datum as an outlier.

The “original phase name” field provides a way for the user to change the phase name of a differential time datum without losing the information on the original phase ID. The same facility exists in the MNF v1.3 format for arrival time data, but this is likely to be a rare need with differential time data.

The next five fields, all optional, identify the seismograph instrumentation from which the measurement of reduced relative arrival time was made, in the new IASPEI Station Coding Standard. Known as the ADSLC code, this identification standard greatly expands the traditional concept of describing the source of seismic data by a single 3-5 character station code. See the documentation for MNF v1.3 for a fuller discussion of this, especially the rationale for carrying station code in two places in the record. Channel information may be of special significance with differential time data because it is common practice to carry out the cross-correlation analysis on more than one channel of a station and select the one with the highest correlation coefficient for use in relocation. Therefore differential time data sets may well include multiple estimates of reduced relative arrival time, differing only in the channel that was analyzed.

The author field identifies the source (usually a person) of the datum. The field is optional but it is strongly recommended that it be utilized. The character string employed to identify someone is completely arbitrary, but it is limited to 8 characters in mloc.

Comment Record

Column Description
1:1 Record format flag “#”
2:149 Comment (a148), optional

The length of the comment field is rather arbitrary but it is convenient to limit it to the length of the main ‘data’ record, in this case the differential time record. mloc ignores comment records.

End-of-file Record

Column Description
1:3 Record format flag “EOF”


Here is an example, a portion of a dataset provided for a study of North Korean nuclear tests by Dr. Michael Begnaud:

F   MNF v1.5  
D   20090525.0054.42            20061009.0135.27            INCN   Pn         2444.9006 -4 0.0341       Pn            .        .INCN .  .    MBegnaud
D   20090525.0054.42            20061009.0135.27            INCN   Pb         2444.8794 -4 0.0817       Pb            .        .INCN .  .    MBegnaud
D   20090525.0054.42            20061009.0135.27            INCN   Pg         2444.9888 -4 0.0820       Pg            .        .INCN .  .    MBegnaud
D   20090525.0054.42            20061009.0135.27            HIA    Pn         2445.0637 -4 0.0410       Pn            .        .HIA  .  .    MBegnaud
D   20130212.0257.51            20061009.0135.27            HIA    Pn        -4943.2456 -4 0.0395       Pn            .        .HIA  .  .    MBegnaud
D   20090525.0054.42            20061009.0135.27            MDJ    Pn         2444.8804 -4 0.0160       Pn            .        .MDJ  .  .    MBegnaud
D   20130212.0257.51            20061009.0135.27            MDJ    Pn        -4943.4370 -4 0.0180       Pn            .        .MDJ  .  .    MBegnaud
D   20090525.0054.42            20061009.0135.27            MDJ    Pg         2444.8831 -4 0.0382       Pg            .        .MDJ  .  .    MBegnaud
D   20130212.0257.51            20061009.0135.27            MDJ    Pg        -4943.4678 -4 0.0365       Pg            .        .MDJ  .  .    MBegnaud

The original data were provided by Dr. Begnaud in a much different format and a conversion code specifically for this dataset was written. Differential time data from other sources almost invariably uses a unique format and will require its own conversion code.