Example of DOV search methods for hydrogeological interpretations

Binder

Use cases:

  • Select interpretations in a bbox

  • Select interpretations in a bbox with selected properties

  • Select interpretations in a municipality

  • Get interpretations using info from wfs fields, not available in the standard output dataframe

[1]:
%matplotlib inline
import os, sys
import inspect
[2]:
import pydov

Get information about code base

[3]:
from pydov.search.interpretaties import HydrogeologischeStratigrafieSearch
ip_hydrogeo = HydrogeologischeStratigrafieSearch()

# information about the HydrogeologischeStratigrafie type (In Dutch):
print(ip_hydrogeo.get_description())
De hydrostratigrafie geeft, op basis van de (gecodeerde) lithologie, een indeling weer naar de al dan niet watervoerende eigenschappen van een bepaald beschreven diepte-interval. Deze interpretatie respecteert de lithostratigrafie van het Tertiair, maar deelt deze anders in. De hiervoor gebruikte standaard is de Hydrogeologische Codering van de Ondergrond van Vlaanderen (HCOV). Deze kan beschouwd worden als de officiele hydrogeologische codering voor het Vlaams Gewest.
[4]:
# information about the available fields for a HydrogeologischeStratigrafie object
fields = ip_hydrogeo.get_fields()
# print available fields
for f in fields.values():
    print(f['name'])
pkey_interpretatie
Type_proef
Proefnummer
pkey_boring
x
y
start_interpretatie_mtaw
diepte_tot_m
gemeente
Auteurs
Datum
Opdrachten
betrouwbaarheid_interpretatie
Geldig_van
Geldig_tot
eerste_invoer
geom
diepte_laag_van
diepte_laag_tot
aquifer
[5]:
# print information for a certain field
fields['aquifer']
[5]:

aquifer - Code van de watervoerende laag waarin de laag Hydrogeologische stratigrafie zich bevindt (HCOVv1)

  • type: string
  • notnull: False
  • query: False
  • cost: 10
  • multivalue: False
  • codelist:
  • pydov.util.codelists.XsdType

    0000 - 0000 - Onbekend

    0100 - 0100 - Quartaire aquifersystemen

    0110 - 0110 - Ophogingen

    0120 - 0120 - Duinen

    0130 - 0130 - Polderafzettingen

    0131 - 0131 - Kleiige polderafzettingen van de kustvlakte

    0132 - 0132 - Kleiige polderafzettingen van het Meetjesland

    0133 - 0133 - Kleiige polderafzettingen van Waasland-Antwerpen

    0134 - 0134 - Zandige kreekruggen

    0135 - 0135 - Veen-kleiige poelgronden

    0140 - 0140 - Alluviale deklagen

    0150 - 0150 - Deklagen

    0151 - 0151 - Zandige deklagen

    0152 - 0152 - Zand-lemige deklagen

    0153 - 0153 - Lemige deklagen

    0154 - 0154 - Kleiige deklagen

    0160 - 0160 - Pleistocene afzettingen

    0161 - 0161 - Pleistoceen van de kustvlakte

    0162 - 0162 - Pleistoceen van de Vlaamse Vallei

    0163 - 0163 - Pleistoceen van de riviervalleien

    0170 - 0170 - Maas- en Rijnafzettingen

    0171 - 0171 - Afzettingen Hoofdterras

    0172 - 0172 - Afzettingen Tussenterassen

    0173 - 0173 - Afzettingen Maasvlakte

    0200 - 0200 - Kempens Aquifersysteem

    0210 - 0210 - Kiezeloolietformatie ten noorden van Feldbiss

    0211 - 0211 - Zandige eenheid boven de Brunssum I-klei

    0212 - 0212 - Brunssum I-Klei

    0213 - 0213 - Zand van Pey

    0214 - 0214 - Brunssum II-klei

    0215 - 0215 - Zand van Waubach

    0220 - 0220 - Klei-zand-complex van de Kempen

    0221 - 0221 - Klei van Turnhout

    0222 - 0222 - Zand van Beerse

    0223 - 0223 - Klei van Rijkevorsel

    0230 - 0230 - Pleistoceen en Plioceen aquifer

    0231 - 0231 - Zanden van Brasschaat en/of Merksplas

    0232 - 0232 - Zand van Mol

    0233 - 0233 - Zandige top van Lillo

    0234 - 0234 - Zand van Poederlee en/of zandige top van Kasterlee

    0240 - 0240 - Pliocene kleiige laag

    0241 - 0241 - Kleiig deel van Lillo en/of van de overgang Lillo-Kattendijk

    0242 - 0242 - Kleiige overgang tussen de zanden van Kasterlee en Diest

    0250 - 0250 - Mioceen Aquifersysteem

    0251 - 0251 - Zand van Kattendijk en/of onderste zandlaag van Lillo

    0252 - 0252 - Zand van Diest

    0253 - 0253 - Zand van Bolderberg

    0254 - 0254 - Zanden van Berchem en/of Voort

    0255 - 0255 - Klei van Veldhoven

    0256 - 0256 - Zand van Eigenbilzen

    0300 - 0300 - Boom Aquitard

    0301 - 0301 - Kleiig deel van Eigenbilzen

    0302 - 0302 - Klei van Putte

    0303 - 0303 - Klei van Terhagen

    0304 - 0304 - Klei van Belsele-Waas

    0400 - 0400 - Oligoceen Aquifersysteem

    0410 - 0410 - Zand van Kerniel

    0420 - 0420 - Klei van Kleine-Spouwen

    0430 - 0430 - Ruisbroek-Berg Aquifer

    0431 - 0431 - Zand van Berg

    0432 - 0432 - Zand van Kerkom

    0433 - 0433 - Kleiig zand van Oude Biezen

    0434 - 0434 - Zand van Boutersem

    0435 - 0435 - Zand van Ruisbroek

    0436 - 0436 - Zand van Wintham

    0440 - 0440 - Tongeren Aquitard

    0441 - 0441 - Klei van Henis

    0442 - 0442 - Klei van Watervliet

    0450 - 0450 - Onder-Oligoceen Aquifersysteem

    0451 - 0451 - Zand van Neerrepen

    0452 - 0452 - Zand-Klei van Grimmertingen

    0453 - 0453 - Kleiig zand van Bassevelde

    0500 - 0500 - Bartoon Aquitardsysteem

    0501 - 0501 - Klei van Onderdijke

    0502 - 0502 - Zand van Buisputten

    0503 - 0503 - Klei van Zomergem

    0504 - 0504 - Zand van Onderdaele

    0505 - 0505 - Kleien van Ursel en/of Asse

    0600 - 0600 - Ledo Paniseliaan Brusseliaan Aquifersysteem

    0610 - 0610 - Wemmel-Lede Aquifer

    0611 - 0611 - Zand van Wemmel

    0612 - 0612 - Zand van Lede

    0620 - 0620 - Zand van Brussel

    0630 - 0630 - Afzettingen van het Boven-Paniseliaan

    0631 - 0631 - Zanden van Aanlter en/of Oedelem

    0632 - 0632 - Zandige klei van Beernem

    0640 - 0640 - Zandige afzettingen van het Onder-Paniseliaan (Vlierzele en/of Aalterbrugge)

    0700 - 0700 - Paniseliaan Aquitard

    0701 - 0701 - Klei van Pittem

    0702 - 0702 - Klei van Merelbeke

    0800 - 0800 - Ieperiaan Aquifer (Egem en of Mont-Panisel)

    0900 - 0900 - Ieperiaan aquitardsysteem

    0910 - 0910 - Silt van Kortemark

    0920 - 0920 - Afzettingen van Kortrijk

    0921 - 0921 - Klei van Aalbeke

    0922 - 0922 - Klei van Moen

    0923 - 0923 - Zand van Mons-en-Pévèle

    0924 - 0924 - Klei van Saint-Maur

    0925 - 0925 - Klei van Mont-Héribu

    1000 - 1000 - Paleoceen Aquifersysteem

    1010 - 1010 - Landeniaan Aquifersysteem

    1011 - 1011 - Zand van Knokke

    1012 - 1012 - Zandige afzettingen van Loksbergen en/of Dormaal

    1013 - 1013 - Zand van Grandglise en/of Hoegaarden

    1014 - 1014 - Kleiig deel van Lincent

    1015 - 1015 - Versteend deel van Lincent

    1020 - 1020 - Landeniaan en Heersiaan Aquitard

    1021 - 1021 - Siltige afzetting van Halen

    1022 - 1022 - Klei van Waterschei

    1023 - 1023 - Slecht doorlatend deel van de mergels van Gelinden

    1030 - 1030 - Heersiaan en Opglabbeek Aquifersysteem

    1031 - 1031 - Doorlatend deel van de Mergels van Gelinden

    1032 - 1032 - Zand van Orp

    1033 - 1033 - Zand van Eisden

    1034 - 1034 - Klei van Opoeteren

    1035 - 1035 - Zand van Maasmechelen

    1100 - 1100 - Krijt Aquifersysteem

    1110 - 1110 - Krijt Aquifer

    1111 - 1111 - Kalksteen van Houthem

    1112 - 1112 - Tufkrijt van Maastricht

    1113 - 1113 - Krijt van Gulpen

    1120 - 1120 - Afzettingen van Vaals (Smectiet van Herve)

    1130 - 1130 - Zand van Aken

    1140 - 1140 - Turoonmergels op Massief van Brabant

    1150 - 1150 - Wealdiaan

    1200 - 1200 - Jura-Trias-Perm

    1210 - 1210 - Jura

    1220 - 1220 - Trias

    1230 - 1230 - Perm

    1300 - 1300 - Sokkel

    1310 - 1310 - Boven-Carboon

    1320 - 1320 - Kolenkalk

    1330 - 1330 - Devoon

    1340 - 1340 - Cambro-Siluur Massief van Brabant

The cost is an arbitrary attribute to indicate if the information is retrieved from a wfs query (cost = 1), or from an xml (cost = 10)

[6]:
# if an attribute can have several values, these are listed under 'values', e.g. for 'Type_proef':
fields['Type_proef']
[6]:

Type_proef - Het type van de proef waarvan de hydrogeologische stratigrafie een interpretatie is. Bij een hydrogeologische stratigrafie zal dit altijd 'Boring' zijn.

  • type: string
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False
  • codelist:
  • pydov.util.codelists.FeatureCatalogueValues

    Boring - Boring - De hydrogeologische stratigrafie is een interpretatie van een boring.

Alternatively, you can list all the fields and their details by inspecting the get_fields() output or the search instance itself in a notebook:

[7]:
ip_hydrogeo
[7]:
pydov.search.interpretaties.HydrogeologischeStratigrafieSearch

De hydrostratigrafie geeft, op basis van de (gecodeerde) lithologie, een indeling weer naar de al dan niet watervoerende eigenschappen van een bepaald beschreven diepte-interval. Deze interpretatie respecteert de lithostratigrafie van het Tertiair, maar deelt deze anders in. De hiervoor gebruikte standaard is de Hydrogeologische Codering van de Ondergrond van Vlaanderen (HCOV). Deze kan beschouwd worden als de officiele hydrogeologische codering voor het Vlaams Gewest.

pkey_interpretatie - URL die verwijst naar de gegevens van deze hydrogeologische stratigrafie op de website. Voeg '.xml' toe om een XML voorstelling van deze gegevens te verkrijgen.

  • type: string
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False

Type_proef - Het type van de proef waarvan de hydrogeologische stratigrafie een interpretatie is. Bij een hydrogeologische stratigrafie zal dit altijd 'Boring' zijn.

  • type: string
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False
  • codelist:
  • pydov.util.codelists.FeatureCatalogueValues

    Boring - Boring - De hydrogeologische stratigrafie is een interpretatie van een boring.

Proefnummer - Het proefnummer van de boring waarvan de hydrogeologische stratigrafie een interpretatie is.

  • type: string
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False

pkey_boring - URL die verwijst naar de gegevens van de boring op de website. Voeg '.xml' toe om een XML voorstelling van deze gegevens te verkrijgen.

  • type: string
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False

x - De x-coördinaat van de boring in het Lambert72 coördinaatsysteem (in meter, EPSG:31370).

  • type: float
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False

y - De y-coördinaat van de boring in het Lambert72 coördinaatsysteem (in meter, EPSG:31370).

  • type: float
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False

start_interpretatie_mtaw - De hoogte van het aanvangspeil van de boring in het TAW stelsel (in meter).

  • type: float
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False

diepte_tot_m - None

  • type: float
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False

gemeente - De gemeente waarin de boring van deze interpretatie gelegen is.

  • type: string
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False

Auteurs - De auteur of auteurs van de hydrogeologische stratigrafie.

  • type: string
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False

Datum - De datum waarop de hydrogeologische stratigrafie werd beschreven.

  • type: date
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False

Opdrachten - De opdracht(en) waaraan de hydrogeologische stratigrafie gekoppeld is.

  • type: string
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False

betrouwbaarheid_interpretatie - De betrouwbaarheid van het geheel van de hydrogeologische stratigrafie (goed, twijfelachtig of onbekend). Deze wordt toegekend door een DOV-medewerker verantwoordelijk voor de ingave.

  • type: string
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False

Geldig_van - Het tijdstip vanaf wanneer de hydrogeologische stratigrafie geldig is.

  • type: date
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False

Geldig_tot - Het tijdstip tot wanneer de hydrogeologische stratigrafie geldig is.

  • type: date
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False

eerste_invoer - Het tijdstip waarop deze interpretatie voor het eerst in DOV ingevoerd werd.

  • type: datetime
  • notnull: True
  • query: True
  • cost: 1
  • multivalue: False

geom - None

  • type: geometry
  • notnull: False
  • query: False
  • cost: 1
  • multivalue: False

diepte_laag_van - Diepte van de bovenkant van de laag hydrogeologische stratigrafie in meter.

  • type: float
  • notnull: False
  • query: False
  • cost: 10
  • multivalue: False

diepte_laag_tot - Diepte van de onderkant van de laag hydrogeologische stratigrafie in meter.

  • type: float
  • notnull: False
  • query: False
  • cost: 10
  • multivalue: False

aquifer - Code van de watervoerende laag waarin de laag Hydrogeologische stratigrafie zich bevindt (HCOVv1)

  • type: string
  • notnull: False
  • query: False
  • cost: 10
  • multivalue: False
  • codelist:
  • pydov.util.codelists.XsdType

    0000 - 0000 - Onbekend

    0100 - 0100 - Quartaire aquifersystemen

    0110 - 0110 - Ophogingen

    0120 - 0120 - Duinen

    0130 - 0130 - Polderafzettingen

    0131 - 0131 - Kleiige polderafzettingen van de kustvlakte

    0132 - 0132 - Kleiige polderafzettingen van het Meetjesland

    0133 - 0133 - Kleiige polderafzettingen van Waasland-Antwerpen

    0134 - 0134 - Zandige kreekruggen

    0135 - 0135 - Veen-kleiige poelgronden

    0140 - 0140 - Alluviale deklagen

    0150 - 0150 - Deklagen

    0151 - 0151 - Zandige deklagen

    0152 - 0152 - Zand-lemige deklagen

    0153 - 0153 - Lemige deklagen

    0154 - 0154 - Kleiige deklagen

    0160 - 0160 - Pleistocene afzettingen

    0161 - 0161 - Pleistoceen van de kustvlakte

    0162 - 0162 - Pleistoceen van de Vlaamse Vallei

    0163 - 0163 - Pleistoceen van de riviervalleien

    0170 - 0170 - Maas- en Rijnafzettingen

    0171 - 0171 - Afzettingen Hoofdterras

    0172 - 0172 - Afzettingen Tussenterassen

    0173 - 0173 - Afzettingen Maasvlakte

    0200 - 0200 - Kempens Aquifersysteem

    0210 - 0210 - Kiezeloolietformatie ten noorden van Feldbiss

    0211 - 0211 - Zandige eenheid boven de Brunssum I-klei

    0212 - 0212 - Brunssum I-Klei

    0213 - 0213 - Zand van Pey

    0214 - 0214 - Brunssum II-klei

    0215 - 0215 - Zand van Waubach

    0220 - 0220 - Klei-zand-complex van de Kempen

    0221 - 0221 - Klei van Turnhout

    0222 - 0222 - Zand van Beerse

    0223 - 0223 - Klei van Rijkevorsel

    0230 - 0230 - Pleistoceen en Plioceen aquifer

    0231 - 0231 - Zanden van Brasschaat en/of Merksplas

    0232 - 0232 - Zand van Mol

    0233 - 0233 - Zandige top van Lillo

    0234 - 0234 - Zand van Poederlee en/of zandige top van Kasterlee

    0240 - 0240 - Pliocene kleiige laag

    0241 - 0241 - Kleiig deel van Lillo en/of van de overgang Lillo-Kattendijk

    0242 - 0242 - Kleiige overgang tussen de zanden van Kasterlee en Diest

    0250 - 0250 - Mioceen Aquifersysteem

    0251 - 0251 - Zand van Kattendijk en/of onderste zandlaag van Lillo

    0252 - 0252 - Zand van Diest

    0253 - 0253 - Zand van Bolderberg

    0254 - 0254 - Zanden van Berchem en/of Voort

    0255 - 0255 - Klei van Veldhoven

    0256 - 0256 - Zand van Eigenbilzen

    0300 - 0300 - Boom Aquitard

    0301 - 0301 - Kleiig deel van Eigenbilzen

    0302 - 0302 - Klei van Putte

    0303 - 0303 - Klei van Terhagen

    0304 - 0304 - Klei van Belsele-Waas

    0400 - 0400 - Oligoceen Aquifersysteem

    0410 - 0410 - Zand van Kerniel

    0420 - 0420 - Klei van Kleine-Spouwen

    0430 - 0430 - Ruisbroek-Berg Aquifer

    0431 - 0431 - Zand van Berg

    0432 - 0432 - Zand van Kerkom

    0433 - 0433 - Kleiig zand van Oude Biezen

    0434 - 0434 - Zand van Boutersem

    0435 - 0435 - Zand van Ruisbroek

    0436 - 0436 - Zand van Wintham

    0440 - 0440 - Tongeren Aquitard

    0441 - 0441 - Klei van Henis

    0442 - 0442 - Klei van Watervliet

    0450 - 0450 - Onder-Oligoceen Aquifersysteem

    0451 - 0451 - Zand van Neerrepen

    0452 - 0452 - Zand-Klei van Grimmertingen

    0453 - 0453 - Kleiig zand van Bassevelde

    0500 - 0500 - Bartoon Aquitardsysteem

    0501 - 0501 - Klei van Onderdijke

    0502 - 0502 - Zand van Buisputten

    0503 - 0503 - Klei van Zomergem

    0504 - 0504 - Zand van Onderdaele

    0505 - 0505 - Kleien van Ursel en/of Asse

    0600 - 0600 - Ledo Paniseliaan Brusseliaan Aquifersysteem

    0610 - 0610 - Wemmel-Lede Aquifer

    0611 - 0611 - Zand van Wemmel

    0612 - 0612 - Zand van Lede

    0620 - 0620 - Zand van Brussel

    0630 - 0630 - Afzettingen van het Boven-Paniseliaan

    0631 - 0631 - Zanden van Aanlter en/of Oedelem

    0632 - 0632 - Zandige klei van Beernem

    0640 - 0640 - Zandige afzettingen van het Onder-Paniseliaan (Vlierzele en/of Aalterbrugge)

    0700 - 0700 - Paniseliaan Aquitard

    0701 - 0701 - Klei van Pittem

    0702 - 0702 - Klei van Merelbeke

    0800 - 0800 - Ieperiaan Aquifer (Egem en of Mont-Panisel)

    0900 - 0900 - Ieperiaan aquitardsysteem

    0910 - 0910 - Silt van Kortemark

    0920 - 0920 - Afzettingen van Kortrijk

    0921 - 0921 - Klei van Aalbeke

    0922 - 0922 - Klei van Moen

    0923 - 0923 - Zand van Mons-en-Pévèle

    0924 - 0924 - Klei van Saint-Maur

    0925 - 0925 - Klei van Mont-Héribu

    1000 - 1000 - Paleoceen Aquifersysteem

    1010 - 1010 - Landeniaan Aquifersysteem

    1011 - 1011 - Zand van Knokke

    1012 - 1012 - Zandige afzettingen van Loksbergen en/of Dormaal

    1013 - 1013 - Zand van Grandglise en/of Hoegaarden

    1014 - 1014 - Kleiig deel van Lincent

    1015 - 1015 - Versteend deel van Lincent

    1020 - 1020 - Landeniaan en Heersiaan Aquitard

    1021 - 1021 - Siltige afzetting van Halen

    1022 - 1022 - Klei van Waterschei

    1023 - 1023 - Slecht doorlatend deel van de mergels van Gelinden

    1030 - 1030 - Heersiaan en Opglabbeek Aquifersysteem

    1031 - 1031 - Doorlatend deel van de Mergels van Gelinden

    1032 - 1032 - Zand van Orp

    1033 - 1033 - Zand van Eisden

    1034 - 1034 - Klei van Opoeteren

    1035 - 1035 - Zand van Maasmechelen

    1100 - 1100 - Krijt Aquifersysteem

    1110 - 1110 - Krijt Aquifer

    1111 - 1111 - Kalksteen van Houthem

    1112 - 1112 - Tufkrijt van Maastricht

    1113 - 1113 - Krijt van Gulpen

    1120 - 1120 - Afzettingen van Vaals (Smectiet van Herve)

    1130 - 1130 - Zand van Aken

    1140 - 1140 - Turoonmergels op Massief van Brabant

    1150 - 1150 - Wealdiaan

    1200 - 1200 - Jura-Trias-Perm

    1210 - 1210 - Jura

    1220 - 1220 - Trias

    1230 - 1230 - Perm

    1300 - 1300 - Sokkel

    1310 - 1310 - Boven-Carboon

    1320 - 1320 - Kolenkalk

    1330 - 1330 - Devoon

    1340 - 1340 - Cambro-Siluur Massief van Brabant

Try-out of use cases

Select interpretations in a bbox

[8]:
from pydov.util.location import Within, Box

# Get all borehole data in a bounding box (llx, lly, ulx, uly)
# the pkey_boring link is not available below, but is in the df
df = ip_hydrogeo.search(location=Within(Box(153145, 206930, 153150, 206935, epsg=31370)))
df.head()
[000/001] .
[000/001] .
[8]:
pkey_interpretatie pkey_boring betrouwbaarheid_interpretatie x y start_interpretatie_mtaw diepte_laag_van diepte_laag_tot aquifer
0 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1974... goed 153147.0 206931.0 14.12 0.0 2.5 0152
1 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1974... goed 153147.0 206931.0 14.12 2.5 7.0 0254

Select interpretations in a bbox with selected properties

[9]:
# list available query methods
methods = [i for i,j in inspect.getmembers(sys.modules['owslib.fes2'],
                                           inspect.isclass)
           if 'Property' in i]
print(methods)
['PropertyIsBetween', 'PropertyIsEqualTo', 'PropertyIsGreaterThan', 'PropertyIsGreaterThanOrEqualTo', 'PropertyIsLessThan', 'PropertyIsLessThanOrEqualTo', 'PropertyIsLike', 'PropertyIsNotEqualTo', 'PropertyIsNull', 'SortProperty']

The property feature methodes listed above are available from the owslib module. These were not adapted for use in pydov.

[10]:
# Get deep boreholes in a bounding box
from owslib.fes2 import PropertyIsGreaterThanOrEqualTo
# the propertyname can be any of the fields of the hydrogeological interpretations object that belong to the wfs source
# the literal is always a string, no matter what its definition is in the boring object (string, float...)
query = PropertyIsGreaterThanOrEqualTo(
        propertyname='betrouwbaarheid_interpretatie', literal='goed')
df = ip_hydrogeo.search(location=Within(Box(153145, 206930, 153150, 206935, epsg=31370)),
                        query=query
                       )
df.head()
[000/001] .
[000/001] c
[10]:
pkey_interpretatie pkey_boring betrouwbaarheid_interpretatie x y start_interpretatie_mtaw diepte_laag_van diepte_laag_tot aquifer
0 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1974... goed 153147.0 206931.0 14.12 0.0 2.5 0152
1 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1974... goed 153147.0 206931.0 14.12 2.5 7.0 0254

Select interpretations in a municipality

[11]:
from owslib.fes2 import PropertyIsEqualTo

query = PropertyIsEqualTo(propertyname='gemeente',
                          literal='Aartselaar')
df = ip_hydrogeo.search(query=query)
df.head()
[000/001] .
[000/006] ......
[11]:
pkey_interpretatie pkey_boring betrouwbaarheid_interpretatie x y start_interpretatie_mtaw diepte_laag_van diepte_laag_tot aquifer
0 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1891... goed 149691.0 203202.0 7.0 0.0 28.5 0300
1 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1891... goed 149691.0 203202.0 7.0 28.5 51.3 0400
2 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1950... goed 151457.0 201527.0 21.0 0.0 49.0 0300
3 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1950... goed 151457.0 201527.0 21.0 49.0 59.0 0400
4 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1895... goed 151041.0 202065.0 15.0 0.0 2.6 0151

Get interpretations using info from wfs fields, not available in the standard output dataframe

To keep the dataframe size acceptable, not all wfs fields are included in the standard output. However, one can use this information to select interpretations as illustrated below. The available wfs fields can be viewed in the object catalog of the ‘Hydrogeologische stratigrafie’ wfs service, on-line [2018 05 16]: https://www.dov.vlaanderen.be/geonetwork/apps/tabsearch/index.html?hl=dut. For example, make a selection of the interpretations in the municipality of Antwerp that were derived from cpt data

[26]:
from owslib.fes2 import And
from owslib.fes2 import PropertyIsEqualTo
query = And([PropertyIsEqualTo(propertyname='gemeente',
                               literal='Antwerpen'),
             PropertyIsEqualTo(propertyname='Type_proef',
                               literal='Boring')]
            )
df = ip_hydrogeo.search(query=query, )
df = df[df.aquifer.notna()].reset_index(drop=True)
df.head()
[000/001] .
[000/130] cccccccccccccccccccccccccccccccccccccccccccccccccc
[050/130] cccccccccccccccccccccccccccccccccccccccccccccccccc
[100/130] cccccccccccccccccccccccccccccc
[26]:
pkey_interpretatie pkey_boring betrouwbaarheid_interpretatie x y start_interpretatie_mtaw diepte_laag_van diepte_laag_tot aquifer
0 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1963... goed 146200.0 226000.0 9.05 0.0 19.0 0100
1 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1963... goed 146200.0 226000.0 9.05 19.0 47.0 0251
2 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1963... goed 146200.0 226000.0 9.05 47.0 71.0 0254
3 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1963... goed 146200.0 226000.0 9.05 71.0 72.0 0300
4 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1984... goed 147704.0 221948.0 7.23 0.0 9.0 0100

Visualize results

Using Folium, we can display the results of our search on a map.

[27]:
# import the necessary modules (not included in the requirements of pydov!)
import folium
from folium.plugins import MarkerCluster
from pyproj import Transformer
[28]:
# convert the coordinates to lat/lon for folium
def convert_latlon(x1, y1):
    transformer = Transformer.from_crs("epsg:31370", "epsg:4326", always_xy=True)
    x2,y2 = transformer.transform(x1, y1)
    return x2, y2

df['lon'], df['lat'] = zip(*map(convert_latlon, df['x'], df['y']))
# convert to list
loclist = df[['lat', 'lon']].values.tolist()
[29]:
# initialize the Folium map on the centre of the selected locations, play with the zoom until ok# initia
fmap = folium.Map(location=[df['lat'].mean(), df['lon'].mean()], zoom_start=12)
marker_cluster = MarkerCluster().add_to(fmap)
for loc in range(0, len(loclist)):
    folium.Marker(loclist[loc], popup=df['aquifer'][loc]).add_to(marker_cluster)
fmap
[29]:
Make this Notebook Trusted to load map: File -> Trust Notebook