{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Example of DOV search methods for hydrogeological interpretations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/DOV-Vlaanderen/pydov/master?filepath=docs%2Fnotebooks%2Fsearch_hydrogeologische_stratigrafie.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Use cases:\n", "* Select interpretations in a bbox\n", "* Select interpretations in a bbox with selected properties\n", "* Select interpretations in a municipality\n", "* Get interpretations using info from wfs fields, not available in the standard output dataframe" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import os, sys\n", "import inspect" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import pydov" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Get information about code base" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "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.\n" ] } ], "source": [ "from pydov.search.interpretaties import HydrogeologischeStratigrafieSearch\n", "ip_hydrogeo = HydrogeologischeStratigrafieSearch()\n", "\n", "# information about the HydrogeologischeStratigrafie type (In Dutch):\n", "print(ip_hydrogeo.get_description())" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pkey_interpretatie\n", "Type_proef\n", "Proefnummer\n", "pkey_boring\n", "x\n", "y\n", "start_interpretatie_mtaw\n", "diepte_tot_m\n", "gemeente\n", "Auteurs\n", "Datum\n", "Opdrachten\n", "betrouwbaarheid_interpretatie\n", "Geldig_van\n", "Geldig_tot\n", "eerste_invoer\n", "geom\n", "diepte_laag_van\n", "diepte_laag_tot\n", "aquifer\n" ] } ], "source": [ "# information about the available fields for a HydrogeologischeStratigrafie object\n", "fields = ip_hydrogeo.get_fields()\n", "# print available fields\n", "for f in fields.values():\n", " print(f['name'])" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", "
\n", "

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

\n", "
\n", " " ], "text/plain": [ "{'name': 'aquifer', 'type': 'string', 'multivalue': False, 'definition': 'Code van de watervoerende laag waarin de laag Hydrogeologische stratigrafie zich bevindt (HCOVv1)', 'notnull': False, 'query': False, 'cost': 10, 'codelist': , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , >}" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# print information for a certain field\n", "fields['aquifer']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The cost is an arbitrary attribute to indicate if the information is retrieved from a wfs query (cost = 1), \n", "or from an xml (cost = 10)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "\n", " \n", "
\n", "

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:
  • \n", " \n", "
    \n", " \n", "
    \n", " pydov.util.codelists.FeatureCatalogueValues\n", "
    \n", " \n", " \n", "
    \n", "

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

    \n", "
    \n", " \n", "
    \n", "
\n", "
\n", " " ], "text/plain": [ "{'name': 'Type_proef', 'definition': \"Het type van de proef waarvan de hydrogeologische stratigrafie een interpretatie is. Bij een hydrogeologische stratigrafie zal dit altijd 'Boring' zijn.\", 'type': 'string', 'multivalue': False, 'notnull': False, 'query': True, 'cost': 1, 'codelist': >}" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# if an attribute can have several values, these are listed under 'values', e.g. for 'Type_proef':\n", "fields['Type_proef']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Alternatively, you can list all the fields and their details by inspecting the `get_fields()` output or the search instance itself in a notebook:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", "
\n", " \n", "
\n", " pydov.search.interpretaties.HydrogeologischeStratigrafieSearch\n", "
\n", "

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.

\n", " \n", "
\n", "

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
\n", "
\n", " \n", " \n", "
\n", "

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:
  • \n", " \n", "
    \n", " \n", "
    \n", " pydov.util.codelists.FeatureCatalogueValues\n", "
    \n", " \n", " \n", "
    \n", "

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

    \n", "
    \n", " \n", "
    \n", "
\n", "
\n", " \n", " \n", "
\n", "

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

  • type: string
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False
\n", "
\n", " \n", " \n", "
\n", "

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
\n", "
\n", " \n", " \n", "
\n", "

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
\n", "
\n", " \n", " \n", "
\n", "

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
\n", "
\n", " \n", " \n", "
\n", "

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
\n", "
\n", " \n", " \n", "
\n", "

diepte_tot_m - None

  • type: float
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False
\n", "
\n", " \n", " \n", "
\n", "

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

  • type: string
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False
\n", "
\n", " \n", " \n", "
\n", "

Auteurs - De auteur of auteurs van de hydrogeologische stratigrafie.

  • type: string
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False
\n", "
\n", " \n", " \n", "
\n", "

Datum - De datum waarop de hydrogeologische stratigrafie werd beschreven.

  • type: date
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False
\n", "
\n", " \n", " \n", "
\n", "

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

  • type: string
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False
\n", "
\n", " \n", " \n", "
\n", "

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
\n", "
\n", " \n", " \n", "
\n", "

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

  • type: date
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False
\n", "
\n", " \n", " \n", "
\n", "

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

  • type: date
  • notnull: False
  • query: True
  • cost: 1
  • multivalue: False
\n", "
\n", " \n", " \n", "
\n", "

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

  • type: datetime
  • notnull: True
  • query: True
  • cost: 1
  • multivalue: False
\n", "
\n", " \n", " \n", "
\n", "

geom - None

  • type: geometry
  • notnull: False
  • query: False
  • cost: 1
  • multivalue: False
\n", "
\n", " \n", " \n", "
\n", "

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

  • type: float
  • notnull: False
  • query: False
  • cost: 10
  • multivalue: False
\n", "
\n", " \n", " \n", "
\n", "

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

  • type: float
  • notnull: False
  • query: False
  • cost: 10
  • multivalue: False
\n", "
\n", " \n", " \n", "
\n", "

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:
  • \n", " \n", "
    \n", " \n", "
    \n", " pydov.util.codelists.XsdType\n", "
    \n", " \n", " \n", "
    \n", "

    0000 - 0000 - Onbekend

    \n", "
    \n", " \n", " \n", "
    \n", "

    0100 - 0100 - Quartaire aquifersystemen

    \n", "
    \n", " \n", " \n", "
    \n", "

    0110 - 0110 - Ophogingen

    \n", "
    \n", " \n", " \n", "
    \n", "

    0120 - 0120 - Duinen

    \n", "
    \n", " \n", " \n", "
    \n", "

    0130 - 0130 - Polderafzettingen

    \n", "
    \n", " \n", " \n", "
    \n", "

    0131 - 0131 - Kleiige polderafzettingen van de kustvlakte

    \n", "
    \n", " \n", " \n", "
    \n", "

    0132 - 0132 - Kleiige polderafzettingen van het Meetjesland

    \n", "
    \n", " \n", " \n", "
    \n", "

    0133 - 0133 - Kleiige polderafzettingen van Waasland-Antwerpen

    \n", "
    \n", " \n", " \n", "
    \n", "

    0134 - 0134 - Zandige kreekruggen

    \n", "
    \n", " \n", " \n", "
    \n", "

    0135 - 0135 - Veen-kleiige poelgronden

    \n", "
    \n", " \n", " \n", "
    \n", "

    0140 - 0140 - Alluviale deklagen

    \n", "
    \n", " \n", " \n", "
    \n", "

    0150 - 0150 - Deklagen

    \n", "
    \n", " \n", " \n", "
    \n", "

    0151 - 0151 - Zandige deklagen

    \n", "
    \n", " \n", " \n", "
    \n", "

    0152 - 0152 - Zand-lemige deklagen

    \n", "
    \n", " \n", " \n", "
    \n", "

    0153 - 0153 - Lemige deklagen

    \n", "
    \n", " \n", " \n", "
    \n", "

    0154 - 0154 - Kleiige deklagen

    \n", "
    \n", " \n", " \n", "
    \n", "

    0160 - 0160 - Pleistocene afzettingen

    \n", "
    \n", " \n", " \n", "
    \n", "

    0161 - 0161 - Pleistoceen van de kustvlakte

    \n", "
    \n", " \n", " \n", "
    \n", "

    0162 - 0162 - Pleistoceen van de Vlaamse Vallei

    \n", "
    \n", " \n", " \n", "
    \n", "

    0163 - 0163 - Pleistoceen van de riviervalleien

    \n", "
    \n", " \n", " \n", "
    \n", "

    0170 - 0170 - Maas- en Rijnafzettingen

    \n", "
    \n", " \n", " \n", "
    \n", "

    0171 - 0171 - Afzettingen Hoofdterras

    \n", "
    \n", " \n", " \n", "
    \n", "

    0172 - 0172 - Afzettingen Tussenterassen

    \n", "
    \n", " \n", " \n", "
    \n", "

    0173 - 0173 - Afzettingen Maasvlakte

    \n", "
    \n", " \n", " \n", "
    \n", "

    0200 - 0200 - Kempens Aquifersysteem

    \n", "
    \n", " \n", " \n", "
    \n", "

    0210 - 0210 - Kiezeloolietformatie ten noorden van Feldbiss

    \n", "
    \n", " \n", " \n", "
    \n", "

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

    \n", "
    \n", " \n", " \n", "
    \n", "

    0212 - 0212 - Brunssum I-Klei

    \n", "
    \n", " \n", " \n", "
    \n", "

    0213 - 0213 - Zand van Pey

    \n", "
    \n", " \n", " \n", "
    \n", "

    0214 - 0214 - Brunssum II-klei

    \n", "
    \n", " \n", " \n", "
    \n", "

    0215 - 0215 - Zand van Waubach

    \n", "
    \n", " \n", " \n", "
    \n", "

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

    \n", "
    \n", " \n", " \n", "
    \n", "

    0221 - 0221 - Klei van Turnhout

    \n", "
    \n", " \n", " \n", "
    \n", "

    0222 - 0222 - Zand van Beerse

    \n", "
    \n", " \n", " \n", "
    \n", "

    0223 - 0223 - Klei van Rijkevorsel

    \n", "
    \n", " \n", " \n", "
    \n", "

    0230 - 0230 - Pleistoceen en Plioceen aquifer

    \n", "
    \n", " \n", " \n", "
    \n", "

    0231 - 0231 - Zanden van Brasschaat en/of Merksplas

    \n", "
    \n", " \n", " \n", "
    \n", "

    0232 - 0232 - Zand van Mol

    \n", "
    \n", " \n", " \n", "
    \n", "

    0233 - 0233 - Zandige top van Lillo

    \n", "
    \n", " \n", " \n", "
    \n", "

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

    \n", "
    \n", " \n", " \n", "
    \n", "

    0240 - 0240 - Pliocene kleiige laag

    \n", "
    \n", " \n", " \n", "
    \n", "

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

    \n", "
    \n", " \n", " \n", "
    \n", "

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

    \n", "
    \n", " \n", " \n", "
    \n", "

    0250 - 0250 - Mioceen Aquifersysteem

    \n", "
    \n", " \n", " \n", "
    \n", "

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

    \n", "
    \n", " \n", " \n", "
    \n", "

    0252 - 0252 - Zand van Diest

    \n", "
    \n", " \n", " \n", "
    \n", "

    0253 - 0253 - Zand van Bolderberg

    \n", "
    \n", " \n", " \n", "
    \n", "

    0254 - 0254 - Zanden van Berchem en/of Voort

    \n", "
    \n", " \n", " \n", "
    \n", "

    0255 - 0255 - Klei van Veldhoven

    \n", "
    \n", " \n", " \n", "
    \n", "

    0256 - 0256 - Zand van Eigenbilzen

    \n", "
    \n", " \n", " \n", "
    \n", "

    0300 - 0300 - Boom Aquitard

    \n", "
    \n", " \n", " \n", "
    \n", "

    0301 - 0301 - Kleiig deel van Eigenbilzen

    \n", "
    \n", " \n", " \n", "
    \n", "

    0302 - 0302 - Klei van Putte

    \n", "
    \n", " \n", " \n", "
    \n", "

    0303 - 0303 - Klei van Terhagen

    \n", "
    \n", " \n", " \n", "
    \n", "

    0304 - 0304 - Klei van Belsele-Waas

    \n", "
    \n", " \n", " \n", "
    \n", "

    0400 - 0400 - Oligoceen Aquifersysteem

    \n", "
    \n", " \n", " \n", "
    \n", "

    0410 - 0410 - Zand van Kerniel

    \n", "
    \n", " \n", " \n", "
    \n", "

    0420 - 0420 - Klei van Kleine-Spouwen

    \n", "
    \n", " \n", " \n", "
    \n", "

    0430 - 0430 - Ruisbroek-Berg Aquifer

    \n", "
    \n", " \n", " \n", "
    \n", "

    0431 - 0431 - Zand van Berg

    \n", "
    \n", " \n", " \n", "
    \n", "

    0432 - 0432 - Zand van Kerkom

    \n", "
    \n", " \n", " \n", "
    \n", "

    0433 - 0433 - Kleiig zand van Oude Biezen

    \n", "
    \n", " \n", " \n", "
    \n", "

    0434 - 0434 - Zand van Boutersem

    \n", "
    \n", " \n", " \n", "
    \n", "

    0435 - 0435 - Zand van Ruisbroek

    \n", "
    \n", " \n", " \n", "
    \n", "

    0436 - 0436 - Zand van Wintham

    \n", "
    \n", " \n", " \n", "
    \n", "

    0440 - 0440 - Tongeren Aquitard

    \n", "
    \n", " \n", " \n", "
    \n", "

    0441 - 0441 - Klei van Henis

    \n", "
    \n", " \n", " \n", "
    \n", "

    0442 - 0442 - Klei van Watervliet

    \n", "
    \n", " \n", " \n", "
    \n", "

    0450 - 0450 - Onder-Oligoceen Aquifersysteem

    \n", "
    \n", " \n", " \n", "
    \n", "

    0451 - 0451 - Zand van Neerrepen

    \n", "
    \n", " \n", " \n", "
    \n", "

    0452 - 0452 - Zand-Klei van Grimmertingen

    \n", "
    \n", " \n", " \n", "
    \n", "

    0453 - 0453 - Kleiig zand van Bassevelde

    \n", "
    \n", " \n", " \n", "
    \n", "

    0500 - 0500 - Bartoon Aquitardsysteem

    \n", "
    \n", " \n", " \n", "
    \n", "

    0501 - 0501 - Klei van Onderdijke

    \n", "
    \n", " \n", " \n", "
    \n", "

    0502 - 0502 - Zand van Buisputten

    \n", "
    \n", " \n", " \n", "
    \n", "

    0503 - 0503 - Klei van Zomergem

    \n", "
    \n", " \n", " \n", "
    \n", "

    0504 - 0504 - Zand van Onderdaele

    \n", "
    \n", " \n", " \n", "
    \n", "

    0505 - 0505 - Kleien van Ursel en/of Asse

    \n", "
    \n", " \n", " \n", "
    \n", "

    0600 - 0600 - Ledo Paniseliaan Brusseliaan Aquifersysteem

    \n", "
    \n", " \n", " \n", "
    \n", "

    0610 - 0610 - Wemmel-Lede Aquifer

    \n", "
    \n", " \n", " \n", "
    \n", "

    0611 - 0611 - Zand van Wemmel

    \n", "
    \n", " \n", " \n", "
    \n", "

    0612 - 0612 - Zand van Lede

    \n", "
    \n", " \n", " \n", "
    \n", "

    0620 - 0620 - Zand van Brussel

    \n", "
    \n", " \n", " \n", "
    \n", "

    0630 - 0630 - Afzettingen van het Boven-Paniseliaan

    \n", "
    \n", " \n", " \n", "
    \n", "

    0631 - 0631 - Zanden van Aanlter en/of Oedelem

    \n", "
    \n", " \n", " \n", "
    \n", "

    0632 - 0632 - Zandige klei van Beernem

    \n", "
    \n", " \n", " \n", "
    \n", "

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

    \n", "
    \n", " \n", " \n", "
    \n", "

    0700 - 0700 - Paniseliaan Aquitard

    \n", "
    \n", " \n", " \n", "
    \n", "

    0701 - 0701 - Klei van Pittem

    \n", "
    \n", " \n", " \n", "
    \n", "

    0702 - 0702 - Klei van Merelbeke

    \n", "
    \n", " \n", " \n", "
    \n", "

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

    \n", "
    \n", " \n", " \n", "
    \n", "

    0900 - 0900 - Ieperiaan aquitardsysteem

    \n", "
    \n", " \n", " \n", "
    \n", "

    0910 - 0910 - Silt van Kortemark

    \n", "
    \n", " \n", " \n", "
    \n", "

    0920 - 0920 - Afzettingen van Kortrijk

    \n", "
    \n", " \n", " \n", "
    \n", "

    0921 - 0921 - Klei van Aalbeke

    \n", "
    \n", " \n", " \n", "
    \n", "

    0922 - 0922 - Klei van Moen

    \n", "
    \n", " \n", " \n", "
    \n", "

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

    \n", "
    \n", " \n", " \n", "
    \n", "

    0924 - 0924 - Klei van Saint-Maur

    \n", "
    \n", " \n", " \n", "
    \n", "

    0925 - 0925 - Klei van Mont-Héribu

    \n", "
    \n", " \n", " \n", "
    \n", "

    1000 - 1000 - Paleoceen Aquifersysteem

    \n", "
    \n", " \n", " \n", "
    \n", "

    1010 - 1010 - Landeniaan Aquifersysteem

    \n", "
    \n", " \n", " \n", "
    \n", "

    1011 - 1011 - Zand van Knokke

    \n", "
    \n", " \n", " \n", "
    \n", "

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

    \n", "
    \n", " \n", " \n", "
    \n", "

    1013 - 1013 - Zand van Grandglise en/of Hoegaarden

    \n", "
    \n", " \n", " \n", "
    \n", "

    1014 - 1014 - Kleiig deel van Lincent

    \n", "
    \n", " \n", " \n", "
    \n", "

    1015 - 1015 - Versteend deel van Lincent

    \n", "
    \n", " \n", " \n", "
    \n", "

    1020 - 1020 - Landeniaan en Heersiaan Aquitard

    \n", "
    \n", " \n", " \n", "
    \n", "

    1021 - 1021 - Siltige afzetting van Halen

    \n", "
    \n", " \n", " \n", "
    \n", "

    1022 - 1022 - Klei van Waterschei

    \n", "
    \n", " \n", " \n", "
    \n", "

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

    \n", "
    \n", " \n", " \n", "
    \n", "

    1030 - 1030 - Heersiaan en Opglabbeek Aquifersysteem

    \n", "
    \n", " \n", " \n", "
    \n", "

    1031 - 1031 - Doorlatend deel van de Mergels van Gelinden

    \n", "
    \n", " \n", " \n", "
    \n", "

    1032 - 1032 - Zand van Orp

    \n", "
    \n", " \n", " \n", "
    \n", "

    1033 - 1033 - Zand van Eisden

    \n", "
    \n", " \n", " \n", "
    \n", "

    1034 - 1034 - Klei van Opoeteren

    \n", "
    \n", " \n", " \n", "
    \n", "

    1035 - 1035 - Zand van Maasmechelen

    \n", "
    \n", " \n", " \n", "
    \n", "

    1100 - 1100 - Krijt Aquifersysteem

    \n", "
    \n", " \n", " \n", "
    \n", "

    1110 - 1110 - Krijt Aquifer

    \n", "
    \n", " \n", " \n", "
    \n", "

    1111 - 1111 - Kalksteen van Houthem

    \n", "
    \n", " \n", " \n", "
    \n", "

    1112 - 1112 - Tufkrijt van Maastricht

    \n", "
    \n", " \n", " \n", "
    \n", "

    1113 - 1113 - Krijt van Gulpen

    \n", "
    \n", " \n", " \n", "
    \n", "

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

    \n", "
    \n", " \n", " \n", "
    \n", "

    1130 - 1130 - Zand van Aken

    \n", "
    \n", " \n", " \n", "
    \n", "

    1140 - 1140 - Turoonmergels op Massief van Brabant

    \n", "
    \n", " \n", " \n", "
    \n", "

    1150 - 1150 - Wealdiaan

    \n", "
    \n", " \n", " \n", "
    \n", "

    1200 - 1200 - Jura-Trias-Perm

    \n", "
    \n", " \n", " \n", "
    \n", "

    1210 - 1210 - Jura

    \n", "
    \n", " \n", " \n", "
    \n", "

    1220 - 1220 - Trias

    \n", "
    \n", " \n", " \n", "
    \n", "

    1230 - 1230 - Perm

    \n", "
    \n", " \n", " \n", "
    \n", "

    1300 - 1300 - Sokkel

    \n", "
    \n", " \n", " \n", "
    \n", "

    1310 - 1310 - Boven-Carboon

    \n", "
    \n", " \n", " \n", "
    \n", "

    1320 - 1320 - Kolenkalk

    \n", "
    \n", " \n", " \n", "
    \n", "

    1330 - 1330 - Devoon

    \n", "
    \n", " \n", " \n", "
    \n", "

    1340 - 1340 - Cambro-Siluur Massief van Brabant

    \n", "
    \n", " \n", "
    \n", "
\n", "
\n", "

\n", "
\n", " " ], "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ip_hydrogeo" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Try-out of use cases" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Select interpretations in a bbox" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[000/001] .\n", "[000/001] .\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
pkey_interpretatiepkey_boringbetrouwbaarheid_interpretatiexystart_interpretatie_mtawdiepte_laag_vandiepte_laag_totaquifer
0https://www.dov.vlaanderen.be/data/interpretat...https://www.dov.vlaanderen.be/data/boring/1974...goed153147.0206931.014.120.02.50152
1https://www.dov.vlaanderen.be/data/interpretat...https://www.dov.vlaanderen.be/data/boring/1974...goed153147.0206931.014.122.57.00254
\n", "
" ], "text/plain": [ " pkey_interpretatie \\\n", "0 https://www.dov.vlaanderen.be/data/interpretat... \n", "1 https://www.dov.vlaanderen.be/data/interpretat... \n", "\n", " pkey_boring \\\n", "0 https://www.dov.vlaanderen.be/data/boring/1974... \n", "1 https://www.dov.vlaanderen.be/data/boring/1974... \n", "\n", " betrouwbaarheid_interpretatie x y start_interpretatie_mtaw \\\n", "0 goed 153147.0 206931.0 14.12 \n", "1 goed 153147.0 206931.0 14.12 \n", "\n", " diepte_laag_van diepte_laag_tot aquifer \n", "0 0.0 2.5 0152 \n", "1 2.5 7.0 0254 " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from pydov.util.location import Within, Box\n", "\n", "# Get all borehole data in a bounding box (llx, lly, ulx, uly)\n", "# the pkey_boring link is not available below, but is in the df\n", "df = ip_hydrogeo.search(location=Within(Box(153145, 206930, 153150, 206935, epsg=31370)))\n", "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Select interpretations in a bbox with selected properties" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['PropertyIsBetween', 'PropertyIsEqualTo', 'PropertyIsGreaterThan', 'PropertyIsGreaterThanOrEqualTo', 'PropertyIsLessThan', 'PropertyIsLessThanOrEqualTo', 'PropertyIsLike', 'PropertyIsNotEqualTo', 'PropertyIsNull', 'SortProperty']\n" ] } ], "source": [ "# list available query methods\n", "methods = [i for i,j in inspect.getmembers(sys.modules['owslib.fes2'], \n", " inspect.isclass) \n", " if 'Property' in i]\n", "print(methods)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The property feature methodes listed above are available from the owslib module. These were not adapted for use in pydov." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[000/001] .\n", "[000/001] c\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
pkey_interpretatiepkey_boringbetrouwbaarheid_interpretatiexystart_interpretatie_mtawdiepte_laag_vandiepte_laag_totaquifer
0https://www.dov.vlaanderen.be/data/interpretat...https://www.dov.vlaanderen.be/data/boring/1974...goed153147.0206931.014.120.02.50152
1https://www.dov.vlaanderen.be/data/interpretat...https://www.dov.vlaanderen.be/data/boring/1974...goed153147.0206931.014.122.57.00254
\n", "
" ], "text/plain": [ " pkey_interpretatie \\\n", "0 https://www.dov.vlaanderen.be/data/interpretat... \n", "1 https://www.dov.vlaanderen.be/data/interpretat... \n", "\n", " pkey_boring \\\n", "0 https://www.dov.vlaanderen.be/data/boring/1974... \n", "1 https://www.dov.vlaanderen.be/data/boring/1974... \n", "\n", " betrouwbaarheid_interpretatie x y start_interpretatie_mtaw \\\n", "0 goed 153147.0 206931.0 14.12 \n", "1 goed 153147.0 206931.0 14.12 \n", "\n", " diepte_laag_van diepte_laag_tot aquifer \n", "0 0.0 2.5 0152 \n", "1 2.5 7.0 0254 " ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Get deep boreholes in a bounding box \n", "from owslib.fes2 import PropertyIsGreaterThanOrEqualTo\n", "# the propertyname can be any of the fields of the hydrogeological interpretations object that belong to the wfs source\n", "# the literal is always a string, no matter what its definition is in the boring object (string, float...)\n", "query = PropertyIsGreaterThanOrEqualTo(\n", " propertyname='betrouwbaarheid_interpretatie', literal='goed')\n", "df = ip_hydrogeo.search(location=Within(Box(153145, 206930, 153150, 206935, epsg=31370)),\n", " query=query\n", " )\n", "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Select interpretations in a municipality" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[000/001] .\n", "[000/006] ......\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
pkey_interpretatiepkey_boringbetrouwbaarheid_interpretatiexystart_interpretatie_mtawdiepte_laag_vandiepte_laag_totaquifer
0https://www.dov.vlaanderen.be/data/interpretat...https://www.dov.vlaanderen.be/data/boring/1891...goed149691.0203202.07.00.028.50300
1https://www.dov.vlaanderen.be/data/interpretat...https://www.dov.vlaanderen.be/data/boring/1891...goed149691.0203202.07.028.551.30400
2https://www.dov.vlaanderen.be/data/interpretat...https://www.dov.vlaanderen.be/data/boring/1950...goed151457.0201527.021.00.049.00300
3https://www.dov.vlaanderen.be/data/interpretat...https://www.dov.vlaanderen.be/data/boring/1950...goed151457.0201527.021.049.059.00400
4https://www.dov.vlaanderen.be/data/interpretat...https://www.dov.vlaanderen.be/data/boring/1895...goed151041.0202065.015.00.02.60151
\n", "
" ], "text/plain": [ " pkey_interpretatie \\\n", "0 https://www.dov.vlaanderen.be/data/interpretat... \n", "1 https://www.dov.vlaanderen.be/data/interpretat... \n", "2 https://www.dov.vlaanderen.be/data/interpretat... \n", "3 https://www.dov.vlaanderen.be/data/interpretat... \n", "4 https://www.dov.vlaanderen.be/data/interpretat... \n", "\n", " pkey_boring \\\n", "0 https://www.dov.vlaanderen.be/data/boring/1891... \n", "1 https://www.dov.vlaanderen.be/data/boring/1891... \n", "2 https://www.dov.vlaanderen.be/data/boring/1950... \n", "3 https://www.dov.vlaanderen.be/data/boring/1950... \n", "4 https://www.dov.vlaanderen.be/data/boring/1895... \n", "\n", " betrouwbaarheid_interpretatie x y start_interpretatie_mtaw \\\n", "0 goed 149691.0 203202.0 7.0 \n", "1 goed 149691.0 203202.0 7.0 \n", "2 goed 151457.0 201527.0 21.0 \n", "3 goed 151457.0 201527.0 21.0 \n", "4 goed 151041.0 202065.0 15.0 \n", "\n", " diepte_laag_van diepte_laag_tot aquifer \n", "0 0.0 28.5 0300 \n", "1 28.5 51.3 0400 \n", "2 0.0 49.0 0300 \n", "3 49.0 59.0 0400 \n", "4 0.0 2.6 0151 " ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from owslib.fes2 import PropertyIsEqualTo\n", "\n", "query = PropertyIsEqualTo(propertyname='gemeente',\n", " literal='Aartselaar')\n", "df = ip_hydrogeo.search(query=query)\n", "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Get interpretations using info from wfs fields, not available in the standard output dataframe" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "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.\n", "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.\n", "For example, make a selection of the interpretations in the municipality of Antwerp that were derived from cpt data" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[000/001] .\n", "[000/130] cccccccccccccccccccccccccccccccccccccccccccccccccc\n", "[050/130] cccccccccccccccccccccccccccccccccccccccccccccccccc\n", "[100/130] cccccccccccccccccccccccccccccc\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
pkey_interpretatiepkey_boringbetrouwbaarheid_interpretatiexystart_interpretatie_mtawdiepte_laag_vandiepte_laag_totaquifer
0https://www.dov.vlaanderen.be/data/interpretat...https://www.dov.vlaanderen.be/data/boring/1963...goed146200.0226000.09.050.019.00100
1https://www.dov.vlaanderen.be/data/interpretat...https://www.dov.vlaanderen.be/data/boring/1963...goed146200.0226000.09.0519.047.00251
2https://www.dov.vlaanderen.be/data/interpretat...https://www.dov.vlaanderen.be/data/boring/1963...goed146200.0226000.09.0547.071.00254
3https://www.dov.vlaanderen.be/data/interpretat...https://www.dov.vlaanderen.be/data/boring/1963...goed146200.0226000.09.0571.072.00300
4https://www.dov.vlaanderen.be/data/interpretat...https://www.dov.vlaanderen.be/data/boring/1984...goed147704.0221948.07.230.09.00100
\n", "
" ], "text/plain": [ " pkey_interpretatie \\\n", "0 https://www.dov.vlaanderen.be/data/interpretat... \n", "1 https://www.dov.vlaanderen.be/data/interpretat... \n", "2 https://www.dov.vlaanderen.be/data/interpretat... \n", "3 https://www.dov.vlaanderen.be/data/interpretat... \n", "4 https://www.dov.vlaanderen.be/data/interpretat... \n", "\n", " pkey_boring \\\n", "0 https://www.dov.vlaanderen.be/data/boring/1963... \n", "1 https://www.dov.vlaanderen.be/data/boring/1963... \n", "2 https://www.dov.vlaanderen.be/data/boring/1963... \n", "3 https://www.dov.vlaanderen.be/data/boring/1963... \n", "4 https://www.dov.vlaanderen.be/data/boring/1984... \n", "\n", " betrouwbaarheid_interpretatie x y start_interpretatie_mtaw \\\n", "0 goed 146200.0 226000.0 9.05 \n", "1 goed 146200.0 226000.0 9.05 \n", "2 goed 146200.0 226000.0 9.05 \n", "3 goed 146200.0 226000.0 9.05 \n", "4 goed 147704.0 221948.0 7.23 \n", "\n", " diepte_laag_van diepte_laag_tot aquifer \n", "0 0.0 19.0 0100 \n", "1 19.0 47.0 0251 \n", "2 47.0 71.0 0254 \n", "3 71.0 72.0 0300 \n", "4 0.0 9.0 0100 " ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from owslib.fes2 import And\n", "from owslib.fes2 import PropertyIsEqualTo\n", "query = And([PropertyIsEqualTo(propertyname='gemeente',\n", " literal='Antwerpen'),\n", " PropertyIsEqualTo(propertyname='Type_proef', \n", " literal='Boring')]\n", " )\n", "df = ip_hydrogeo.search(query=query, )\n", "df = df[df.aquifer.notna()].reset_index(drop=True)\n", "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Visualize results" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using Folium, we can display the results of our search on a map." ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "# import the necessary modules (not included in the requirements of pydov!)\n", "import folium\n", "from folium.plugins import MarkerCluster\n", "from pyproj import Transformer" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "# convert the coordinates to lat/lon for folium\n", "def convert_latlon(x1, y1):\n", " transformer = Transformer.from_crs(\"epsg:31370\", \"epsg:4326\", always_xy=True)\n", " x2,y2 = transformer.transform(x1, y1)\n", " return x2, y2\n", "\n", "df['lon'], df['lat'] = zip(*map(convert_latlon, df['x'], df['y'])) \n", "# convert to list\n", "loclist = df[['lat', 'lon']].values.tolist()" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ "" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# initialize the Folium map on the centre of the selected locations, play with the zoom until ok# initia \n", "fmap = folium.Map(location=[df['lat'].mean(), df['lon'].mean()], zoom_start=12)\n", "marker_cluster = MarkerCluster().add_to(fmap)\n", "for loc in range(0, len(loclist)):\n", " folium.Marker(loclist[loc], popup=df['aquifer'][loc]).add_to(marker_cluster)\n", "fmap" ] } ], "metadata": { "kernelspec": { "display_name": ".venv (3.13.5)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.5" } }, "nbformat": 4, "nbformat_minor": 4 }