From: Chris K. <cha...@gm...> - 2013-05-23 22:46:21
|
Hi there, I'm a PhD student studying battery chemistry at the University of Cambridge, and I use mdbtools to extract data from the JetDB-based log format produced by Arbin Instruments battery test stations. (As is often the case with research hardware, the closed-source vendor-provided tool is buggy and runs only on Windows.) Since there is currently no maintainer for mdbtools on the Gentoo Linux distribution, I wrote my own ebuild for mdbtools-0.7 and have volunteered to be the mdbtools maintainer from now on. Hopefully mdbtools-0.7 should be in the main Portage tree in the next few days. I've signed up to this mailing list and am following mdbtools on GitHub - please let me know if there is any other source of info I should be following. I do almost all my data processing in Python; currently to extract the data I run mdb-export via subprocess.Popen and pass the INSERT statements directly into a temporary sqlite3 database, then query the sqlite3 database for the data I need. Recently I've been having a quick look at the source code and I think I could knock together a Python binding that would support the very limited subset of operations I need relatively quickly. Searching online for Python MDB bindings seems only to give bindings for the Windows Jet DB API, but I thought I'd ask if anyone knows of anything I've missed, or has any suggestions on where to start. (I've only ever used F2Py to make bindings to Fortran code before, but I don't think it's the right solution for libmdb because of the heavy use of pointers.) The format of the databases I'm using is basically a dozen or so relatively complicated tables with only a few rows each holding metadata and so on, plus one table holding the actual data (all columns are integers or floats). What I want to be able to do is read out the metadata tables into something similar to the sqlite3.Row object, and read the data table into a NumPy array. Thanks for all the work you've done developing this code; it's been very helpful! Chris |