[GRASSLIST:1755] Re: GPS connectivity for GRASS GIS (Andreas.C.Lange)
hamish_nospam at yahoo.com
Thu Nov 13 09:02:17 EST 2003
> I haven't seen Andreas' paper, but it is feasible to run grass queries
> from an extrernal program. I have a small program in C++ which just
> reads the GPS data (NMEA) from gpsd (the problem is there are many
> different gpsd programs, not necessarily compatible) and runs grass
> queries (I am not really doing an end-user navigation tool, so I don't
> really have much to display).
I have written a GRASS 5.3+ module in C for use with gpsd[*] for both
logging and plotting to the screen from NMEA statement input. The
logging part works pretty well, the plotting to the screen part is a bit
slow with how I am using the default XDRIVER; but it does work. (plots
track; current position; trend arrow (i.e. where you will be in 20
minutes); raster value at current position; gps position & status at
bottom of screen; etc).
Note this is pretty much alpha code, I just wanted to get something out
there before heading off to sea for a few weeks. It works well enough
though. Improvements are very welcome, but don't bother bugging me for
support until next month..
The included 'fetch_gps.c' library is independent of GRASS and should be
useful to other projects that use gpsd.
[*] from http://www.pygps.org/gpsd/gpsd.html
Will require version 1.11 when it is released. Right now get v1.10 & use
Other flavors of gpsd:
- gpsdrive uses a modified version of this gpsd. Unfortunately,
improvements were never merged back into the original, and now they are
possibly too far apart to reconcile.
- http://gpsd.sf.net is a totally different program.
> I haven't had success with importing tracks/points with any of the
> popular tools (gpstrans?) from our Garmin V, mostly since names get
> mangled, so I download under Windows and import as DXF.
gpstrans works great for me. Note I've recently updated 5.3's
s.in.garmin.sh to optionally transform the gps position data into the
current location's projection automatically. v.in.garmin.sh still needs
some work for this functionality (I've got it working locally, but it
isn't pretty.. need to learn more Bash scripting & GNU tools).
More information about the grass-user