Groundwater Utilisation Facility (GUF)

import matplotlib.pyplot as plt
import brodata
guf = brodata.guf.GroundwaterUtilisationFacility.from_bro_id("GUF000000022602")
guf
GroundwaterUtilisationFacility(broId='GUF000000022602')
guf.designInstallation
designInstallationId installationFunction geometry energyCold energyWarm maximumInfiltrationTemperatureWarm averageInfiltrationTemperatureCold averageInfiltrationTemperatureWarm powerCold powerWarm averageColdWater averageWarmWater maximumYearQuantityCold maximumYearQuantityWarm startTime
0 609851 openBodemenergiesysteem POINT (161140 455080) NaN NaN NaN None None None None 70000 70000 90000 90000 None
guf.designWell
designWellId wellFunction height geometry maximumWellDepth maximumWellCapacity relativeTemperature screenType designScreenTop designScreenBottom startTime
0 547503 onttrekking 5.0 POINT (161140 455080) 65.5 30.0 warm None NaN NaN 1978-01-01
1 547504 onttrekking 5.0 POINT (161140 455080) 76.0 30.0 warm None NaN NaN 1978-01-01
2 547505 onttrekking 5.0 POINT (161140 455080) 76.0 30.0 koud None NaN NaN 1978-01-01
guf.licensedQuantity
licensedInOut maximumPerHour maximumPerDay maximumPerMonth maximumPerQuarter maximumPerYear
0 onttrekken 30 720 21600 45000 720000
1 inbrengen 30 720 21600 45000 720000
guf.objectHistory
date name identifier
0 1978-01-01 startRegistratie NaN
1 1978-01-01 toevoegingGerealiseerdeInstallatie 24912
guf.realisedInstallation
realisedInstallationId installationFunction geometry startValidity startTime
0 24912 openBodemenergiesysteem POINT (161131 455066) 1978-01-01 1978-01-01
guf.realisedWell
realisedWellId wellFunction height wellDepth geometry relativeTemperature startValidity startTime
0 45887 onttrekking 5.0 58.0 POINT (161140 455080) warm 1978-01-01 1978-01-01
1 45888 onttrekking 5.0 68.5 POINT (161123 455053) koud 1978-01-01 1978-01-01
guf_data = guf.to_dict()
guf_data.pop("designInstallation")
guf_data.pop("designWell")
guf_data.pop("licensedQuantity")
guf_data.pop("objectHistory")
guf_data.pop("realisedInstallation")
guf_data.pop("realisedWell")
guf_data
{'broId': 'GUF000000022602',
 'coordinateTransformation': 'RDNAPTRANS2018MV0',
 'corrected': 'ja',
 'deliveryAccountableParty': '51468751',
 'deliveryContext': 'waterwet',
 'deregistered': 'nee',
 'id': 'BRO_0022',
 'latestAdditionTime': '2024-04-23T15:28:24+02:00',
 'latestCorrectionTime': '2025-06-03T08:15:35+02:00',
 'licence': {'identificationLicence': 'MPM-3230-916-O-KWO',
  'legalType': 'beschikking',
  'primaryUsageType': 'industrieleToepassing',
  'secondaryUsageType': 'openBodemenergiesysteem',
  'humanConsumption': 'nee',
  'startTime': Timestamp('1978-01-01 00:00:00')},
 'objectRegistrationTime': '2024-04-23T15:28:20+02:00',
 'qualityRegime': 'IMBRO/A',
 'registrationCompletionTime': '2024-04-23T15:28:27+02:00',
 'registrationStatus': 'geregistreerd',
 'reregistered': 'nee',
 'standardizedLocation': <MULTIPOINT ((5.477 52.084), (5.477 52.084))>,
 'startTime': Timestamp('1978-01-01 00:00:00'),
 'startValidity': Timestamp('1978-01-01 00:00:00'),
 'underReview': 'nee'}

Multiple objects

Download all Groundwater Utilisation Facilities near Utrecht (approximate extent).

# Extent for Utrecht region (approximate coordinates)
extent = [125000, 145000, 445000, 465000]

# download guf-characteristics
gdf=brodata.guf.get_characteristics(extent=extent)

gdf
id deregistered deliveryAccountableParty qualityRegime objectRegistrationTime underReview standardizedLocation startTime licence realisedInstallation latestCorrectionTime
broId
GUF000000000192 BRO_0003 nee 30279619 IMBRO 2023-04-12T11:20:51+02:00 nee MULTIPOINT ((139421.97 448435.011)) 2023-02-09 De brug 2b in Houten NaN NaN
GUF000000000220 BRO_0006 nee 30280353 IMBRO 2023-04-12T11:21:31+02:00 nee MULTIPOINT ((128916.993 458473.032)) 2023-03-14 HZ_LBI-23-02192 Châteletlaan 23 NaN NaN
GUF000000000240 BRO_0009 nee 30280353 IMBRO 2023-04-12T11:22:04+02:00 nee MULTIPOINT ((132396.983 450542.018)) 2023-02-28 HZ_LBI-22-44635  Nedereindseweg 511 NaN NaN
GUF000000000383 BRO_0012 nee 30277172 IMBRO 2023-04-12T11:26:45+02:00 nee MULTIPOINT ((135780.975 454545.995)) 2023-03-24 Z/23/730462 NaN NaN
GUF000000000384 BRO_0015 nee 30277172 IMBRO/A 2023-04-12T11:26:55+02:00 nee MULTIPOINT ((135886.974 453750.996)) 2021-11-18 Z-VERG-2021-3826 NaN NaN
... ... ... ... ... ... ... ... ... ... ... ...
GUF000000119076 BRO_3317 nee 30277029 IMBRO 2026-06-09T13:11:33+02:00 nee MULTIPOINT ((134848.98 449542.013)) 2026-07-07 Z/26/2041113 NaN NaN
GUF000000119077 BRO_3320 nee 30277029 IMBRO 2026-06-09T13:12:01+02:00 nee MULTIPOINT ((134838.98 449566.013)) 2026-07-07 Z/26/2041113 NaN NaN
GUF000000119078 BRO_3323 nee 30277029 IMBRO 2026-06-09T13:12:24+02:00 nee MULTIPOINT ((134847.98 449567.013)) 2026-07-07 Z/26/2041113 NaN NaN
GUF000000119079 BRO_3326 nee 30277029 IMBRO 2026-06-09T13:12:46+02:00 nee MULTIPOINT ((134849.98 449575.013)) 2026-07-07 Z/26/2041113 NaN NaN
GUF000000121538 BRO_3329 nee 30277029 IMBRO 2026-06-23T14:09:39+02:00 nee MULTIPOINT ((134356.98 446286.015)) 2026-06-23 Z/26/2021715_ Nijemonde 2 Nieuwegein NaN NaN

919 rows × 11 columns

Plot the realisedInstallation column on a map using matplotlib.

f, ax = plt.subplots()
ax.axis("scaled")
ax.axis(extent)
ax = gdf.plot(
        column="realisedInstallation",
        legend=True,
        alpha=0.7,
        edgecolor="k",
        ax=ax
    )
../_images/876aff08fc2a763d6f2f3df9fe6bd82e7beb9071058479bcff868ee1b65dfb18.png

Plot realisedInstallation on an interactive Folium map. Click a location to view details.

import folium
# use explode to separate multi-point geometries into single points
# otherwise the popup does not work properly
m = gdf.explode().explore(
    column="realisedInstallation",
    marker_kwds={"radius":5},
    tooltip=False,
    popup=True,
    tiles=None
)

# add a background layer with 50% opacity
folium.TileLayer(
    tiles="OpenStreetMap",
    opacity=0.5,  # 0 = invisible, 1 = opaque
    name="Background"
).add_to(m)
m
Make this Notebook Trusted to load map: File -> Trust Notebook