Chris Kerr
2013-05-23 22:46:01 UTC
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
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