A Python package to download data from Databank Ondergrond Vlaanderen (DOV).

pydov, data-access, lifewatch, oscibio, package, python, water
pip install pydov==3.1.0



CI Documentation Status Project Status: Active – The project has reached a stable, usable state and is being actively developed. DOI pyOpenSci

pydov is a Python package to query and download data from Databank Ondergrond Vlaanderen (DOV). It is hosted on GitHub and development is coordinated by Databank Ondergrond Vlaanderen (DOV). DOV aggregates data about soil, subsoil and groundwater of Flanders and makes them publicly available. Interactive and human-readable extraction and querying of the data is provided by a web application, whereas the focus of this package is to support machine-based extraction and conversion of the data.

To get started, see the documentation at https://pydov.readthedocs.io.

Please note that downloading DOV data with pydov is governed by the same disclaimer that applies to the other DOV services. Be sure to consult it when using DOV data with pydov.


You can install pydov stable using pip:

pip install pydov

Or clone the git repository and install with python setup.py install to get the latest snapshot from the master branch.

To contribute to the code, make sure to install the package and all of the development dependencies enlisted in the requirements_dev.txt file. First, clone the git repository. We advice to use an Python development environment, for example with conda or virtualenv. Activate the (conda/virtualenv) environment and install the package in development mode:

pip install -e .[devs]

Need more detailed instructions? Check out the installation instructions and the development guidelines.

Quick start

Read the quick start from the docs or jump straight in:

from pydov.search.boring import BoringSearch
from pydov.util.location import Within, Box

from owslib.fes2 import PropertyIsGreaterThan

boringsearch = BoringSearch()

dataframe = boringsearch.search(
    query=PropertyIsGreaterThan(propertyname='diepte_tot_m', literal='550'),
    location=Within(Box(107500, 202000, 108500, 203000))

The resulting dataframe contains the information on boreholes (boringen) within the provided bounding box (as defined by the location argument) with a depth larger than 550m:

>>> dataframe
                                         pkey_boring     boornummer         x         y  mv_mtaw  start_boring_mtaw gemeente  diepte_boring_van  diepte_boring_tot datum_aanvang uitvoerder  boorgatmeting  diepte_methode_van  diepte_methode_tot boormethode
0  https://www.dov.vlaanderen.be/data/boring/1989...  kb14d40e-B777  108015.0  202860.0      5.0                5.0     Gent                0.0              660.0    1989-01-25   onbekend          False                 0.0               660.0    onbekend
1  https://www.dov.vlaanderen.be/data/boring/1972...  kb14d40e-B778  108090.0  202835.0      5.0                5.0     Gent                0.0              600.0    1972-05-17   onbekend          False                 0.0               600.0    onbekend


Full documentation of pydov can be found on our ReadTheDocs page.


You do not need to be a code expert to contribute to this project as there are several ways you can contribute to this project. Have a look at the contributing page.


  • We welcome contributions including bug reports.
  • License: MIT
  • Citation information can be found on Zenodo.
  • Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
  • Also note that downloading DOV data with pydov is governed by the same disclaimer that applies to the other DOV services. Be sure to consult it when using DOV data with pydov.