Package: gps3
Installation[sudo[-H]]pip[2|3] install gps3For example,sudo-Hpip3 install gps3for your default P3 installation.sudo pip2 install gps3for Python 2.7.gps3.pywill install at/usr/local/lib/python[3.5]/dist-packages/gps3/gps3.pygps3.py is a Python 2.7-3.5 GPSD interface (http://www.catb.org/gpsd) and
defaults to host=’127.0.0.1’, port=2947, gpsd_protocol=’json’ in two classes.GPSDSocketcreates a GPSD socket connection & request/retrieve GPSD output.DataStreamunpacks the streamed gpsd data into python dictionaries.These dictionaries are literated from the JSON data packet sent from the GPSD.from gps3 import gps3
gps_socket = gps3.GPSDSocket()
data_stream = gps3.DataStream()
gps_socket.connect()
gps_socket.watch()
for new_data in gps_socket:
    if new_data:
        data_stream.unpack(new_data)
        print('Altitude = ', data_stream.TPV['alt'])
        print('Latitude = ', data_stream.TPV['lat'])Consult Lines 147-ff for Attribute/Key possibilities.
orhttp://www.catb.org/gpsd/gpsd_json.htmlagps3.pyis installed at/usr/local/lib/python[3.5]/dist-packages/gps3/agps3.pyIt is functionally similar to gps.py, but literates object attributes rather than Python dictionaries.agps3.py is also a Python 2.7-3.5 GPSD interface (http://www.catb.org/gpsd) and
defaults to host=’127.0.0.1’, port=2947, gpsd_protocol=’json’ in two classes.GPSDSocketcreates a GPSD socket connection & request/retrieve GPSD output.DataStreamunpacks the streamed gpsd data into object attribute values.from gps3 import agps3
gps_socket = agps3.GPSDSocket()
data_stream = agps3.DataStream()
gps_socket.connect()
gps_socket.watch()
for new_data in gps_socket:
    if new_data:
        data_stream.unpack(new_data)
        print('Altitude = ', data_stream.alt)
        print('Latitude = ', data_stream.lat)Consult Lines 140-ff for Attribute-value possibilities.For a human experience, both versions have trivial showcase scripts, located at/usr/local/share/gps3/examples/agpsthreaded.pyis agps3prethreadedas a default daemon thread with all data exposed as attributes of the threaded data stream.from gps3.agps3threaded import AGPS3mechanism
agps_thread = AGPS3mechanism()  # Instantiate AGPS3 Mechanisms
agps_thread.stream_data()  # From localhost (), or other hosts, by example, (host='gps.ddns.net')
agps_thread.run_thread()  # Throttle time to sleep after an empty lookup, default '()' 0.2 two tenths of a second

while True:  # All data is available via instantiated thread data stream attribute.
    # line #140-ff of /usr/local/lib/python3.5/dist-packages/gps3/agps.py
    print('---------------------')
    print(                   agps_thread.data_stream.time)
    print('Lat:{}   '.format(agps_thread.data_stream.lat))
    print('Lon:{}   '.format(agps_thread.data_stream.lon))
    print('Speed:{} '.format(agps_thread.data_stream.speed))
    print('Course:{}'.format(agps_thread.data_stream.track))
    print('---------------------')
    sleep(60) # Sleep, or do other things for as long as you like.human.pyshowcases gps3.py,ahuman.pyshowcases agps3.pypython[X]/usr/local/share/gps3/examples/[a]human.py[-host][-port]or--helpfor list of commandline options.Toggle Lat/Lon form with ‘0’, ‘1’, ‘2’, ‘3’ for RAW, DDD, DMM, DMSToggle units with  ‘0’, ‘m’, ‘i’, ‘n’, for ‘raw’, Metric, Imperial, NauticalToggle between JSON and NMEA outputs with ‘j’ and ‘a’ respectively.Refresh the display of device information with ‘d’ to see the return after issuinggps3.misc.hertz(5)to change capable gps devices to 5HzQuit with ‘q’ or ‘^c’Likewise, both versions have trivial applications [a]gegps3.pythat creates a ‘live’ kml file(s) for Google Earth.python[X]/usr/local/share/gps3/examples/[a]gegps3.py(defaults)Scant documentation is in the respective file.Un-installation[sudo-H]pip[2|3] uninstall gps3For example,sudo-Hpip3 uninstall gps3for P3 installation.
Likewise, for Python 2.7sudo pip2 uninstall gps3Problems with installationUn-install using the method above andyto delete the old files, thensudo-Hpip[2|3] install--ignore-installedgps3This will bypass the cached version and fetch the most recenttypo-freeversion.Comments are always appreciated.