1GPSRINEX(1) GPSD Documentation GPSRINEX(1)
2
3
4
6 gpsrinex - Read data from gpsd convert to RINEX3 and save to a file.
7
9 gpsrinex [OPTIONS] [server[:port[:device]]]
10
11 gpsrinex -h
12
13 gpsrinex -V
14
16 gpsrinex is a tool to connect to gpsd and output the received raw
17 measurements as a RINEX 3 observation file. This is useful for sending
18 raw measurements (pseudorange and carrierphase) from gpsd to a Precise
19 Point Positioning (PPP) program or service.
20
21 gpsrinex does not require root privileges, but may be run as root. Some
22 of the examples in this file may not work when run under sudo. It can
23 be run concurrently with other tools connecting to a local or remote
24 gpsd without causing problems.
25
26 gpsrinex needs the GNSS receiver to be sending raw measurements to
27 gpsd. Only a few GNSS have this capability. In addition, the gpsd
28 driver for that GNSS must support raw mode. Currently only the u-blox
29 driver has this support. Only a few u-blox 8 and 9 receivers implement
30 the required UBX-RXM-RAWX message. The NEO-M8T is known to work, but
31 requires configuration with ubxtool.
32
33 Before using ubxtool be sure to set the UBXOPTS environment variable
34 with the correct protocol version for your u-blox receiver. If your
35 protocol version is 32.00, you would do this:
36
37 export UBXOPTS="-P 32.00"
38
39 RINEX has its own definitions and abbreviations. Be sure to consult
40 their documentation. An observation file (.obs) contains data sets,
41 called epochs, that contain the pseudorange and carrierphase for each
42 satellite seen.
43
44 gpsrinex by default will acquire 20 epochs spaced apart by 30 seconds.
45 That will take 10 minutes to complete. Most users consider the 30
46 second interval to be optimal. Many PPP programs require at least 1 or
47 2 hours data, but no more than 24 or 48 hours of data. Most users
48 consider 4 to 6 hours of data as a minimum for good accuracy.
49 Additional hours will not yield much improvement.
50
51 The output will consist of one RINEX 3 observation file that is ready
52 to be read by your PPP program. The default filename will be in the
53 form: gpsrinexYYYYDDDDHHMM.obs. You can override this filename with the
54 -f option.
55
56 Optionally a server, TCP/IP port number and remote device can be given.
57 If omitted, gpsrinex connects to localhost on the default port (2947)
58 and watches all devices opened by gpsd.
59
61 -?, -h, --help
62 Print a usage message and exit.
63
64 -D LVL, -debug LVL
65 Set debug level to LVL.
66
67 -f OUTFILE, --fileout OUTFILE
68 save RINEX into FILE.
69
70 -F INFILE, --filein INFILE
71 Read GPS JSON from file, not from a live gpsd.
72
73 -i SECS, --interval SECS
74 wait [interval] seconds between epochs. The interval can be
75 specified to the millisecond. OPUS accepts intervals of 1, 2, 3, 5,
76 10, 15 or,30 seconds. OPUS then reduces the data to 30 second
77 intervals. Default is 30.000.
78
79 -n COUNT, --count COUNT
80 Causes COUNT epochs to be output. OPUS requires a minimum af 15
81 minutes, and a maximum of 48 hours, of data.
82
83 -V, --version
84 makes gpsrinex print its version and exit.
85
86 The following options set strings that are placed in the generated
87 RINEX 3 obs file. They do not change how gpsrinex computes anything.
88
89 --agency AGENCY
90 The name of the agency creating the current file.
91
92 --ant_num NUMBER
93 The antenna serial number.
94
95 --ant_type TYPE
96 The antenna type.
97
98 --marker_name NAME
99 The marker name.
100
101 --marker_type TYPE
102 The marker type
103
104 --observer OBSERVER
105 The name of the observer (you).
106
107 --rec_num NUM
108 The receiver serial number.
109
110 --rec_type TYPE
111 The receiver type.
112
113 --rec_vers VERS
114 The receiver version.
115
116 The following options set floating point numbers that are placed in the
117 generated RINEX 3 obs file. They do not change how gpsrinex computes
118 anything.
119
120 --ant_e EASTING
121 The antenna easting from marker in meters.
122
123 --ant_h HEIGHT
124 The antenna height from marker in meters.
125
126 --ant_n NORTHING
127 The antenna northing from marker in meters.
128
130 By default, clients collect data from the local gpsd daemon running on
131 localhost, using the default GPSD port 2947. The optional argument to
132 any client may override this behavior: [server[:port[:device]]]
133
134 For further explanation, and examples, see the ARGUMENTS section in the
135 gps(1) man page
136
138 Example 1:
139
140 Create a 4 hour .obs file. With a running gpsd accessible on the
141 localhost do all of the following, in order. Order matters.
142
143 The raw measurement messages are long. Be sure your serial port speed
144 is high enough:
145
146 gpsctl -s 115200
147
148 Disable all NMEA messages, and enable binary messages:
149
150 ubxtool -d NMEA
151 ubxtool -e BINARY
152
153 The NEO-M8N will only reliably output raw measurements when only the
154 GPS and QZSS constellations are enabled. If your PPP service can use
155 GLONASS, then enable that as well. Be sure to disable, before enable,
156 so as not to momentarily have too many constellations selected.
157 ubxtool, as recommended by u-blox, enables the QZSS constellation in
158 tandem with GPS. Disable all constellations, except GPS (and QZSS):
159
160 ubxtool -d BEIDOU
161 ubxtool -d GALILEO
162 ubxtool -d GLONASS
163 ubxtool -d SBAS
164 ubxtool -e GPS
165
166 Verify the constellations enabled:
167
168 ubxtool -p CFG-GNSS
169
170 Enable the good stuff, the raw measurement messages:
171
172 ubxtool -e RAWX
173
174 Verify raw data messages are being sent:
175
176 ubxtool | fgrep RAWX
177
178 You should see this output:
179
180 UBX-RXM-RAWX:
181 UBX-RXM-RAWX:
182
183 Collect 4 hours of samples at 30 second intervals, save the RINEX 3
184 observations in the file today.obs:
185
186 gpsrinex -i 30 -n 480 -f today.obs
187
188 Wait 4 hours. Enjoy a meal, or do some exercise. When gpsrinex
189 finishes, upload the file today.obs to your favorite PPP service.
190
191 Example 2:
192
193 Collect raw measurement data from a remote gpsd. Then process it later
194 with gpsrinex and gpsprof.
195
196 Ensure the receiver is configured properly, as shown in Example 1.
197
198 Grab 4 hours of raw live data from remote gpsd at 10.168.1.2:
199
200 gpspipe -x 14400 -R 10.168.1.2 > 4h-raw.ubx
201
202 When gpspipe is complete, feed the data to gpsfake:
203
204 gpsfake -1 -P 3000 4h-raw.ubx
205
206 In another window, feed the data to gpsrinex. Use -n 10000000 so that
207 all the data from the raw file is used:
208
209 gpsrinex -i 30 -n 1000000 :3000
210
211 Repeat the process with gpsfake to send the data to gpsprof.
212
214 0
215 on success.
216
217 1
218 on failure
219
221 One service known to work with gbsrinex output is at:
222 https://webapp.geod.nrcan.gc.ca/geod/tools-outils/ppp.php
223
224 OPUS requires 2 frequency observation files.
225 https://www.ngs.noaa.gov/OPUS/
226
227 The curious can find the RINEX 3.04 format described here:
228 ftp://igs.org/pub/data/format/rinex304.pdf
229
230 gpsd(8), gps(1), gpsprof(1), gpsfake(1). ubxtool(1), gpsd_json(5)
231
233 Project web site: https://gpsd.io/
234
236 This file is Copyright 2013 by the GPSD project
237 SPDX-License-Identifier: BSD-2-clause
238
240 Gary E. Miller
241
242
243
244GPSD, Version 3.25 2023-01-10 GPSRINEX(1)