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:
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 “yyyymmdd.hhmm.ss” 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” |
Example
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.