Transferring GPS data
This page covers Garmin data transfers. If you have a DeLorme PN series handheld you should go to the DeLorme PN-40 page.
The objective here is to get data collected in a GPS into a format usable in GIS, typically a shapefile. Usually I try to keep the GPS data in a raw format, WGS84 latlon and then after I transfer it into the shapefile, I use ArcToolbox Project tool to put it into the format needed by the current project.
I used to prefer DNR Garmin until recently. Now I use a laptop with no serial port, and Windows applications that don't know about USB<->Serial adapters just plain don't work sometimes.
So lately I have been using a Linux desktop and gpsbabel to transter data. I find gpsbabel to be very flexible and fast compared to a hodge-podge collection of freeware programs and ArcMap.
GPSBabel converts waypoints, tracks, and routes from one format to another, whether that format is a common mapping format like Delorme, Streets and Trips, or even a serial upload or download to a GPS unit such as those from Garmin and Magellan.
DNR Garmin extension
The DNR Garmin Extension program works quite well with ArcMap 8.x and 9.x. It will write shapefiles directly if you have ArcMap running but it can also run standalone and write text files if you don't.
DNR Garmin Extension and other potentially useful tools are available from http://www.dnr.state.mn.us/mis/gis/tools/arcview/extensions.html
A manual for DNR Garmin produced by Forest Service: ftp://ftp-fc.sc.egov.usda.gov/NCGC/products/gps/software/dnr-garmin5-arcmap.pdf
I have used Garmin Mapsource to do data transfers. You can download data from a Garmin using Mapsource, then you can save the data out in DXF format. Then you can import the DXF data using ArcToolbox. I would not run out and buy a copy of Mapsource just to do transfers, DNR Garmin is far better and it is free.
Mapsource will export in GPX format. GPX is XML so it's easy to parse in Python. The problem is that Garmin only exports date, latlon, elev. It drops other interesting bits like speed and bearing. (Not to mention failing entirely to log things like sats and PDOP but that's another story)
If I pull the data in from the handheld and save it in the Mapsource GDB file then I can still process it with gpsbabel.
How's this do, I wonder?
gpsbabel -t -i mapsourcefile.gdb -o exportedfile.gpx
GARNIX is a communication program that provides data interface between MS-DOS/Windows/Linux computers and a GARMIN GPS device
gpsd data collector