diff options
Diffstat (limited to 'man/gpsrinex.xml')
-rw-r--r-- | man/gpsrinex.xml | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/man/gpsrinex.xml b/man/gpsrinex.xml new file mode 100644 index 00000000..59632f5a --- /dev/null +++ b/man/gpsrinex.xml @@ -0,0 +1,195 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> +<!-- +This file is Copyright (c) 2018 by the GPSD project +SPDX-License-Identifier: BSD-2-clause +--><refentry id="gpsrinex.1"> + <refentryinfo> + <date>09 Nov 2018</date> + </refentryinfo> + <refmeta> + <refentrytitle>gpsrinex</refentrytitle> + <manvolnum>1</manvolnum> + <refmiscinfo class="source">The GPSD Project</refmiscinfo> + <refmiscinfo class="manual">GPSD Documentation</refmiscinfo> + </refmeta> + <refnamediv id="name"> + <refname>gpsrinex</refname> + <refpurpose>Read data from gpsd convert to RINEX3 and save to a file.</refpurpose> + </refnamediv> + <refsynopsisdiv id="synopsis"> + <cmdsynopsis> + <command>gpsrinex</command> + <arg choice="opt">-D <replaceable>debuglevel</replaceable></arg> + <arg choice="opt">-f <replaceable>filename</replaceable></arg> + <arg choice="opt">-h</arg> + <arg choice="opt">-i <replaceable>interval</replaceable></arg> + <arg choice="opt">-n <replaceable>count</replaceable></arg> + <arg choice="opt">-V</arg> + <group> + <replaceable>server</replaceable> + <group> + <replaceable>:port</replaceable> + <group> + <replaceable>:device</replaceable> + </group> + </group> + </group> + </cmdsynopsis> + </refsynopsisdiv> + <refsect1 id="description"> + <title>DESCRIPTION</title> + <para> + <application>gpsrinex</application> is a tool to connect to +<application>gpsd</application> and output the received raw measurements +as a RINEX 3 observation file. This is useful for sending raw measurements +(pseudorange and carrierphase) from <application>gpsd</application> to +a Precise Point Positioning (PPP) program or service.</para> + <para> + <application>gpsrinex</application> does not require root +privileges, and can be run concurrently with other tools connecting +to a local or remote <application>gpsd</application> without causing +problems.</para> + <para>gpsrinex needs the GPS receiver to be sending raw measurements +to <application>gpsd</application>. Only a few GPS have this capability. +In addition, the <application>gpsd</application> driver for that GPS +must support raw mode. Currently only the u-blox driver has this support. +Only a few u-blox 8 GPS implment the required UBX-RXM-RAWX message. The +NEO-M8T is known to work, but requires configuration with +<application>ubxtool</application>.</para> + <para>RINEX has its own definitions and abbreviations. Be +sure to consult their documentation. An observation file (.obs) +contains data sets, called epochs, that contain the pseudorange +and carrierphase for each satellite seen.</para> + <para> + <application>gpsrinex</application> by default will acquire +20 epochs spaced apart by 30 seconds. That will take 10 minutes to +complete. Most users consider the 30 second interval to be optimal. +Many PPP programs require at least 1 or 2 hours data, but no more than +24 or 48 hours of data. Most users consider 4 to 6 hours of data +as a minimum for good accuracy. Additional hours will not yield much +improvement. </para> + <para>The output will consist of one RINEX 3 observation file that +is ready to be read by your PPP program. The default filename will be +in the form: gpsrinexYYYYJJJHHMMSS.obs. You can override this filename +with the -f option.</para> + <para>Optionally a server, TCP/IP port number and remote device can +be given. If omitted, <application>gpsrinex</application> connects to +localhost on the default port (2947) and watches all devices opened by +<application>gpsd</application>.</para> + </refsect1> + <refsect1 id="options"> + <title>OPTIONS</title> + <para>-D [debuglevel] set debug level to [debuglevel].</para> + <para>-f [filename] save RINEX into [filename].</para> + <para>-h makes <application>gpsrinex</application> print +a usage message and exit.</para> + <para>-i [interval] wait [interval] seconds between epochs. OPUS +accepts intervals of 1, 2, 3, 5, 10, 15 or,30 seconds. OPUS then +reduces the data to 30 second intervals.</para> + <para>-n [count] causes [count] epochs to be output. OPUS requires a +minimum af 15 minutes, and a maximum of 48 hours, of data.</para> + <para>-V makes <application>gpsrinex</application> print +its version and exit.</para> + </refsect1> + <refsect1 id="exampletitle"> + <title>EXAMPLES</title> + <para>Example 1:</para> + <para>Create a 4 hour .obs file. With a running +<application>gpsd</application> accessible on the localhost do all of +the following, in order. Order matters.</para> + <para>The raw measurement messages are long. Be sure your serial port +speed is high enough: +<programlisting> +gpsctl -s 115200 +</programlisting></para> + <para>Disable all NMEA messages, and enable binary messages: +<programlisting> +ubxtool -d NMEA +ubxtool -e BINARY +</programlisting></para> + <para>The NEO-M8N will only reliably output raw measurements +when only the GPS and QZSS constellations are enabled. +<application>ubxtool</application>, as recommended by u-blox, enables +the QZSS constellation in tandem with GPS. Disable all constellations, +except GPS (and QZSS): + +<programlisting> +ubxtool -d GLONASS +ubxtool -d BEIDOU +ubxtool -d GALILEO +ubxtool -d SBAS +ubxtool -e GPS +</programlisting></para> + <para>Verify the constellations enabled: +<programlisting> +ubxtool -p GNSS +</programlisting></para> + <para>Enable the good stuff, the raw measurement messages: +<programlisting> +ubxtool -e RAWX +</programlisting></para> + <para>Verify raw data messages are being sent: +<programlisting> +ubxtool | fgrep RAWX +</programlisting> +You should see this output: +<programlisting> +UBX-RXM-RAWX: +UBX-RXM-RAWX: +</programlisting></para> + <para>Collect 4 hours of samples at 30 second intervals, save then +RINEX 3 observations in the file today.obs: +<programlisting> +gpsrinex -i 30 -n 480 -f today.obs +</programlisting></para> + <para>Wait 4 hours. Enjoy a meal, or do some exercise. When +<application>gpsrinex</application> finishes, upload the file today.obs +to your favorite PPP service.</para> + <para>Example 2:</para> + <para>Collect raw masurement data from a remote gpsd. The +process it later with <application>gpsrinex</application> and +<application>gpsprof</application>.</para> + <para>Ensure the GPS is configured properly, as shown in Example 1.</para> + <para>Grab 4 hours of raw live data from remote +<application>gpsd</application> at 10.168.1.2: +<programlisting> +gpspipe -x 14400 -R 10.168.1.2 > 4h-raw.ubx +</programlisting></para> + <para>When <application>gpspipe</application> is complete, feed the +data to <application>gpsfake</application>: +<programlisting> +gpsfake -1 -P 3000 4h-raw.ubx +</programlisting></para> + <para>In another window, feed the data to +<application>gpsrinex</application>. Use -n 10000000 so that +all the data from the raw file is used:: +<programlisting> +gpsrinex -i 30 -n 1000000 +</programlisting></para> + <para>Repeat the process with +<application>gpsfake</application> to send the data to +<application>gpsprof</application>.</para> + </refsect1> + <refsect1 id="see_also"> + <title>SEE ALSO</title> + <para>One service known to work with obsrinex output is at: +https://webapp.geod.nrcan.gc.ca/geod/tools-outils/ppp.php</para> + <para>OPUS requires 2 frequency observation files. +https://www.ngs.noaa.gov/OPUS/</para> + <para>The curious can find the RINEX 3.03 format described here: +ftp://igs.org/pub/data/format/rinex303_update1.pdf</para> + <para> + <citerefentry> + <refentrytitle>gpsd</refentrytitle> + <manvolnum>8</manvolnum> + </citerefentry>, +<citerefentry><refentrytitle>gpsfake</refentrytitle><manvolnum>1</manvolnum></citerefentry>, +<citerefentry><refentrytitle>ubxtool</refentrytitle><manvolnum>1</manvolnum></citerefentry>. +</para> + </refsect1> + <refsect1 id="maintainer"> + <title>AUTHOR</title> + <para>Gary E. Miller <email>gem@rellim.com</email>.</para> + </refsect1> +</refentry> |