tec-suite¶
Overview¶
tec-suite is a tool for reconstruction of the slant total electron content (TEC) value in the ionosphere. It uses data of Global Navigation Satellite Systems such as GPS and GLONASS. To determine TEC value along “receiver-satellite” line-of-sight, tec-suite uses phase and pseudorange derived from RINEX files [RNX].
For the moment tec-suite supports:
- Navigation systems:
- GPS
- GLONASS
- Galileo
- Compass/BeiDou
- GEO (geostationary satellites, part of SBAS)
- IRNSS
- RINEX versions:
- v.2 (2.0 - 2.11)
- v.3 (3.0 - 3.03)
- File types:
- RINEX observation files
- Hatanaka-compressed RINEX observation files [CRNX]
- RINEX navigation files
- compressed (.Z or .gz) files
Contents¶
Installation¶
Just download and extract tec-suite archive wherever you want.
Downloads:
Requirements¶
crx2rnx
- To decompress Hatanaka-compressed RINEX files, tec-suite uses crx2rnx.
gunzip
- To unarchive
.z
,.Z
or.gz
, files tec-sutie usesgunzip
. If your system is Linux or macOS you probably have it installed. You can find the Windows version at GnuWin site.
Note
tec-suite for Windows comes with crx2rnx
and gzip
executables. In
case of Linux or macOS put crx2rnx
to a dir where tecs
could find it,
e.g. to the dir which contains tecs
binary or to any dir in $PATH
variable.
Usage¶
Synopsis¶
tec-suite is a command line tool. There is an executable named
tecs
(or tecs.exe
) you should invoke to make work done.
In general, the command line looks like:
tecs [-v] [-c config_file] [--save-coordinates]
Command line¶
All the arguments are optional.
-c file
- Use the given config file instead of
tecs.cfg
. -v
- Print the version and exit.
--save-coordinates
- Save the coordinates of the sites found in
obsDir
intocoordinates.txt
. TEC values are not calculated, the file is saved in a directory which contains configuration file.
Configuration¶
The configuration file contains a set of variables that affect the
tecs
behaviour. If not set explicitly with -c file
, tecs
will look for tecs.cfg
in the working dir.
The syntax is simple; white-spaces are ignored, the #
symbol begins
comment to the end of the line, blank lines are ignored. All other
lines are identified as setting variables, in the form name =
value
. The variable names are case sensitive.
Variables¶
obsDir
dir [, dir, …]- Directory with the RINEX observation files. It can contain a list of the directories separated by a comma.
navDir
dir [, dir, …]- Directory with the RINEX navigation files. It can contain a list of the directories separated by a comma.
outDir
dir- Output directory; output files will be saved in it.
outFileMode
mode- Output file format. The only one format available by now, and it
is the
text
format (outFileMode = text
). Output data will be saved in multicolumn text files. The set and the order of data columns are defined by therecFields
variable. recFields
‘rec format’- Set and order of output file columns. A complete list of the columns (“fields”) is given in the Output file section.
datetimeFormat
‘date format’- Date/time format in output file; see the Date/time section for details.
samplingInterval
seconds- Interval in seconds to pick values from an observation
file. Values of TEC, azimuth and elevation will be calculated with
the interval. In case of
samplingInterval = 0
all the data will be read. navPriorityGPS
site1, site2, …, siteN- Priority of search of navigation files for GPS. Here, site is a
4-symbol code of the station (the first 4 symbols of RINEX file
name). First,
tecs
searches for site1 navigation file. If it does not find it, it searches for site2 file and so on to siteN. Iftecs
does not find any navigation file from the list, it takes the first available file. navPriorityGLO
site1, site2, …, siteN- It is an analogue of
navPriorityGPS
for GLONASS. navPriorityGEO
site1, site2, …, siteN- It is an analogue of
navPriorityGPS
for SBAS. navIgnoreAbsence
[True|False]- When
True
, absence of navigation files for all satellite systems besides GLONASS is ignored. The values of elevation and azimuth are not calculated and are written as0
. Note that for GLONASS the navigation file is required to calculate frequencies. logLevel
(DEBUG|INFO|WARNING|ERROR|CRITICAL)- Sets the logging level.
ERROR
is usually enough.
Output file¶
The results are written into multicolumn text files. The name of an output file is formed as follows:
site_SN_DDD_YY.dat
, where
site - site name, S - satellite system identifier, N - satellite number, DDD - day of the year, YY - year without century.
The order and the set of the output record fields are set by the
recFields
variable. The recFields
value is a single quoted
string which contains field names separated by a comma. For example,
recFields = 'datetime, el, az, tec.l1l2, tec.p1p2'
Therefore, it is possible to set the format of an output record so that it contains only desired values. The field names listed in The TEC fields list and The output fields list.
The following is the list of TEC reconstruction variants, which values can be written into an output file.
Notation | Meaning |
---|---|
tec.p1p2 | TEC value reconstructed using pseudorange P1 and P2 values |
tec.c1p2 | The same but using C1 and P2 values |
tec.c1c2 | The same but using C1 and C2 values |
tec.c1c5 | The same but using C1 and C5 values |
tec.c2c5 | The same but using C2 and C5 values |
tec.c2c6 | The same but using C2 and C6 values |
tec.c2c7 | The same but using C2 and C7 values |
tec.c6c7 | The same but using C6 and C7 values |
tec.l1l2 | TEC value reconstructed using phase L1 and L2 values |
tec.l1l5 | The same but using L1 and L2 values |
tec.l2l5 | The same but using L2 and L5 values |
tec.l2l6 | The same but using L2 and L6 values |
tec.l2l7 | The same but using L2 and L7 values |
tec.l6l7 | The same but using L6 and L7 values |
tec.l1c1 | TEC value reconstructed using phase L1 and pseudorange C1 values |
tec.l2c2 | TEC value reconstructed using phase L2 and pseudorange C2 values |
The following is the list of other fields which can be inserted
into recFields
variable.
Notation | Meaning |
---|---|
Date and time | |
tsn | Time of the observation ![]() ![]() ![]() |
hour | Time of the observation in fractions of an hour. |
datetime | Date and time of the observation. You can control date/time string
using the datetimeFormat variable (see Date/time section). |
Coordinates | |
site.x | Geocentric coordinate ![]() |
site.y | Geocentric coordinate ![]() |
site.z | Geocentric coordinate ![]() |
site.l | Geographic longitude ![]() |
site.b | Geographic latitude ![]() |
site.h | Altitude ![]() |
sat.x | Geocentric coordinate ![]() |
sat.y | Geocentric coordinate ![]() |
sat.z | Geocentric coordinate ![]() |
el | Elevation to a satellite. |
az | Azimuth to a satellite. |
Observable values | |
p1 | P1 pseudorange value. |
p2 | P2 pseudorange value. |
l1 | L1 carrier phase value. |
l2 | L2 carrier phase value. |
l5 | L5 carrier phase value. |
s1 | S1 raw signal strength value. |
s2 | S2 raw signal strength value. |
s5 | S5 raw signal strength value. |
c1 | С1 pseudorange value. |
c2 | С2 pseudorange value. |
c5 | C5 pseudorange value. |
p1.lli | P1 Loss of Lock Indicator (LLI) value. |
p2.lli | P2 LLI. |
l1.lli | L1 LLI. |
l2.lli | L2 LLI. |
l5.lli | L5 LLI. |
s1.lli | S1 LLI. |
s2.lli | S2 LLI. |
s5.lli | S5 LLI. |
c1.lli | C1 LLI. |
c2.lli | C2 LLI. |
c5.lli | C5 LLI. |
Date/time¶
Using the datetimeFormat
variable one can set the format of the
datetime
field which will be written into an output file. Note
that the datetime
field should be put into the recFields
string.
The datetimeFormat
string can include:
- any printable character;
- date/time codes (according to the С standard 1989 version).
For example, %Y-%m-%d %H:%M:%S
corresponds to 2015-06-23 12:00:00
.
The following is the list of codes.
Code | Meaning |
---|---|
%a | Weekday as locale’s abbreviated name. |
%A | Weekday as locale’s full name. |
%w | Weekday as a decimal number, where 0 is Sunday and 6 is Saturday. |
%d | Day of the month as a zero-padded decimal number. |
%b | Month as locale’s abbreviated name. |
%B | Month as locale’s full name. |
%m | Month as a zero-padded decimal number. |
%y | Year without century as a zero-padded decimal number. |
%Y | Year with century as a decimal number. |
%H | Hour (24-hour clock) as a zero-padded decimal number. |
%I | Hour (12-hour clock) as a zero-padded decimal number. |
%p | Locale’s equivalent of either AM or PM. |
%M | Minute as a zero-padded decimal number. |
%S | Second as a zero-padded decimal number. |
%f | Microsecond as a decimal number, zero-padded on the left. |
%z | UTC offset in the form +HHMM or -HHMM (empty string if the object is naive). |
%Z | Time zone name (empty string if the object is naive). |
%j | Day of the year as a zero-padded decimal number. |
%U | Week number of the year (Sunday as the first day of the week) as a zero padded decimal number. All days in a new year preceding the first Sunday are considered to be in week 0. |
%W | Week number of the year (Monday as the first day of the week) as a decimal number. All days in a new year preceding the first Monday are considered to be in week 0. |
%c | Locale’s appropriate date and time representation. |
%x | Locale’s appropriate date representation. |
%X | Locale’s appropriate time representation. |
%% | A literal ‘%’ character. |
Moving receiver¶
Change of site location (i.e. change of the values of geocentric
coordinates X, Y, Z during the file reading) is taken into account in
the calculation of elevation and azimuth values. Moreover, there is a
possibility to set the coordinates for required moments of time. To do
that, one should put a file with the values of time and geocentric
coordinates corresponding to them into a directory with an observation
file. Running into such a file, tecs
will read the coordinates and
changes the values of X, Y and Z for each time moment listed in the
file.
File with coordinates¶
The name of a file with coordinates should correspond to the name of
an observation file and has an extension xyz
. For example,
usud0700.11d.Z
andusud0700.11d.xyz
;usud0700.11o
andusud0700.11o.xyz
;usud070a00.11o
andusud070a00.11o.xyz
.
Time stamp is set as YYYY-MM-DD HH:MM:SS
followed by values of the
X, Y and Z (in meters) separated by spaces. The #
symbol begins a
comment. For example,
# Site: USUD
# Datum: IGS08
# datetime, x (meters), y (meters), z (meters)
2011-03-11 05:00:00 -3855263.0771 3427432.6022 3741020.3066
2011-03-11 05:00:30 -3855263.0833 3427432.6068 3741020.3148
2011-03-11 05:01:00 -3855263.0761 3427432.6020 3741020.3089
...
Appendices¶
Constants¶
List and meaning of the constants which are used for calculation.
- Conversion of geocentric coordinates into geodesic coordinates:
- ellipsoid semi-major axis:
;
- ellipsoid semi-minor axis:
.
- ellipsoid semi-major axis:
- Calculation of elevation and azimuth:
- Earth’s radius:
.
- Earth’s radius:
- Calculation of geocentric coordinates of the GPS, GLONASS and GEO satellites:
- Earth’s angular velocity:
;
- Earth’s gravitational field constant:
;
- second zonal harmonic of geopotential expansion into a series of spherical functions:
;
- ellipsoid semi-major axis:
(for GLONASS, according to PZ-90).
- Earth’s angular velocity:
Bibliography¶
[RNX] | The Receiver Independent Exchange Format. |
[CRNX] | Hatanaka, Y., A Compression Format and Tools for GNSS Observation Data, Bulletin of the GSI, V. 55, pp. 21-30, 2008. |