blankblank blank


Archive for July, 2009

One Final Look At GPS Positional Accuracy With SA Watch

In previous posts (one, two), I’ve compared GPS positional accuracy for a Garmin 60Cx handheld GPS unit and a Holux M-1000 Bluetooth unit and seem to have found that:

- The Garmin’s average position seem to be better, but the distribution in measured positions is large

- The Holux’s positions have a much tighter distribution, but the average is further off from the true position than the Garmin

Just for the heck of it, I took a look at results from both receivers with one more program that’s been around a while: SA Watch (shareware, $20; 30-day demo evaluation version available). SA stands for Selective Availability, the pre-2000 government policy of degrading GPS signal accuracy to non-military GPS receivers. The idea was that you could run SA Watch for a prolonged period of time, hours if not days, and the effects of SA would get cancelled out leaving you with a reasonably accurate position. SA is now turned off, but SA can still be used to evaluate the stability of a GPS-measured position, and calculate an average. While VisualGPS gives you an arithmetic and least-squares mean, SA Watch lets you calculate a mean weighted by the Dilution Of Precision, a measure of the amount of error in the position that’s due to GPS satellite geometry.

Here’s a plot of 119 positions measured by the Holux M-1000 GPS unit; the position grouping is pretty tight:

holuxsa

And a plot of  412 positions measured over the same time period by the Garmin:

garminsa

As with previous measurements, the distribution of Garmin positions is far larger than that of the Holux. Based on all this, I’d have to say that a single position from the Holux is likely to be more accurate than a single measurement from a Garmin, even if the Garmin’s average value is better. And for my applications, that’s what really matters; you may have a different requirement. If I get the time, I may do a similar analysis in the future from a different location, and see if the results are comparable.




Determining GPS Circular Error Of Probability (CEP)

In a previous post, I used the program VisualGPS to compare the positional accuracy of a Garmin 60Cx GPS receiver with a Holux M-1000 Bluetooth receiver, measured at a National Geodetic Survey marker of known position. The average position of the Garmin wound up being closer than that of the Holux, but the distribution of positions for the Garmin was far wider than that of the Holux. To compare the GPS receiver results another way, I measured positions from both units over the same period of time, then determined the Circular Error Or Probability (CEP) for both.

The CEP is determined by the number of points within a certain distance of a specific location as a percentage of the total number of points. So the CEP for 50% would be the distance within which half the points would lie closer to a specific location. The free program DNRGarmin can calculate the CEP from the following sets of point data:

Continue reading ‘Determining GPS Circular Error Of Probability (CEP)’




Evaluating GPS Receiver Accuracy With VisualGPS

The last post dealt with VisualGPS, a program that monitors NMEA GPS connections, plots measured positions as a function of time, lets you average those position measurements for improved accuracy. I took a laptop with VisualGPS and two GPS receivers out to a National Geodetic Survey benchmark with a well-defined position to see how well it works at position averaging, and to compare results from the two receivers.

Continue reading ‘Evaluating GPS Receiver Accuracy With VisualGPS’




Viewing And Analyzing NMEA GPS Data With VisualGPS

If you own an NMEA-capable GPS receiver, there are a substantial number of programs available for free that can monitor and display NMEA data. But my current program of choice is VisualGPS, because in addition to several commonly-found functions, it has one potentially very useful function that I haven’t found in any other similar program. Note: A version of VisualGPS with similar functionality is also available for Windows CE/Mobile devices.

After you’ve installed the Visual GPS program, started it up, and configured it to connect to your NMEA COM port (perhaps the one defined by XPort, described in yesterday’s post), you’ll have access to five function panels from the toolbar:

VGToolbar

From left to right:

Continue reading ‘Viewing And Analyzing NMEA GPS Data With VisualGPS’




Cheap, Easy And Ugly Custom GPS/PDA/Phone Mounts

The Applied PDA website has a how-to on creating a custom shock-proof mount for any small handheld device using Crayola’s Model Magic modeling compound. The prototype looks pretty ugly, but would probably look better with more work and a paint job:

custommount

Via Lifehacker.




Splitting A Single NMEA Serial GPS Connection Into Multiple Virtual NMEA Ports

If you have a GPS connected to your computer with a serial NMEA connection, either old-school (a hardwired serial port) or new-school (a wireless Bluetooth connection), the connection to the program you’re using to monitor the data is typically made through a single serial Windows COM port. Normally, if one program is accessing the NMEA data stream through this COM port, no other program can access that port at the same time; you’ll get an error message saying something like “Unable to open port” or “ “Port is already in use”. Which is a pain if you want to run multiple applications at the same time, and have each one receive the same GPS data. You could have multiple GPS receivers, each with its own COM port, but that can get expensive.

The donationware program XPort takes the input data from a single serial COM port, the one your NMEA GPS data is coming through, and lets you split the serial data stream between up to 8 user-designated COM ports. You can then have each application access a different COM port, so that at least  8 applications can receive, store, display, analyze, etc. the NMEA GPS data stream. And as it turns out, maybe even more than eight apps …

No installation required; just run the executable, and the program both puts an icon in the traybar, and opens up the program window:

XPort

Here, I’ve already configured the program to connect to my Bluetooth GPS on COM port 8, and with my auto-connect feature enabled, it started up the Bluetooth connection to the GPS receiver automatically. If you don’t have this capability, you may have to manually establish the Bluetooth link between your GPS receiver and its assigned COM port, which can be a real pain (more below). The default serial speed for NMEA is 4800 baud, but I’ve found that sometimes setting it higher (19200 in this case) can improve reliability; other times, it has to be set at 4800 or it won’t work. In this case, clicking on the “Enable Ports” button starts splitting the COM8 input between COM ports 1, 2, and 3. You can select any COM port numbers unassigned by your system from COM1 to COM255, but some applications only let you choose from a limited set of preset COM port numbers.

It’s probably safest to connect each program you have running to a separate COM port. By accident, though, I discovered that at least under some circumstances, you can have more than one program accessing a single COM port. Unlike system COM ports, XPort won’t block access to a COM port already opened by another program. For example, I’ve had as many as 5 programs accessing data through the COM2 port with no apparent problems. Not sure what the limitations are on this, and it’s probably best to have each program have its own unique COM port. But if you ever have to run more than 8 programs that require GPS data, it may be possible just by having two programs share the same COM port for data.

For the checkboxes:

  • NMEA Filter: Filters noise and unneeded data. Haven’t seen this making a difference with my receiver.
  • Battery Saver: Keeps the hardware serial port closed until you enable the virtual ports. If you have a Bluetooth GPS receiver, this may save on battery use by keeping the Bluetooth connection off until absolutely necessary.
  • Video Reset: Turns the display off and on to keep the monitor from going into blanking/power-saving mode

The tray icon also changes color depending on the status of the GPS connection:

  • Black=Not Connected
  • Cyan=Connected-No data
  • Red=Connected/No Fix
  • Yellow=2D Fix
  • Green=3D Fix

The download page has additional technical data.

If you have a Garmin GPS unit that connects to a computer only via USB, it uses a proprietary Garmin protocol that is not NMEA-compatible. For those units, you might want to consider the paid utility program GPSGate from Franson. Note: Haven’t tried it myself, but have heard from others who swear by it. For $12.95, the express version converts the USB Garmin protocol into one or two virtual NMEA ports; the more expensive standard version lets you add even more virtual ports. Other functions include a Google Earth GPS connection interface, a conversion of NMEA serial data to the Garmin proprietary serial protocol, and a direct connection function to Bluetooth GPS devices to simplify the task of establishing a link between your computer and the Bluetooth GPS receiver. In my case, I struggled unsuccessfully for a while to get the standard Windows XP Bluetooth interface to work correctly with my Bluetooth GPS receiver before giving up and using the BlueSoleil Bluetooth manager that came with my Bluetooth dongle; if you run into similar problems with your system, GPSGate might be able to help.




Creating A Thematic Map Using Just Excel

A video/demo tutorial on creating a thematic map using just Excel, no GIS or extra programs required. I’d rather use a GIS, but if you’re really comfortable with Excel, it’s worth a look. Note: Any time the video demo stops, it probably means it’s waiting for you to click on something on the screen, usually highlighted in blue.

excelthematic

HT to Askan Schmeisser.




Online Coordinate Conversion And EPSG Code Lookup

From Synectics Technical Consulting comes an Online Coordinate Reprojection System; requires installation of the Silverlight 2 platform, available for Windows/Mac/Linux. Single point conversion only, unfortunately. Select the input and output projections by clicking on the “…” button next to each setting (default is OSGB 1936 for input, WGS84 geographic for output), then enter the coordinates in the Source coords box at the left separated by a comma; multiple points can be converted by putting each set on a separate line. Make sure you’ve selected the right coordinate order for the source coordinates and destination coordinates; e.g.. the top setting (Easting,Northing) is typical for Mercator-based projections like OSGB, while the bottom is typical for geographic coordinates (lat/long):

coords

Click on “Transform”, and get the source coords re-projected; the input and output projection parameters will show up in the “Messages” box:

outputcoords

The “Swap” button swaps the input and output projection.

While probably not intended as such, you can also use this as a handy EPSG projection code lookup. Type an EPSG code into the box to the immediate right of “Projection In:” or “Projection Out:” , press the Tab key or click somewhere in the program window, and the projection corresponding to that entered code will show up to the right of it:

codelookup

If you have a projection and want the EPSG code, click on either of the “…” buttons and scroll through the list of projections; the EPSG code is conveniently listed next to each projection:

epsglookup

HT to Andrew Blake.