Example of DOV search methods for hydrogeological interpretations
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:
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:
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]:
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:
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:
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]: