General setup

The Python package brodata provides tools to download and analyze groundwater data from the Dutch BRO (BasisRegistratie Ondergrond) and DINO (Data en Informatie Nederlandse Ondergrond) databases.

Although both databases contain Dutch data, the primary language for the package is English to align with the broader Python ecosystem. Many BRO class names are already in English (for example GroundwaterMonitoringWell).

brodata can download data from either service or read data from files. Each data type has a corresponding Python object, and names are kept consistent with the source databases where possible. For example, a drilling is called GeotechnicalBoreholeResearch in BRO and GeologischBooronderzoek in DINO. Each brodata class implements to_dict() to convert data to a dictionary; this is also used to build GeoDataFrames via brodata.util.objects_to_gdf. BRO objects support from_bro_id(bro_id) for downloading. DINO objects use from_dino_nr with a DINO number.

brodata minimizes interpretation of the source data: tabular data becomes pandas DataFrames and spatial data becomes GeoDataFrames. Some flattening is applied to simplify nested XML structures (e.g. observations in a Groundwater Level Dossier are combined into an observation DataFrame with time, value, qualifier, status, and observation_type). As a result, some non-critical metadata (such as BRO IDs for individual observations) may be lost.

The package provides useful post-processing helpers, for example plotting boreholes and removing duplicate groundwater-head measurements from BRO.

Bugs and improvements

The issue section of the GitHUB-repository of brodata (https://github.com/ArtesiaWater/brodata/issues) can be used to report bugs or propose improvements. Users can also add Pull Requests to change the code. To receive support, users can contact Artesia Water (r.calje@artesia-water.nl).