[teqc] helpful tip of week 1927

Lou Estey lou at unavco.org
Wed Dec 14 08:11:49 MST 2016


This week's tip: the '-O.sum' (or '+O.sum') option

Last week I went over the '+rx_state' option, which, as a reminder, uses the following usage
syntax:

[40] teqc +help | grep rx_state
          +rx_state .          output any receiver state parameters to stdout
          +rx_state ..         output any receiver state parameters to stderr
          +rx_state name       output any receiver state parameters to file 'name'
          ++rx_state name      append any receiver state parameters to file 'name'
          -rx_state            don't output receiver state parameters (default)

and I mentioned that this usage syntax was now used in about a dozen options.  One of
those -- with some caveats -- is the '-O.sum' option, which as of the 2016Nov7 version:

[41] teqc +help | grep O.sum
                 +O.sum[mary] e           output observable summary at end of RINEX OBS file
                 +O.sum[mary] .           output observable summary to stdout
                 +O.sum[mary] ..          output observable summary to stderr
                 +O.sum[mary] name        output observable summary to file 'name'
                 ++O.sum[mary] name       append observable summary to file 'name'

In previous versions, only the '+O.sum' taking the '.' as an argument existed.  And for those
of you with familiarity with this option, you've probably used it as '-O.sum .' -- which,
noting '-O.sum' vs. '+O.sum', still works.  That's the main difference between the syntax
for '+O.sum' compared to the other options, like '+rx_state': i.e. to maintain backwards
compatibility, there is no '-O.sum' with no argument which (if it existed) would be:
"don't output summary information".  So use either '-O.sum' or '+O.sum' followed by an
argument, as noted above from the '+help' ... but _do_ _not_ try to use '-O.sum' with
no argument.

Another difference between '+O.sum' option and the others using this usage syntax is the
one case for modifying a RINEX observation file using 'e' (= "end").  Including these
summary lines in a RINEX observation file was the original usage of '-O.sum', but now that's
taken a backseat to just outputting the summary to stdout and, now, stderr or a non-RINEX file.

You'll also note that the 's' (="start') version of this is now gone; it hasn't worked
for a long time and removing the thing allowed me to simplify quite a bit of code.  Also,
the using the 'e' argument probably won't work for many teqc cases, like probably using the
'-tbin' option. (Actually, putting observation summary lines in a RINEX observation file
header, even though defined long ago and allowed in the RINEX specification, is, in hindsight,
an illogical idea.  In the future, support for the 'e' argument on '-O.sum' may go away.
Frankly, if you want to find out the observable summary in a particular RINEX observation
file, use teqc with one of these syntaxes and then you can really be sure you're getting
the correct summary.)

Another significant change in the '-O.sum' results (except for the 'e' argument) is that
observable columns which have zero counts for all SVs are now deleted before outputting.
With that, let's take a look at using '-O.sum' with the '+all' option, but now with the
2016Nov7 version of teqc:

[6190] teqc +quiet +all -O.sum .. +mds 1607192000I.tgd > /dev/null
          L1    L2    L5    C1    C2    P2    C5    S1    S2    S5
         ----  ----  ----  ----  ----  ----  ----  ----  ----  ----
    G19  3600  3600     0  3600     0  3600     0  3600  3600     0
    G32   753   753   753   753   753   753   753   753   753   753
    G22  3600  3600     0  3600     0  3600     0  3600  3600     0
    G17  3600  3600     0  3600  3600  3600     0  3600  3600     0
    G31  3600  3600     0  3600  3600  3600     0  3600  3600     0
    G11  3600  3600     0  3600     0  3600     0  3600  3600     0
    G23  3600  3600     0  3600     0  3600     0  3600  3600     0
    G01  3600  3600  3600  3600  3600  3600  3600  3600  3600  3600
    G09  3600  3600  3600  3600  3600  3600  3600  3600  3600  3600
    G03  3600  3600  3600  3600  3600  3600  3600  3600  3600  3600
    G14  3393  3389     0  3393     0  3389     0  3393  3389     0
    G06  2957  2948  2948  2957  2948  2747  2948  2957  2948  2948
    R22     0  3600     0  3600  3600  3600     0     0  3600     0
    R05     0  3589     0  3590  3589  3589     0     0  3589     0
    R14     0  3262     0  3269  3262  3262     0     0  3262     0
    R06     0  3600     0  3600  3600  3600     0     0  3600     0
    R07     0  3600     0  3600  3600  3600     0     0  3600     0
    R15     0  3600     0  3600  3600  3600     0     0  3600     0
    R20     0  1923     0  1923  1923  1923     0     0  1923     0
    R21     0  3600     0  3600  3600  3600     0     0  3600     0
    R23     0  2043     0  2043  2043  2043     0     0  2043     0
    R16     0  1745     0  2013  2013  1745     0     0  1745     0
    R08     0   843     0   843   843   843     0     0   843     0

Notes on the command:
1) we're using '-O.sum ..', which outputs the observation summary to stderr,
2) we're using '+quiet' to suppress other messages (notices, warnings, errors)
that would be output to stderr (thus keeping the observation summary to stderr clean),
3) we're including '+mds' to suppress converting the input to a RINEX observation format,
4) the output of '+mds' (plus any other stdout stuff output by teqc) is being sent
to the bit bucket by the shell with '> /dev/null', and finally
5) all the observable columns have a non-zero value for at least one SV and any
observable columns which were zero for all SVs have been removed.

The following points about the '-O.sum' option are not new, but are important to
know about. First, the counts shown are for observables that are non-zero (and, if
reading a RINEX observation file, that are non-blank).  Technically, it is possible
for a doppler, phase, and even a pseudorange value to be exactly zero and be valid,
but if that happens, such a value will not be counted -- because in RINEX-ese, a zero
value means the same as a blank which means "no data".  (Obviously, the most likely
of these would be a zero doppler value, which at the 0.001 cycle/second resolution
of a RINEX file might happen on the order of once every 10 million doppler values --
so not counting counting zero values is not a big concern.)

Second, the '-O.sum' option works with some filtering, like for SVs:

[6200] teqc +G1-9 -R +quiet +all -O.sum .. +mds 1607192000I.tgd > /dev/null
          L1    L2    L5    C1    C2    P2    C5    S1    S2    S5
         ----  ----  ----  ----  ----  ----  ----  ----  ----  ----
    G01  3600  3600  3600  3600  3600  3600  3600  3600  3600  3600
    G09  3600  3600  3600  3600  3600  3600  3600  3600  3600  3600
    G03  3600  3600  3600  3600  3600  3600  3600  3600  3600  3600
    G06  2957  2948  2948  2957  2948  2747  2948  2957  2948  2948

and/or for observations:

[6201] teqc +G1-9 -R +quiet -O.obs l1+l2+l5 -O.sum .. +mds 1607192000I.tgd > /dev/null
          L1    L2    L5
         ----  ----  ----
    G01  3600  3600  3600
    G09  3600  3600  3600
    G03  3600  3600  3600
    G06  2957  2747  2948

But, currently, it does _not_ work for time filtering.  For example, if we find the time
bounds of the above file:

[6203] teqc +quiet +mds 1607192000I.tgd
2016-07-19 20:00:00  2016-07-19 20:59:59   6515334  1607192000I.tgd

... and then try to find the observables for half of the time window by changing
the start time with '-st':

[6204] teqc +quiet +all -O.sum .. -st 2016-07-19T20:30:00 +mds 1607192000I.tgd > /dev/nu>
          L1    L2    L5    C1    C2    P2    C5    S1    S2    S5
         ----  ----  ----  ----  ----  ----  ----  ----  ----  ----
    G19  3600  3600     0  3600     0  3600     0  3600  3600     0
    G32   753   753   753   753   753   753   753   753   753   753
    G22  3600  3600     0  3600     0  3600     0  3600  3600     0
    G17  3600  3600     0  3600  3600  3600     0  3600  3600     0
    G31  3600  3600     0  3600  3600  3600     0  3600  3600     0
    G11  3600  3600     0  3600     0  3600     0  3600  3600     0
    G23  3600  3600     0  3600     0  3600     0  3600  3600     0
    G01  3600  3600  3600  3600  3600  3600  3600  3600  3600  3600
    G09  3600  3600  3600  3600  3600  3600  3600  3600  3600  3600
    G03  3600  3600  3600  3600  3600  3600  3600  3600  3600  3600
    G14  3393  3389     0  3393     0  3389     0  3393  3389     0
    G06  2957  2948  2948  2957  2948  2747  2948  2957  2948  2948
    R22     0  3600     0  3600  3600  3600     0     0  3600     0
    R05     0  3589     0  3590  3589  3589     0     0  3589     0
    R14     0  3262     0  3269  3262  3262     0     0  3262     0
    R06     0  3600     0  3600  3600  3600     0     0  3600     0
    R07     0  3600     0  3600  3600  3600     0     0  3600     0
    R15     0  3600     0  3600  3600  3600     0     0  3600     0
    R20     0  1923     0  1923  1923  1923     0     0  1923     0
    R21     0  3600     0  3600  3600  3600     0     0  3600     0
    R23     0  2043     0  2043  2043  2043     0     0  2043     0
    R16     0  1745     0  2013  2013  1745     0     0  1745     0
    R08     0   843     0   843   843   843     0     0   843     0

... we find that this is the same result as first obtained above with no time windowing
options being used.

(The reason time windowing with '-O.sum' was never done is because of the original --
and now non-functional -- '-O.sum s' construct which built a summary for the resultant
RINEX observation file and put that summary in the RINEX header.  Maybe its time to
revisit allowing time windowing for this option ...)

Happy teqc-ing!

cheers,
--lou

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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
       WWW:http://www.unavco.org    http://jules.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', and '+all' options -http://postal.unavco.org/pipermail/teqc/2016/002130.html
week 1908: no doppler shortcut; RINEX 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

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


More information about the teqc mailing list