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