APRS-to-XML Interface
This script provides an XML interface to aprsworld.net, so you don't need to have direct access to the aprsworld or findu databases, or know SQL, in order to get generalized and standardly formatted APRS data directly from the Internet into your application. Free code libraries for parsing XML are easy to find for almost any programming environment.

As new minor versions of this script are made available, they will reside in their own directory containing the version number, so you can safely link to a script without future upgrade changes affecting anything. (bugfix-level versions will not have their own directory)

The data is provided by aprsworld.net by Jim Jarvis KB0THN. APRS was created by, and is a trademark of, Bob Bruninga WB4APR.

- Brad N8QQ
Find a Station

This returns an XML document for the most recent packet from a station:

http://aprsearch.net/xml/1.3/report.cgi?call=n8qq

Try it ... Callsign:

You can also retrieve information for multiple stations at one time by providing multiple "call" arguments, such as: "report.cgi?call=n8qq&call=n8qq-2&call=n8qq-7"

Filter with XQL

You can filter results with XQL queries by adding the "xql" parameter. For instance, here's a weather station returning just the humidity:

http://aprsearch.net/xml/1.3/report.cgi?call=n8qq&xql=/station/weather/humidity

You can also set the "strip_tags" parameter to any non-zero value to return a plain text document with each value on its own line, without any xml tags, and in document order. For example:

http://aprsearch.net/xml/1.3/report.cgi?call=n8qq&xql=/station/weather/humidity&strip_tags=1

Try it ...

Callsign:

XQL Filter:

Strip XML tags



Please note that when using this form, you will see that special characters like the slash have been encoded in the URL. You can normally send bare slashes in the URL, but using the encoded characters is a better way to go.

The XQL part of this script has not been extensively tested yet, so let me know if you find any problems.
History

Version Date Notes
1.3.4 Jan 8, 2012 Moved configuration settings to a separate untracked configuration file. Added a sample config file. Removed database credentials from older versions. Dumped database. Initialized repo and added project to github.com.
1.3.3 Nov 04, 2007 Fixed problem where many stations were reporting incorrect status of off duty kenwood. Problem due to aprsworld storing many packets with a packet id of 0. Changed the key between tables to use combination of callsign and packet time. (Reported by John Will W5EJ and Tony Komljanec VE3TK)
1.3.2 May 22, 2005 Added dewpoint in Celsius and Fahrenheit.
1.3.1 May 13, 2005 Fixed rounding problems with kph to mph/knots conversions. Fixed null vs. zero problem with speed and wind speed. (reported by Dave Anderson K0RX)
1.3 May 04, 2005 Added the ability to get multiple calls in one URL. (Requested by Jon Josué K9JPJ)
1.2.1 Apr 18, 2005 Changed strip_tags to display a blank line in place of empty tags. (Requested by Rick Voris)
1.2 Apr 16, 2005 Added XQL interface. Added strip_tags parameter. (Requested by Tony Komljanec VE3TK)
1.1 Apr 04, 2004 Changed code to work with aprsworld instead of findU after the findU backup server went down.
1.0 Feb 26, 2004 Created findU-to-XML interface.
To Do
  • Scripts for getting multiple position and weather reports, like the findU-to-XML Interface.
  • Still need to break out some elements into other unit conversions.
  • Scripts for querying messages.
  • Scripts for finding stations near other stations, zip codes, etc.
  • Possibly a DTD or other schema. Although, maybe not.