Davies - Python Compass Survey Data Library

Techniques, equipment and issues. Also visit the NSS Survey & Cartography Section.

Moderator: Moderators

Davies - Python Compass Survey Data Library

Postby driggs » Feb 3, 2015 1:12 pm

Like many of you (??), I've written lots of small scripts over the years for querying or manipulating Compass cave survey data. As my needs progressed beyond simple shell pipelines to tasks like creating time-series geospatial reports, these scripts grew into a full-blown Python language library.

I've made it available Freely under the open source MIT license. Davies, named in honor of William E. Davies, currently supports:

    * Reading .PRJ and .DAT files, including most features used by "compass and tape" dry cave surveys
    * Reading compiled (loop closed) .PLT files
    * Writing .DAT files

If you don't know what "Python" means, then this library probably isn't for you. :-)

But, if you're looking for a way to run advanced queries on your Compass data... or batch modify a large pile of survey data... or do custom 3D visualizations... or process cave data inside ArcGIS or QGIS... or write a native Mac/Linux Compass editor (see examples folder)... or write a masters thesis by applying graph theory to a cave system... or build an autonomous cave survey robot from a RaspberryPi... you may find Davies helpful!

The source code lives at:


Online documentation is at:


Davies requires Python 2.7 (test cases appear to run correctly on Python 3, but examples are written with Python 2 syntax). Provided you've got a working Python 2.7 installation, you can probably install it with:

Code: Select all
$> pip install davies


Code: Select all
$> easy_install davies

The 'examples' folder contains a few example query scripts, as well as "toy" GUI clients written with the Tk or WxWidgets toolkits. The most efficient way to get a feel for the API is to skim the bulk of the code in 'davies.compass.__init__.py'.

Any feedback, bug reports, or feature suggestions are welcome. It was written to "scratch my own itch", but I hope it can help others out as well. As the low version number implies, the code doesn't support everything, may eat your data for breakfast, and the API is certain to change in breaking ways in the future. I'm likely to add PocketTopo and Walls support to the library eventually, and will then factor the code such that they've got a common API.

Please feel free to use this CaveChat thread as the "official" discussion/help/bug report list for Davies. I'll update here when there are new releases or flashy examples.
User avatar
NSS Hall Of Fame Poster
Posts: 495
Joined: Sep 12, 2005 9:40 pm
Location: State of Jefferson
Name: David A. Riggs
NSS #: 56189
Primary Grotto Affiliation: Monongahela

Return to Survey and Cartography Forum

Who is online

Users browsing this forum: No registered users