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: gpsrinex.obs. You can override this filename with the -f option.
54
55 Optionally a server, TCP/IP port number and remote device can be given.
56 If omitted, gpsrinex connects to localhost on the default port (2947)
57 and watches all devices opened by gpsd.
58
60 -?, -h, --help
61 Print a usage message and exit.
62
63 -D LVL, -debug LVL
64 Set debug level to LVL.
65
66 -f FILE, --fileout FILE
67 save RINEX into FILE.
68
69 -i SECS, --interval SECS
70 wait [interval] seconds between epochs. The interval can be
71 specified to the millisecond. OPUS accepts intervals of 1, 2, 3, 5,
72 10, 15 or,30 seconds. OPUS then reduces the data to 30 second
73 intervals. Default is 30.000.
74
75 -n COUNT, --count COUNT
76 Causes COUNT epochs to be output. OPUS requires a minimum af 15
77 minutes, and a maximum of 48 hours, of data.
78
79 -V, --version
80 makes gpsrinex print its version and exit.
81
82 The following options set strings that are placed in the generated
83 RINEX 3 obs file. They do not change how gpsrinex computes anything.
84
85 --agency AGENCY
86 The name of the agency creating the current file.
87
88 --ant_num NUMBER
89 The antenna serial number.
90
91 --ant_type TYPE
92 The antenna type.
93
94 --marker_name NAME
95 The marker name.
96
97 --marker_type TYPE
98 The marker type
99
100 --observer OBSERVER
101 The name of the observer (you).
102
103 --rec_num NUM
104 The receiver serial number.
105
106 --rec_type TYPE
107 The receiver type.
108
109 --rec_vers VERS
110 The receiver version.
111
112 The following options set floating point numbers that are placed in the
113 generated RINEX 3 obs file. They do not change how gpsrinex computes
114 anything.
115
116 --ant_e EASTING
117 The antenna easting from marker in meters.
118
119 --ant_h HEIGHT
120 The antenna height from marker in meters.
121
122 --ant_n NORTHING
123 The antenna northing from marker in meters.
124
126 By default, clients collect data from the local gpsd daemon running on
127 localhost, using the default GPSD port 2947. The optional argument to
128 any client may override this behavior: [server[:port[:device]]]
129
130 For further explanation, and examples, see the ARGUMENTS section in the
131 gps(1) man page
132
134 Example 1:
135
136 Create a 4 hour .obs file. With a running gpsd accessible on the
137 localhost do all of the following, in order. Order matters.
138
139 The raw measurement messages are long. Be sure your serial port speed
140 is high enough:
141
142 gpsctl -s 115200
143
144 Disable all NMEA messages, and enable binary messages:
145
146 ubxtool -d NMEA
147 ubxtool -e BINARY
148
149 The NEO-M8N will only reliably output raw measurements when only the
150 GPS and QZSS constellations are enabled. If your PPP service can use
151 GLONASS, then enable that as well. Be sure to disable, before enable,
152 so as not to momentarily have too many constellations selected.
153 ubxtool, as recommended by u-blox, enables the QZSS constellation in
154 tandem with GPS. Disable all constellations, except GPS (and QZSS):
155
156 ubxtool -d BEIDOU
157 ubxtool -d GALILEO
158 ubxtool -d GLONASS
159 ubxtool -d SBAS
160 ubxtool -e GPS
161
162 Verify the constellations enabled:
163
164 ubxtool -p CFG-GNSS
165
166 Enable the good stuff, the raw measurement messages:
167
168 ubxtool -e RAWX
169
170 Verify raw data messages are being sent:
171
172 ubxtool | fgrep RAWX
173
174 You should see this output:
175
176 UBX-RXM-RAWX:
177 UBX-RXM-RAWX:
178
179 Collect 4 hours of samples at 30 second intervals, save the RINEX 3
180 observations in the file today.obs:
181
182 gpsrinex -i 30 -n 480 -f today.obs
183
184 Wait 4 hours. Enjoy a meal, or do some exercise. When gpsrinex
185 finishes, upload the file today.obs to your favorite PPP service.
186
187 Example 2:
188
189 Collect raw measurement data from a remote gpsd. Then process it later
190 with gpsrinex and gpsprof.
191
192 Ensure the receiver is configured properly, as shown in Example 1.
193
194 Grab 4 hours of raw live data from remote gpsd at 10.168.1.2:
195
196 gpspipe -x 14400 -R 10.168.1.2 > 4h-raw.ubx
197
198 When gpspipe is complete, feed the data to gpsfake:
199
200 gpsfake -1 -P 3000 4h-raw.ubx
201
202 In another window, feed the data to gpsrinex. Use -n 10000000 so that
203 all the data from the raw file is used:
204
205 gpsrinex -i 30 -n 1000000 :3000
206
207 Repeat the process with gpsfake to send the data to gpsprof.
208
210 0
211 on success.
212
213 1
214 on failure
215
217 One service known to work with gbsrinex output is at:
218 https://webapp.geod.nrcan.gc.ca/geod/tools-outils/ppp.php
219
220 OPUS requires 2 frequency observation files.
221 https://www.ngs.noaa.gov/OPUS/
222
223 The curious can find the RINEX 3.04 format described here:
224 ftp://igs.org/pub/data/format/rinex304.pdf
225
226 gpsd(8), gps(1), gpsprof(1), gpsfake(1). ubxtool(1)
227
229 Project web site: https://gpsd.io/
230
232 This file is Copyright 2013 by the GPSD project
233 SPDX-License-Identifier: BSD-2-clause
234
236 Gary E. Miller
237
238
239
240GPSD, Version 3.23.1 2021-09-03 GPSRINEX(1)