Page 1 of 1

Davies - Python Compass Survey Data Library

PostPosted: Feb 3, 2015 1:12 pm
by driggs
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:

https://github.com/riggsd/davies

Online documentation is at:

http://davies.readthedocs.org


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


or

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.