[teqc] helpful tip of week 1997

Lou Estey lou at unavco.org
Wed Apr 18 07:54:51 MDT 2018

This week's tip: GLONASS system time and broadcast time parameters

I hadn't really planned on covering this, but a teqc user on this list hinted
at this topic, so let's get into it, although, thankfully, (and here's the tip)
most users don't need to be concerned since all or most issues are taken care of
by some combination of the receiver firmware and conversion (to RINEX or another

The GLONASS system time, which I'll denote as GLNT, is based on UTC(SU) --
or sometimes referred to as UTC Moscow.  The important point is that UTC(SU)
is off by +3 hours (and + or - whatever small part of a second) from normal
UTC (Greenwich), or UTC(SU) = UTC + 3 hours.  For example, the GLONASS ephemerides
discussed in last week's tip https://postal.unavco.org/pipermail/teqc/2018/002457.html
have each time of ephemeris (ToE) in UTC(SU).  However, in the GLONASS RINEX nav
format (e.g. ftp://igs.org/pub/data/format/rinex211.txt for RINEX 2.11), the
GLONASS ToE (which is also always equal to the time of SV clock, or ToC, for
GLONASS) is converted to normal UTC.  (This was probably done to avoid confusion,
but I can't tell you for certain because the history of this decision preceded
my involvement with RINEX and my collaboration with Werner Gurtner on the
RINEX format.)

Thus GLNT, being based on UTC, will have a minute of 61 seconds in length
whenever a leap second is inserted into UTC (which occurs in all realizations
of UTC, like UTC(SU), by agreement).  And, of course, to convert GLNT to the
time systems of the other GNSS systems, one has to account for the accumulated
leap seconds inserted into UTC since the beginning of the other GNSS time
system.  (For example, as of 1.0 Jan 2017 and until the next leap second is
inserted into UTC, GPST = UTC + 18 seconds.)  Reminder: leap seconds were covered
in an earlier tip: https://postal.unavco.org/pipermail/teqc/2017/002215.html

For most users, this is all probably too much information already.  But for all
you truly hardcore geeks, let's delve further into what GLONASS actually broadcasts.

GLONASS broadcasts an integer "day number", NT in an ephemeris or NA in an almanac,
which is unique within any 4-year interval starting with a leap year.  Starting
with GLONASS-M (which first launched in 2003) the broadcast ephemeris and almanac
also include a 5-bit unsigned integer, N4, uniquely indicating which 4-year interval.
(Prior to GLONASS-M, the 4-year interval was ambiguous and had to be specified or
determined by other means.)  The GLONASS ICDs for GLONASS-M or later imply a
starting year of 1996 and even a starting date of 1 Jan 1996 UTC(SU) -- but this
is just formulistic, since there is, in fact, no equivalent starting epoch for
GLONASS as with the other GNSS systems (e.g. 6.0 Jan 1980 for GPS).  An N4 = 1
means the 4-year interval starting with leap year 1996 and going through to the
end of 1999; N4 = 5 means the 4-year interval starting with the leap year 2012
going through to the end of the year 2015.  There are only broadcast N4 values
of 1-31.

(Why didn't GLONASS-M start with a N4 value of 0 and a "starting year" of 2000
since GLONASS-M didn't first launch until 2003?  Good question.  I don't know.
The math would have been slightly different, but it seems like those values would
have worked.  These are some of the minor man-made mysteries of the universe that
keep me up at night ...  Perhaps the designers wanted at least one non-zero bit
in all usable N4 values, and perhaps they had all of this designed prior to 2000
but the first launch of GLONASS-M was delayed until after 2000.)

All GLONASS 4-year intervals start with a leap year.  A value of NT = 1 means
1 Jan of that leap year and NT = 1461 means 31 Dec at the end of the 4-year interval.
As examples:
    N4 = 5 and NT = 898 means 17 June 2014 UTC(SU)
    N4 = 6 and NT = 1461 means 31 Dec 2019 UTC(SU)
(This approach happens to be conveniently aided by the fact that 2000 A.D. --
being divisible by 400 -- was a leap year.  Exactly what might happen for N4 = 27
in 2100 A.D -- which will _not_ be a leap year -- is unclear to me, assuming GLONASS
is still viable in 2100.)

The time of applicability of a GLONASS navigation message is given by tb, which
is the time of the UTC(SU) day, in minutes, for the center of validity of the ephemeris,
i.e. the ToE of the navigation message in the terminology of the other GNSSs.

For those of you familiar with BINEX, the GLONASS navigation message in BINEX
0x01-02 stores NT and tb*60 (i.e. tb in units of seconds rather than minutes).
Also, the GLONASS-M N4 value is not stored, even if known, since, unfortunately,
BINEX 0x01-02 was defined before GLONASS-M existed.  For reference, see:


There, aren't most of you glad you don't have to know any of this? :)

Happy teqc-ing!


Louis H. Estey, Ph.D.              office:  [+001] 303-381-7456
UNAVCO, 6350 Nautilus Drive           FAX:  [+001] 303-381-7451
Boulder, CO  80301-5554            e-mail:  lou  unavco.org

"If the universe is the answer, what is the question?"
                                                -- Leon Lederman

Past helpful tips:

week 1894: using teqc config files - http://postal.unavco.org/pipermail/teqc/2016/002067.html
week 1895: qc of high-rate data - http://postal.unavco.org/pipermail/teqc/2016/002071.html
week 1896: UNIX/Linux shells for Windows - http://postal.unavco.org/pipermail/teqc/2016/002072.html
week 1897: '-' vs. '+' teqc options - http://postal.unavco.org/pipermail/teqc/2016/002076.html
week 1898: auto-identification of formats - http://postal.unavco.org/pipermail/teqc/2016/002092.html
week 1899: auto-identification vs. format flags - http://postal.unavco.org/pipermail/teqc/2016/002096.html
week 1900: square brackets in options - http://postal.unavco.org/pipermail/teqc/2016/002105.html
week 1901: using option '+mds' - http://postal.unavco.org/pipermail/teqc/2016/002108.html
week 1902: qc results w/ problematic nav messages - http://postal.unavco.org/pipermail/teqc/2016/002113.html
week 1903: '-no_orb[it]' and '-no_pos[ition]' options - http://postal.unavco.org/pipermail/teqc/2016/002115.html
week 1904: '-week' option - http://postal.unavco.org/pipermail/teqc/2016/002117.html
week 1905: using '+bcf' for XYZ/geodetic conversion - http://postal.unavco.org/pipermail/teqc/2016/002126.html
week 1906: the '+v[erify]' option - http://postal.unavco.org/pipermail/teqc/2016/002128.html
week 1907: '+C2', '+L5', "+L6', '+L7', '+L8', '+all' options - http://postal.unavco.org/pipermail/teqc/2016/002130.html
week 1908: getting RINEX doppler and L2 - http://postal.unavco.org/pipermail/teqc/2016/002131.html
week 1909: using paths w/ file names - http://postal.unavco.org/pipermail/teqc/2016/002132.html
week 1910: the (un)importance of file names - http://postal.unavco.org/pipermail/teqc/2016/002133.html
week 1911: notices, warnings, and errors - http://postal.unavco.org/pipermail/teqc/2016/002134.html
week 1912: the '-max_rx_SVs' option - http://postal.unavco.org/pipermail/teqc/2016/002137.html
week 1913: the end of '++igs' and '+igs' - http://postal.unavco.org/pipermail/teqc/2016/002140.html
week 1914: splicing together RINEX files - http://postal.unavco.org/pipermail/teqc/2016/002144.html
week 1915: using '-O.int' and '-O.dec' - http://postal.unavco.org/pipermail/teqc/2016/002145.html
week 1916: '+doy' option - http://postal.unavco.org/pipermail/teqc/2016/002146.html
week 1917: '-tbin' and '-ast' options - http://postal.unavco.org/pipermail/teqc/2016/002152.html
week 1918: mp12 RMS before/after Oct 2013 - http://postal.unavco.org/pipermail/teqc/2016/002158.html
week 1919: the global windowing options - http://postal.unavco.org/pipermail/teqc/2016/002159.html
week 1920: '-M.dec' and '-N.dec' options - http://postal.unavco.org/pipermail/teqc/2016/002163.html
week 1921: combining time filtering options - http://postal.unavco.org/pipermail/teqc/2016/002176.html
week 1922: helping me (or someone else on the list) help you - http://postal.unavco.org/pipermail/teqc/2016/002187.html
week 1923: the "build" line - http://postal.unavco.org/pipermail/teqc/2016/002190.html
week 1924: the qc '-w[idth]' option - http://postal.unavco.org/pipermail/teqc/2016/002193.html
week 1925: qc with explicit time windowing - http://postal.unavco.org/pipermail/teqc/2016/002194.html
week 1926: the '+rx_state' option - http://postal.unavco.org/pipermail/teqc/2016/002200.html
week 1927: the '-O.sum' option - http://postal.unavco.org/pipermail/teqc/2016/002204.html
week 1928: the '+meta' and '+mds' options - http://postal.unavco.org/pipermail/teqc/2016/002206.html
week 1930: more on '-O.sum' - http://postal.unavco.org/pipermail/teqc/2017/002207.html
week 1931: the '-O.s[ystem]' option - http://postal.unavco.org/pipermail/teqc/2017/002208.html
week 1932: leap seconds - http://postal.unavco.org/pipermail/teqc/2017/002215.html
week 1936: what you can (and shouldn't) do in a RINEX obs file - http://postal.unavco.org/pipermail/teqc/2017/002229.html
week 1938: the '+psp' option - http://postal.unavco.org/pipermail/teqc/2017/002231.html
week 1939: the '+diag' option - http://postal.unavco.org/pipermail/teqc/2017/002235.html
week 1951: '-n_<system>' and SV filtering options - http://postal.unavco.org/pipermail/teqc/2017/002277.html
week 1953: more with '+diag' option - http://postal.unavco.org/pipermail/teqc/2017/002287.html
week 1954: using '+diag' output to split raw files - http://postal.unavco.org/pipermail/teqc/2017/002290.html
week 1955: current qc notation - http://postal.unavco.org/pipermail/teqc/2017/002302.html
week 1956: the '+qcq' option - http://postal.unavco.org/pipermail/teqc/2017/002304.html
week 1957: using Trimble formats - http://postal.unavco.org/pipermail/teqc/2017/002305.html
week 1958: ToC != ToE messages - http://postal.unavco.org/pipermail/teqc/2017/002310.html
week 1959: receivers vs. formats - http://postal.unavco.org/pipermail/teqc/2017/002311.html
week 1960: when the '-week' option is very wrong to use - https://postal.unavco.org/pipermail/teqc/2017/002314.html
week 1961: "less" is usually best - https://postal.unavco.org/pipermail/teqc/2017/002315.html
week 1962: using GPS L2C with teqc - https://postal.unavco.org/pipermail/teqc/2017/002316.html
week 1964: the '+eds' options - https://postal.unavco.org/pipermail/teqc/2017/002317.html
week 1965: handling RINEX comment lines - https://postal.unavco.org/pipermail/teqc/2017/002324.html
week 1966: the '+dUTC_p' options - https://postal.unavco.org/pipermail/teqc/2017/002331.html
week 1967: the strange position from '+meta' - https://postal.unavco.org/pipermail/teqc/2017/002355.html
week 1972: what shows up as metadata in RINEX headers - https://postal.unavco.org/pipermail/teqc/2017/002362.html
week 1973: GPS L2C navigation messages - https://postal.unavco.org/pipermail/teqc/2017/002363.html
week 1974: the '+ion_p' options - https://postal.unavco.org/pipermail/teqc/2017/002370.html
week 1975: the '+event' options - https://postal.unavco.org/pipermail/teqc/2017/002372.html
week 1976: options '+smtt' (default) vs. '-smtt' - https://postal.unavco.org/pipermail/teqc/2017/002374.html
week 1977: the reported interval with '+meta' for a RINEX obs file - https://postal.unavco.org/pipermail/teqc/2017/002377.html
week 1978: the '-N.dUTC' options - https://postal.unavco.org/pipermail/teqc/2017/002378.html
week 1979: the various qc elevation angles - https://postal.unavco.org/pipermail/teqc/2017/002383.html
week 1980: avoid in RINEX: Transit data - https://postal.unavco.org/pipermail/teqc/2017/002385.html
week 1981: avoid in RINEX: epoch flag = 6 - https://postal.unavco.org/pipermail/teqc/2017/002389.html
week 1982: avoid in RINEX: RCV CLOCK OFFS APPL = 1 - https://postal.unavco.org/pipermail/teqc/2018/002392.html
week 1983: don't count on in RINEX: receiver clock offset per epoch - https://postal.unavco.org/pipermail/teqc/2018/002393.html
week 1984: requirements for multiple target files/stdin - https://postal.unavco.org/pipermail/teqc/2018/002410.html
week 1985: default output for various input - https://postal.unavco.org/pipermail/teqc/2018/002412.html
week 1986: the '+latency' options - https://postal.unavco.org/pipermail/teqc/2018/002419.html
week 1987: the 'O.px and 'O.pg' options - https://postal.unavco.org/pipermail/teqc/2018/002422.html
week 1988: the '+relax' option - https://postal.unavco.org/pipermail/teqc/2018/002423.html
week 1992: the '+x_tilt' options - https://postal.unavco.org/pipermail/teqc/2018/002452.html
week 1993: GLONASS: slot and freq. chnl. numbers - https://postal.unavco.org/pipermail/teqc/2018/002453.html
week 1994: GLONASS: slot numbers > 24 - https://postal.unavco.org/pipermail/teqc/2018/002454.html
week 1995: GLONASS: signals - https://postal.unavco.org/pipermail/teqc/2018/002456.html
week 1996: GLONASS: broadcast ephemeris - https://postal.unavco.org/pipermail/teqc/2018/002457.html

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://postal.unavco.org/pipermail/teqc/attachments/20180418/dd8fe213/attachment-0001.html>

More information about the teqc mailing list