Skip to main content

PyPI version Docs badge License

DBDREADER

Synopsis

Slocum ocean gliders are autonomous underwater vehicles, used for making oceanographic measurements. The data that these devices and their sensors collect, are stored in binary data files. The python module dbdreader provides the utilities to extract the data from the binary files, so that they can be further analysed.

Change log

Version 0.6.2

  • Builds wheels for python versions 3.10 -- 3.14, including macos
  • Removes the get_list() method from the DBD class
  • Adds CI tests for all platforms (contributed by jklymak).
  • Typehinting introduced

Version 0.6.1

  • Drops dependency on scipy.

Version 0.6.0

  • Offers a python-only implementation, alongside the C-extension to read the binary files. At the expense of processing speed, no compiler is required to use this package. Python-only code contributed by jklymak.

  • A github workflow is implemented that generates pre-compiled wheels for linux and windows platforms for python version 3.10, 3.11, 3.12 and 3.13.

  • Some speed improvements of the C-extenstion

version 0.5.9

  • Handles reading errors that can occur when a compressed file turns out to be corrupted.

version 0.5.8

  • Changes default location for cache files on linux from $HOME/.dbdreader to $HOME/.local/share/dbdreader

  • Introduces new class DBDCache to manage the location where cache files are looked up. Constructing an object with an arguments (re-)sets a default path, avoiding the need to use the keyword cacheDir when creating objects of DBD and MultiDBD classes.

  • Fixes an issue with MultiDBD when a parameter is requested that is not present in all files, but in at least one. The get() method returns just those data that are present. In case of get_sync and friends, data are interpolated if possible, or padded with nans.

Version 0.5.7

  • Drops dependency on python 3.10+, introduced in 0.5.6, and should work still with python 3.9.

Version 0.5.6

  • Moves data directory under dbdreader, making these files accessible after an pip install

Version 0.5.5

  • Makes MultiDBD's get_CTD_sync method compatible with RBR CTD data.

Version 0.5.4

  • Adds support for reading compressed data files for windows platform.
  • Improved building environment

Version 0.5.1

  • Adds support for reading compressed data files
  • dbdrename now accepts -x and -X options to rename compressed data files as uncompressed data files

Version 0.4.15

  • Modifies sorting key algorithm to the DBDList class. This fixes a bug when glider data filenames are composed of a glider name that contains a dash. For example, filenames such as hereon-amadeus-2019-3-1.sbd would fail, but are valid now.

Version 0.4.14

  • Adds a new option to the get() method of the MultiDBD class, where if the keyword include_sources=True, for each parameter an additional list is returned that has for each data point a reference to the DBD instance that produced the data point. This allows to query the source of a specific data point.

    This merges the (modified) pull request #14 by MCazaly.

Version 0.4.13

  • Modifies behaviour when the user requests a parameter that has no data. If the requested parameter is not a valid glider sensor name, assume a user-error and raise an exception, otherwise return an empty array.

    This behaviour fixes a bug for MultiDBD: each file opened with MultiDBD would fail to produce any data if one or more parameters that are asked for, are not present in the file.

    New behaviour returns data for the exisiting parameters (only); empty array for the missing parameters (or nans if return_nans=True)

    Concludes pull request #16 by jklymak.

Version 0.4.12

  • PatternSelect now accepts the option of a non-standard cache directory. Thanks to hawesie.

  • MultiDBD's get_sync() now returns nan's for those parameters for which no data exist, provided that at least one of the requested parameters contains data.

Version 0.4.11

  • Version 0.4.9 introduced a bug that in some rare circumstances caused segmentation faults. This has been fixed.

  • Merged pull request by roje-bodc with improved error handling in case of missing cache files. If a DbdError occurs due to a missing cache file, detailed information can be obtained from the .data property of the exception instance.

Version 0.4.10

  • Includes pull request by jklymak, which allows dbdreader to deal with empty files, and files capitalised file extensions, as well as a check on the encoding version.

  • Includes a bug fix when raising an exception when handling a prior exception in case of reading problematic files.

  • Assumes that if the first parameter given to MultiDBD is a string, the user did not mean to provide a list of filename strings, but a pattern. An error is raised if pattern is specified explicitly when filenames is given as a string.

Version 0.4.9

  • Bug fix for handling inf values correctly (issue #8). Thanks to jr3cermak for spotting this bug.
  • Bug fix for incorrect behaviour when reading the time parameter explicitly for example xxx.get("m_present_time").

Version 0.4.8

  • Support for reading {demnst}bd files from G3S gliders (issue #6). (Thanks to Owain Jones)

  • Bug fix for correctly throwing an exception when cache file is missing(issue #5)

Version 0.4.7

  • Bug fix for reading dbd files on Windows.

  • a wheel provided for CPython 3.9 on Windows 64 bit.

Version 0.4.6

  • Added get_CTD_sync, a convenience method to retrieve CTD data, and other parameters mapped on the CTD time stamps. Also ensures time stamps are monotonically increasing.

  • Adds bounds to what values of latitude and longitude are considered valid.

Version 0.4.5

  • dbdreader now ignores the first line of data in each binary file

  • dbdreader checks whether the value of the parameters read are finite, ignoring them if they are not.

Installation (linux)

The python module dbdreader can be installed from source, using the standard method to install python code. Note that this method requires an C-extension to be build. (The actual reading from files is done in C for speed.) In order to build the extension successfully, you would need a C-compiler. On Linux, this can be gcc, with supporting development/header files for python. On Fedora you would do sudo dnf install python3-devel, or sudo apt-get install python3-dev on Ubuntu.

Furthermore, as of version 0.5, which adds support for reading compressed files, a dependency on the lz4 library is introduced. If available, the system-wide library will be used (recommended approach). Alternatively, the lz4.[ch] files from the original source (https://github.com/lz4/lz4), and included in this package, will be compiled into the C-extension. To install the system-wide lz4 library on Fedora you would do sudo dnf install lz4-devel lz4-libs. On Ubuntu this can be achieved by sudo apt-get install liblz4-dev liblz4-1.

Alternatively, dbdreader can also be installed from PyPi, using pip3 install dbdreader.

Installation on Windows

If you want to install dbdreader from source, you will need a C compiler as well to compile the C-extension. Besides the Python environment you will need to install the Microsoft Visual Studio Compiler. The community edition will do. When installing MVSC, make sure you tick the box python development during the setup. Once installed dbdreader can be installed, and the C-extension should be compiled automatically.

Installiation using pip, for example as in py -m pip install dbdreader also requires the C compiler. For Python version 3.9, however, a wheel is provided, which can be installed adding the option --only-binary :all: to the pip command:

$ pip install --only-binary :all: dbdreader

Documentation

Comprehensive documentation is provided at https://dbdreader.readthedocs.io/en/latest/

Quick-start

For the impatient...

The dbdreader module implements a class DBD() which provides the machinery to read a single dbd file. The most commonly used methods are:

  • get(parametername)
  • get_sync(parametername, *other_parameternames)

The first method returs a tuple with time and values for requested parameter. The second method, returns a tuple with time and values of the first parameter requested, and of all further listed parameters, all interpolated on the time base of the first parameter.

Mostly, it is not one file that is required to be processed, but a number of them. This interface is implemented by the MultiDBD class. Files can either be specified as a list of filenames, or as a pattern using wildcards.

Examples

To read a single file:

>>> dbd = DBD("00010010.dbd")
>>> t, pitch = dbd.get("m_pitch")
>>> t, hdg, ptch, roll = dbd.get_sync("m_heading", "m_pitch", "m_roll")

Or, doing the same, but using both dbd and ebd files:

>>> dbd = DBD(pattern="00010010.[de]bd")
>>> t, pitch = dbd.get("m_pitch")
>>> t, hdg, ptch, roll = dbd.get_sync("m_heading", "m_pitch", "m_roll")
>>> t, p_ctd, p_nav = dbd.get_sync("sci_water_pressure", "m_water_pressure")

Python 2

Python 2.7 is not supported anymore. However, you should be able to make the code able to run on python2.7 using the future package.

  • pip install future
  • pasteurize dbdreader.

For details see http://python-future.org/pasteurize.html.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dbdreader-0.6.2.tar.gz (2.0 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

dbdreader-0.6.2-cp313-cp313-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.13Windows x86-64

dbdreader-0.6.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

dbdreader-0.6.2-cp313-cp313-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

dbdreader-0.6.2-cp312-cp312-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.12Windows x86-64

dbdreader-0.6.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

dbdreader-0.6.2-cp312-cp312-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

dbdreader-0.6.2-cp311-cp311-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.11Windows x86-64

dbdreader-0.6.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

dbdreader-0.6.2-cp311-cp311-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

dbdreader-0.6.2-cp310-cp310-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.10Windows x86-64

dbdreader-0.6.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

dbdreader-0.6.2-cp310-cp310-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file dbdreader-0.6.2.tar.gz.

File metadata

  • Download URL: dbdreader-0.6.2.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dbdreader-0.6.2.tar.gz
Algorithm Hash digest
SHA256 8688ca85b2d58abcf4f0a7651ff83b6595d47b1f8fe63bb0a2bf52d8825ad3f8
MD5 268f28dae148200160c9b37e794f84e2
BLAKE2b-256 0e2a5fdb600d94b601b1aaab6295b305e39c26bec178c186ccafbfb27263b4de

See more details on using hashes here.

File details

Details for the file dbdreader-0.6.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: dbdreader-0.6.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dbdreader-0.6.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 0c3b6278d0bd7d61a844fe8fd22099decf40cb67d8fb4f17fbb4bff4b83c71c3
MD5 4771f109e927a3667c322cdc04452262
BLAKE2b-256 a21058dbd981b71cc765d1ea08a89e0039ed084e15fd262f3fd25e85b73d3ad9

See more details on using hashes here.

File details

Details for the file dbdreader-0.6.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dbdreader-0.6.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 66df528ecf7fc1beee033a73ad9f63e778e6f978821da4e13de51ff9e45379a2
MD5 c77291c6ad44b443f30c2371af2508f2
BLAKE2b-256 00054aab93e260a911d39dc7cef899cbae536d6b780a98f07ae4601041a041ef

See more details on using hashes here.

File details

Details for the file dbdreader-0.6.2-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dbdreader-0.6.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f90021ad7ebc2d82c1d3e5a37824adf2e132137dde8795c6f7f1631275b2a9ae
MD5 9026794a308757324605da1108af656e
BLAKE2b-256 13196186103db80f1ac5a5ff3dacc6af9d00bdda36fab1918b02bbc85ad7a094

See more details on using hashes here.

File details

Details for the file dbdreader-0.6.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: dbdreader-0.6.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dbdreader-0.6.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8fcc8dff51d154a129029573646ac7492bb853abbcb9ad59923b8cee6ff4014e
MD5 32fe73eafafcf172fae7745c5641340c
BLAKE2b-256 00bc1434c498b1fe7849e7e9e2035aae9d8c50015709607b19df60b0e1984f76

See more details on using hashes here.

File details

Details for the file dbdreader-0.6.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dbdreader-0.6.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 153713451f53f063f5576a382bc89c32b451ec6ee9bad4727d2d96a6ac8fb034
MD5 ade1fa99059835d63a72ab70f682d3af
BLAKE2b-256 96ebbe660cbb035ecea19cab7fa0e9c15b255e3aa74f4585150ec0b42443925c

See more details on using hashes here.

File details

Details for the file dbdreader-0.6.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dbdreader-0.6.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fade25b9abe36c56e6270bb41010e4a4caaab037c701f2be03ca969030c79260
MD5 7f4d72f856e4777a1eb9eeb325d484bf
BLAKE2b-256 ac61dae8f4c4988b8a5b41a709b03052c804ef80ab9caa0c4337dcb4c8abdc29

See more details on using hashes here.

File details

Details for the file dbdreader-0.6.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: dbdreader-0.6.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dbdreader-0.6.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5ed6203b1f1fad3fff839e04741bfaba41b1ea9a9759fd5b4846b36072bf783e
MD5 8957ae19745fd6a9940c8b19f433ec03
BLAKE2b-256 d992ca685b0d4b6a2336460bc8fc86fd234aecdef6d2576d8797334046eb5cdf

See more details on using hashes here.

File details

Details for the file dbdreader-0.6.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dbdreader-0.6.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 393f24b3743b7958a7e14588cc8616db863c5668abe25c339ba34928b6723513
MD5 a3e11a3a74a377fa8646a4d758b897bf
BLAKE2b-256 28d786eac7531e20a207acb2704bf36b57ada21f8c068ecb9b0b524d153a63b5

See more details on using hashes here.

File details

Details for the file dbdreader-0.6.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dbdreader-0.6.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 771ac641dbfb8aefaa4b549bc787f88d57392ce298264b150c28690585d6c47c
MD5 5e2448335ab2a44212efe3607bbb461b
BLAKE2b-256 fe03196ac17c9ab1ce846c390bf797f9b3d0494f0cffe95cc034171c2cefdc18

See more details on using hashes here.

File details

Details for the file dbdreader-0.6.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: dbdreader-0.6.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.8 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dbdreader-0.6.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 cc989d14397fc86ba2827e73c0cd5486bd946499fc9851061517cb5741908478
MD5 2a7ef133d838f4a26c76f4c466e90bdc
BLAKE2b-256 0195a733acbb4cf2d3a419b13dd4948b3f75fb1a0355bb83b40176187b306d9e

See more details on using hashes here.

File details

Details for the file dbdreader-0.6.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dbdreader-0.6.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 956550eb0140cad6f4b0cff947655a75b457c8bd799db8a955f71600a5f9a7e7
MD5 8ecb3c1f666bdafd1858b9a5500bbef5
BLAKE2b-256 bd723e572985c85b0b92aecb595ad9d421d72c45c238f5571ed33d0cd1cedafc

See more details on using hashes here.

File details

Details for the file dbdreader-0.6.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dbdreader-0.6.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 37f941bedce372af55e6659bcd89a27757811f7e74f999235e0440ad647b452f
MD5 2c5c970b28b3dbeeedad299dfcf41305
BLAKE2b-256 c9ccbf60b3d0987b74294922084d91f16682ec8126edb133627ba4ef07bddf02

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page