Example of DOV search methods for interpretations (formele stratigrafie)

Use cases explained below

  • Get 'formele stratigrafie' in a bounding box
  • Get 'formele stratigrafie' with specific properties
  • Get 'formele stratigrafie' in a bounding box based on specific properties
  • Select 'formele stratigrafie' in a municipality and return date
  • Get 'formele stratigrafie' based on fields not available in the standard output dataframe
  • Get 'formele stratigrafie' data, returning fields not available in the standard output dataframe

In [1]:
%matplotlib inline
import inspect, sys

In [2]:
# check pydov path
import pydov

Get information about the datatype 'Formele stratigrafie'


In [3]:
from pydov.search.interpretaties import FormeleStratigrafieSearch
itp = FormeleStratigrafieSearch()

A description is provided for the 'Formele stratigrafie' datatype:


In [4]:
itp.get_description()


Out[4]:
'Een formele stratigrafie van een boring of een sondering is een lithostratigrafische interpretatie van een (gecodeerde) lithologische beschrijving op basis van een welbepaalde vastgelegde standaard per diepte-interval. DOV gebruikt de gangbare standaarden binnen Vlaanderen. U vindt een overzicht van de gebruikte standaarden op onze website. De formele stratigrafie wordt gebruikt om de dikte van het Quartair te identificeren, en om de onderliggende pakketten Neogene, Paleogene en/of oudere lagen te onderscheiden en te identificeren.'

The different fields that are available for objects of the 'Formele stratigrafie' datatype can be requested with the get_fields() method:


In [5]:
fields = itp.get_fields()

# print available fields
for f in fields.values():
    print(f['name'])


pkey_interpretatie
Type_proef
Proefnummer
Proeffiche
x
y
Z_mTAW
diepte_tot_m
gemeente
Auteurs
Datum
Opdrachten
betrouwbaarheid_interpretatie
Geldig_van
Geldig_tot
diepte_laag_van
diepte_laag_tot
lid1
relatie_lid1_lid2
lid2
pkey_boring
pkey_sondering

You can get more information of a field by requesting it from the fields dictionary:

  • name: name of the field
  • definition: definition of this field
  • cost: currently this is either 1 or 10, depending on the datasource of the field. It is an indication of the expected time it will take to retrieve this field in the output dataframe.
  • notnull: whether the field is mandatory or not
  • type: datatype of the values of this field

In [6]:
fields['Datum']


Out[6]:
{'name': 'Datum',
 'definition': 'De datum waarop de formele stratigrafie werd beschreven.',
 'type': 'date',
 'notnull': False,
 'query': True,
 'cost': 1}

Some fields have an additional item values that lists the possible values the field can have, and a definition describing what they mean:


In [7]:
fields['lid1']


Out[7]:
{'name': 'lid1',
 'type': 'string',
 'definition': 'eerste eenheid van de laag formele stratigrafie',
 'notnull': False,
 'query': False,
 'cost': 10,
 'values': {'Aa': 'Formatie van Aalter',
  'AaBe': 'Lid van Beernem (Formatie van Aalter)',
  'AaOe': 'Lid van Oedelem (Formatie van Aalter)',
  'Ab': 'Formatie van Arenberg',
  'Ag': 'Formatie van Adegem',
  'Bb': 'Formatie van Bolderberg',
  'BbGe': 'Lid van Genk (Formatie van Bolderberg)',
  'BbHo': 'Lid van Houthalen (Formatie van Bolderberg)',
  'BbOp': 'Lid van Opitter (Formatie van Bolderberg)',
  'Bc': 'Formatie van Berchem',
  'BcAn': 'Lid van Antwerpen (Formatie van Berchem)',
  'BcEd': 'Lid van Edegem (Formatie van Berchem)',
  'BcKi': 'Lid van Kiel (Formatie van Berchem)',
  'BcZo': 'Lid van Zonderschot (Formatie van Berchem)',
  'Be': 'Formatie van Bertaimont',
  'Bi': 'Formatie van Bilzen',
  'BiBe': 'Lid van Berg (Formatie van Bilzen)',
  'BiKe': 'Lid van Kerniel (Formatie van Bilzen)',
  'BiKs': 'Lid van Kleine Spouwen (Formatie van Bilzen)',
  'Bm': 'Formatie van Boom',
  'BmBt': 'Lid van Boeretang (Formatie van Boom)',
  'BmBw': 'Lid van Belsele-Waas (Formatie van Boom)',
  'BmPu': 'Lid van Putte (Formatie van Boom)',
  'BmTe': 'Lid van Terhagen (Formatie van Boom)',
  'Bo': 'Formatie van Borgloon',
  'BoBt': 'Lid van Boutersem (Formatie van Borgloon)',
  'BoHe': 'Lid van Henis (Formatie van Borgloon)',
  'BoKe': 'Lid van Kerkom (Formatie van Borgloon)',
  'BoOb': 'Lid van Alden Biezen (Formatie van Borgloon)',
  'Br': 'Formatie van Brussel',
  'BrAr': 'Lid van Archennes (Formatie van Brussel)',
  'BrBh': 'Lid van Bois de la Houssière (Formatie van Brussel)',
  'BrCg': 'Lid van Chaumont-Gistoux (Formatie van Brussel)',
  'BrDi': 'Lid van Diegem (Formatie van Brussel)',
  'BrKr': 'Lid van Kraaiberg (Formatie van Brussel)',
  'BrNe': 'Lid van Neerijse (Formatie van Brussel)',
  'Bs': 'Formatie van Brasschaat',
  'BsAk': 'Lid van Brasschaat (Formatie van Brasschaat)',
  'BsHd': 'Lid van Hemeldonk (Formatie van Brasschaat)',
  'BsSv': 'Lid van Schorvoort (Formatie van Brasschaat)',
  'BsVs': 'Lid van Vosselaar (Formatie van Brasschaat)',
  'Ca': 'Carboon',
  'Ci': 'Formatie van Ciply',
  'De': 'Devoon',
  'Di': 'Formatie van Diest',
  'DiDe': 'Lid van Dessel (Formatie van Diest)',
  'DiDn': 'Lid van Deurne (Formatie van Diest)',
  'Eg': 'Formatie van Eigenbilzen',
  'El': 'Formatie van Eeklo',
  'FX': 'Formatie van afgedekte formatie',
  'G': 'geroerd/verstoord',
  'Ge': 'Formatie van Gentbrugge',
  'GeAb': 'Lid van Aalterbrugge (Formatie van Gentbrugge)',
  'GeHo': 'Lid van Hombeek (Formatie van Gentbrugge)',
  'GeKw': 'Lid van Kwatrecht (Formatie van Gentbrugge)',
  'GeMe': 'Lid van Merelbeke (Formatie van Gentbrugge)',
  'GePi': 'Lid van Pittem (Formatie van Gentbrugge)',
  'GeVl': 'Lid van Vlierzele (Formatie van Gentbrugge)',
  'Gm': 'Formatie van Gembloux',
  'Gt': 'Formatie van Gent',
  'GtAb': 'Lid van Achterbos (Formatie van Gent)',
  'GtDi': 'Lid van Dilsen (Formatie van Gent)',
  'GtDp': 'Lid van De Panne (Formatie van Gent)',
  'GtOg': 'Lid van Opgrimbie (Formatie van Gent)',
  'GtTi': 'Lid van Tisselt (Formatie van Gent)',
  'Ha': 'Formatie van Hainin',
  'Hn': 'Formatie van Hannut',
  'HnBe': 'Lid van Beselare (Formatie van Hannut)',
  'HnCh': 'Lid van Chercq (Formatie van Hannut)',
  'HnGr': 'Lid van Grandglise (Formatie van Hannut)',
  'HnHa': 'Lid van Halen (Formatie van Hannut)',
  'HnLi': 'Lid van Lincent (Formatie van Hannut)',
  'HnWa': 'Lid van Waterschei (Formatie van Hannut)',
  'Ho': 'Formatie van Houthem',
  'HP': 'Groep van Haspengouw',
  'Hs': 'Formatie van Heers',
  'HsGe': 'Lid van Gelinden (Formatie van Heers)',
  'HsMa': 'Lid van Maaseik (Formatie van Heers)',
  'HsOr': 'Lid van Orp (Formatie van Heers)',
  'Hy': 'Formatie van Hyon',
  'HyBo': 'Lid van Bois-la-Haut (Formatie van Hyon)',
  'HyEg': 'Lid van Egem (Formatie van Hyon)',
  'HyMo': 'Lid van Mont-Panisel (Formatie van Hyon)',
  'Hz': 'Formatie van Herzeele',
  'IE': 'Groep van Ieper',
  'Kd': 'Formatie van Kattendijk',
  'Ke': 'Formatie van Kempen',
  'Kh': 'Formatie van Kruishoutem',
  'Kl': 'Formatie van Kasterlee',
  'Ko': 'Formatie van Kortrijk',
  'KoAa': 'Lid van Aalbeke (Formatie van Kortrijk)',
  'KoMh': 'Lid van Mont-Héribu (Formatie van Kortrijk)',
  'KoMo': 'Lid van Moen (Formatie van Kortrijk)',
  'KoMp': 'Lid van Mons-en-Pévèle (Formatie van Kortrijk)',
  'KoOl': 'Lid van Lower Orchies (Formatie van Kortrijk)',
  'KoOm': 'Lid van Middle Orchies (Formatie van Kortrijk)',
  'KoOr': 'Lid van Orchies (Formatie van Kortrijk)',
  'KoOu': 'Lid van Upper Orchies (Formatie van Kortrijk)',
  'KoRo': 'Lid van Roubaix (Formatie van Kortrijk)',
  'KoSm': 'Lid van Saint Maur (Formatie van Kortrijk)',
  'KoZo': 'Lid van Het Zoute (Formatie van Kortrijk)',
  'KRWe': 'Lid van Wealden (Formatie van Wealden)',
  'Kz': 'Formatie van Kiezel',
  'KzB1': 'Lid van Brunssum1 (Formatie van Kiezel)',
  'KzB2': 'Lid van Brunssum2 (Formatie van Kiezel)',
  'KzJa': 'Lid van Jagersborg (Formatie van Kiezel)',
  'KzPe': 'Lid van Pey (Formatie van Kiezel)',
  'KzWb': 'Lid van Waubach (Formatie van Kiezel)',
  'KzX': 'Lid van ongedefinieerd (Formatie van Kiezel)',
  'LA': 'Groep van Landen',
  'Ld': 'Formatie van Lede',
  'Li': 'Formatie van Lillo',
  'LiKr': 'Lid van Kruisschans (Formatie van Lillo)',
  'LiLu': 'Lid van Luchtbal (Formatie van Lillo)',
  'LiMe': 'Lid van Merksem (Formatie van Lillo)',
  'LiOo': 'Lid van Oorderen (Formatie van Lillo)',
  'LiX': 'Lid van ongedifferentieerd (Formatie van Lillo)',
  'LiZa': 'Lid van Zandvliet (Formatie van Lillo)',
  'Lk': 'Formatie van Lanklaar',
  'Ln': 'Formatie van Lanaken',
  'Ma': 'Formatie van Maldegem',
  'MA': 'Groep van Maas',
  'MAa': 'Formatie van Aalburg',
  'MaAs': 'Lid van Asse (Formatie van Maldegem)',
  'MaBu': 'Lid van Buisputten (Formatie van Maldegem)',
  'MAk': 'Formatie van Aachen',
  'MAkAa': 'Lid van Zand van Aachen (Formatie van Aachen)',
  'MAkHe': 'Lid van Hergenrath (Formatie van Aachen)',
  'MaOd': 'Lid van Onderdijke (Formatie van Maldegem)',
  'MaOn': 'Lid van Onderdale (Formatie van Maldegem)',
  'MaUr': 'Lid van Ursel (Formatie van Maldegem)',
  'MaWe': 'Lid van Wemmel (Formatie van Maldegem)',
  'MaZo': 'Lid van Zomergem (Formatie van Maldegem)',
  'Mb': 'Formatie van Meulebeke',
  'MBu': 'Formatie van Buntsandstein',
  'MBuBr': 'Lid van Bree (Formatie van Buntsandstein)',
  'MBuBu': 'Lid van Bullen (Formatie van Buntsandstein)',
  'MBuGr': 'Lid van Gruitrode (Formatie van Buntsandstein)',
  'MDo': 'Formatie van Dorne',
  'MDoB1': 'Lid van Beutenaken1 (Formatie van Dorne)',
  'MDoB2': 'Lid van Beutenaken2 (Formatie van Dorne)',
  'MDoOv': 'Lid van Onder-Vijlen (Formatie van Dorne)',
  'MDoZe': 'Lid van Zeven Wegen Equivalent (Formatie van Dorne)',
  'Me': 'Formatie van Merksplas',
  'ME': 'Groep van Maas',
  'MeB': 'Lid van Merksplas (Formatie van Merksplas)',
  'MEs': 'Esplechin',
  'MGu': 'Formatie van Gulpen',
  'MGuBe': 'Lid van Beutenaken Kalk (Formatie van Gulpen)',
  'MGuLa': 'Lid van Lanaye (Formatie van Gulpen)',
  'MGuLi': 'Lid van Lixhe (Formatie van Gulpen)',
  'MGuVi': 'Lid van Vijlen (Formatie van Gulpen)',
  'MGuZe': 'Lid van Zeven Wegen (Formatie van Gulpen)',
  'MHa': 'Hainaut',
  'MJU': 'Jura',
  'MKe': 'Formatie van Keuper',
  'MKR': 'Krijt',
  'Ml': 'Formatie van Mol',
  'MlDo': 'Lid van Donk (Formatie van Mol)',
  'MlMa': 'Lid van Maat (Formatie van Mol)',
  'MlMh': 'Lid van Maatheide (Formatie van Mol)',
  'MlRe': 'Lid van Rees (Formatie van Mol)',
  'MlRu': 'Lid van Russendorp (Formatie van Mol)',
  'MMa': 'Formatie van Maastricht',
  'MMaKu': 'Lid van Kunrade (Formatie van Maastricht)',
  'MMaVa': 'Lid van Valkenburg (Formatie van Maastricht)',
  'MMs': 'Formatie van Maisières Chalk',
  'MMu': 'Formatie van Muschelkalk',
  'MMuAn': 'Lid van Anhydrit Gruppe (Formatie van Muschelkalk)',
  'MMuHa': 'Lid van Hauptmuschelkalk (Formatie van Muschelkalk)',
  'MMuWe': 'Lid van Wellenkalk (Formatie van Muschelkalk)',
  'MNe': 'Formatie van Nevele',
  'MNeSt': 'Lid van Stekene (Formatie van Nevele)',
  'MNeWa': 'Lid van Wachtebeke (Formatie van Nevele)',
  'Mo': 'Formatie van Mons',
  'Mp': 'Formatie van Mons-en-Pévèle',
  'MRo': 'Formatie van Röt',
  'MSl': 'Formatie van Sleen',
  'MVa': 'Formatie van Vaals',
  'MVaBG': 'Lid van Boven Vaalser Groenzand (Formatie van Vaals)',
  'MVaOG': 'Lid van Onder Vaalser groenzand (Formatie van Vaals)',
  'MVg': 'Formatie van Vert Galand',
  'Mx': 'Formatie van Melle',
  'My': 'Formatie van Malle',
  'Ne': 'Neogeen',
  'Op': 'Formatie van Opglabbeek',
  'OpEi': 'Lid van Eisden (Formatie van Opglabbeek)',
  'OpMa': 'Lid van Maasmechelen (Formatie van Opglabbeek)',
  'OpOp': 'Lid van Opoeteren (Formatie van Opglabbeek)',
  'Ot': 'Formatie van Oostende',
  'Ow': 'Formatie van Oostwinkel',
  'P': 'Paleozoïcum',
  'P1': 'Onder Paleozoïcum',
  'P2': 'Boven Paleozoïcum',
  'PAi': 'Lid van Aisemont (Formatie van Aisemont)',
  'PAl': 'Formatie van Alvaux',
  'PAn': 'Formatie van Andenne',
  'PAt': 'Formatie van Antoing',
  'PAtGa': 'Lid van Gaurain-Ramecroix (Formatie van Antoing)',
  'PAtWa': 'Lid van Warchin (Formatie van Antoing)',
  'PAv': 'Formatie van Abbaye de Villers',
  'PBe': 'Formatie van Berneau',
  'PBg': 'Formatie van Bellegem',
  'PBi': 'Formatie van Booischot',
  'PBl': 'Lid van Blanmont (Formatie van Blanmont)',
  'PBn': 'Formatie van Bornival',
  'PBnXa': 'Lid van Lid niet benoemd (Formatie van Bornival)',
  'PBnXb': 'Lid van Lid niet benoemd (Formatie van Bornival)',
  'PBnXc': 'Lid van Lid niet benoemd (Formatie van Bornival)',
  'PBo': 'Formatie van Bosscheveld',
  'PBp': 'Formatie van Bois Grand-Père',
  'PBr': 'Formatie van Brûtia',
  'PBv': 'Formatie van Bovesse',
  'PC': 'Groep van Condroz',
  'PCa': 'Formatie van Châtelet',
  'PCaFl': 'Lid van Floriffoux (Formatie van Châtelet)',
  'PCaRa': 'Lid van Ransart (Formatie van Châtelet)',
  'PCe': 'Formatie van Chevlipont',
  'PCh': 'Formatie van Charleroi',
  'PChAs': 'Lid van As (Formatie van Charleroi)',
  'PChEi': 'Lid van Eikenberg (Formatie van Charleroi)',
  'PChMo': 'Lid van Mons (Formatie van Charleroi)',
  'PCo': 'Formatie van Chokier',
  'PCoBo': 'Lid van Bois-et-Borsu (Formatie van Chokier)',
  'PCoTr': 'Lid van Tramaka (Formatie van Chokier)',
  'PCr': 'Formatie van Corroy',
  'Pd': 'Formatie van Poederlee',
  'PDe': 'Formatie van Deerlijk',
  'PdHe': 'Lid van Heieinde (Formatie van Poederlee)',
  'PEt': 'Formatie van Etroeungt',
  'PEv': 'Formatie van Evieux',
  'PF': 'Groep van Frasnes',
  'PFa': 'Formatie van Famenne',
  'PFf': 'Formatie van Froide Fontaine',
  'PFi': 'Formatie van Fallais',
  'PFiPi': 'Lid van Pitet (Formatie van Fallais)',
  'PFiXa': 'Lid van Lid A (Formatie van Fallais)',
  'PFiXb': 'Lid van Lid B (Formatie van Fallais)',
  'PFiXc': 'Lid van Lid C (Formatie van Fallais)',
  'PFiXd': 'Lid van Lid D (Formatie van Fallais)',
  'PFiXe': 'Lid van Lid E (Formatie van Fallais)',
  'PFl': 'Formatie van Flénu',
  'PFlMe': 'Lid van Meeuwen (Formatie van Flénu)',
  'PFlNe': 'Lid van Neerglabbeek (Formatie van Flénu)',
  'PFlWa': 'Lid van Wasmes (Formatie van Flénu)',
  'PFq': 'Lid van Fauquez (Formatie van Fauquez)',
  'PFr': 'Formatie van Franc-Waret',
  'PFu': 'Formatie van Fumal',
  'PG': 'Groep van Givet',
  'PGe': 'Formatie van Goeree',
  'PGo': 'Formatie van Gottignies',
  'PHe': 'Formatie van Helchteren',
  'PHeH1': 'Lid van Helchteren1 (Formatie van Helchteren)',
  'PHeH2': 'Lid van Helchteren2 (Formatie van Helchteren)',
  'PHeH3': 'Lid van Helchteren3 (Formatie van Helchteren)',
  'PHeH4': 'Lid van Helchteren4 (Formatie van Helchteren)',
  'PHeH5': 'Lid van Helchteren5 (Formatie van Helchteren)',
  'PHi': 'Formatie van Heibaart',
  'PHo': 'Formatie van Hosdin',
  'PHs': 'Formatie van Hastière',
  'PHu': 'Formatie van Huet',
  'PIt': 'Formatie van Ittre',
  'PJo': 'Formatie van Jodoigne',
  'PK': 'Groep van Kolenkalk',
  'PKe': 'Formatie van Kessel',
  'PLa': 'Formatie van Landelies',
  'PLm': 'Formatie van Lambermont',
  'PLo': 'Formatie van Loenhout',
  'PLs': 'Formatie van Lust',
  'PLt': 'Formatie van Latinne',
  'PLu': 'Formatie van Lustin',
  'PMa': 'Formatie van Mazy',
  'PMd': 'Formatie van Madot',
  'PMdXa': 'Lid van Lid niet benoemd (Formatie van Madot)',
  'PMdXb': 'Lid van Lid niet benoemd (Formatie van Madot)',
  'PMdXc': 'Lid van Lid niet benoemd (Formatie van Madot)',
  'PMdXd': 'Lid van Lid niet benoemd (Formatie van Madot)',
  'PMdXe': 'Lid van Lid niet benoemd (Formatie van Madot)',
  'PMdXf': 'Lid van Lid niet benoemd (Formatie van Madot)',
  'PMdXg': 'Lid van Lid niet benoemd (Formatie van Madot)',
  'PMn': 'Formatie van Montfort',
  'PMo': 'Formatie van Mousty',
  'PMoFr': 'Lid van Franquenies (Formatie van Mousty)',
  'PMoTa': 'Lid van Tangissart (Formatie van Mousty)',
  'PMoXx': 'Lid van Lid niet benoemd (Formatie van Mousty)',
  'PMu': 'Formatie van Mautiennes',
  'PNe': 'Formatie van Neeroeteren',
  'POD': 'Ordovicium',
  'POr': 'Formatie van Orient',
  'POs': 'Formatie van Oisquercq',
  'POsAs': 'Lid van Asquempont (Formatie van Oisquercq)',
  'POsRi': 'Lid van Ripain (Formatie van Oisquercq)',
  'PPe': 'Formatie van Pecq',
  'PPo': "Formatie van Pont d'Arcole",
  'PPr': 'Formatie van Presles',
  'PPt': 'Formatie van Petit-Roeulx',
  'PRh': 'Formatie van Rhisnes',
  'PRi': 'Formatie van Rigenée',
  'PRk': 'Formatie van Rekkem',
  'PRn': 'Formatie van Ronquières',
  'PSa': 'Formatie van Samme',
  'PSaBo': 'Lid van Bois de la Rocq (Formatie van Samme)',
  'PSaFe': 'Lid van Feluy (Formatie van Samme)',
  'PSaMe': 'Lid van Mévergnies (Formatie van Samme)',
  'PSe': 'Formatie van Steenkerque',
  'PSo': 'Formatie van Souvré',
  'PSt': 'Formatie van Steentje-Turnhout',
  'PTo': 'Formatie van Tournai',
  'PToAl': 'Lid van Allain (Formatie van Tournai)',
  'PToCr': 'Lid van Crampon (Formatie van Tournai)',
  'PToPo': 'Lid van Point-à-Rieu (Formatie van Tournai)',
  'PToPr': 'Lid van Providence (Formatie van Tournai)',
  'PToVa': 'Lid van Vaulx (Formatie van Tournai)',
  'PToVi': 'Lid van Vignobles (Formatie van Tournai)',
  'PTr': 'Formatie van Tribotte',
  'PTu': 'Formatie van Tubize',
  'PTuFo': 'Lid van Les Forges (Formatie van Tubize)',
  'PTuRo': 'Lid van Rogissart (Formatie van Tubize)',
  'PTuXx': 'Lid van Lid niet benoemd (Formatie van Tubize)',
  'PVa': 'Formatie van Les Vallées',
  'PVc': 'Formatie van Vichenet',
  'PVe': 'Formatie van Vesder',
  'PVi': 'Formatie van Visé',
  'PVl': 'Formatie van Velp',
  'PVs': 'Formatie van Vissoul',
  'Q': 'Quartaire afzetting',
  'QH': 'Quartair Holoceen',
  'QP': 'Quartair Pleistoceen',
  'Rb': 'Formatie van Rozebeke',
  'RO': 'Groep van Romont',
  'RU': 'Groep van Rupel',
  'S': 'Primair',
  'SC': 'Groep van Schelde',
  'Sh': 'Formatie van Sint Huibrechts Hern',
  'ShGr': 'Lid van Grimmertingen (Formatie van Sint Huibrechts Hern)',
  'ShNe': 'Lid van Neerrepen (Formatie van Sint Huibrechts Hern)',
  'Sk': 'Formatie van Stokkem',
  'St': 'Formatie van Sterksel',
  'StBo': 'Lid van Bocholt (Formatie van Sterksel)',
  'StHa': 'Lid van Hamont (Formatie van Sterksel)',
  'StLo': 'Lid van Lommel (Formatie van Sterksel)',
  'T': 'Tertiaire afzetting',
  'Ti': 'Formatie van Tienen',
  'TiDo': 'Lid van Dormaal (Formatie van Tienen)',
  'TiEr': 'Lid van Erquelinne (Formatie van Tienen)',
  'TiKn': 'Lid van Knokke (Formatie van Tienen)',
  'TiLo': 'Lid van Loksbergen (Formatie van Tienen)',
  'TO': 'Groep van Tongeren',
  'TR': 'Trias',
  'Tt': 'Formatie van Tielt',
  'TtEg': 'Lid van Egem (Formatie van Tielt)',
  'TtEk': 'Lid van Egemkapel (Formatie van Tielt)',
  'TtKo': 'Lid van Kortemark (Formatie van Tielt)',
  'U': 'Onbekend',
  'Ve': 'Formatie van Veldwezelt',
  'Vl': 'Formatie van Vlaanderen',
  'VlCa': 'Lid van Calais (Formatie van Vlaanderen)',
  'VlDh': 'Lid van De Haan (Formatie van Vlaanderen)',
  'VlDu': 'Lid van Dunkerque (Formatie van Vlaanderen)',
  'Vo': 'Formatie van Voort',
  'VoSo': 'Lid van Someren (Formatie van Voort)',
  'VoVe': 'Lid van Veldhoven (Formatie van Voort)',
  'VoVo': 'Lid van Voort (Formatie van Voort)',
  'We': 'Formatie van Weelde',
  'Zd': 'Formatie van Zutendaal',
  'ZE': 'Groep van Zenne',
  'Zz': 'Formatie van Zelzate',
  'ZzBa': 'Lid van Bassevelde (Formatie van Zelzate)',
  'ZzRu': 'Lid van Ruisbroek (Formatie van Zelzate)',
  'ZzWa': 'Lid van Watervliet (Formatie van Zelzate)'}}

Example use cases

Get 'Formele stratigrafie' in a bounding box

Get data for all the 'Formele stratigrafie' interpretations that are geographically located within the bounds of the specified box.

The coordinates are in the Belgian Lambert72 (EPSG:31370) coordinate system and are given in the order of lower left x, lower left y, upper right x, upper right y.


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

df = itp.search(location=Within(Box(153145, 206930, 153150, 206935)))
df.head()


[000/001] .
Out[8]:
pkey_interpretatie pkey_boring pkey_sondering betrouwbaarheid_interpretatie x y diepte_laag_van diepte_laag_tot lid1 relatie_lid1_lid2 lid2
0 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1974... NaN onbekend 153147.0 206931.0 0.0 3.00 Q T Q
1 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1974... NaN onbekend 153147.0 206931.0 3.0 14.05 U T Bc

The dataframe contains one 'Formele stratigrafie' interpretation where two layers ('laag') were identified. The available data are flattened to represent unique attributes per row of the dataframe.

Using the pkey_interpretatie field one can request the details of this interpretation in a webbrowser:


In [9]:
for pkey_interpretatie in set(df.pkey_interpretatie):
    print(pkey_interpretatie)


https://www.dov.vlaanderen.be/data/interpretatie/2000-001087

Using the field's values information, we can translate the stratigraphical codes to human readable layers:


In [10]:
df['lid1_lb'] = df['lid1'].map(fields['lid1']['values'])
df['lid2_lb'] = df['lid2'].map(fields['lid2']['values'])
df[['pkey_interpretatie', 'diepte_laag_van', 'diepte_laag_tot', 'lid1', 'lid1_lb', 'relatie_lid1_lid2', 'lid2', 'lid2_lb']]


Out[10]:
pkey_interpretatie diepte_laag_van diepte_laag_tot lid1 lid1_lb relatie_lid1_lid2 lid2 lid2_lb
0 https://www.dov.vlaanderen.be/data/interpretat... 0.0 3.00 Q Quartaire afzetting T Q Quartaire afzetting
1 https://www.dov.vlaanderen.be/data/interpretat... 3.0 14.05 U Onbekend T Bc Formatie van Berchem

Get 'Formele stratigrafie' with specific properties

Next to querying interpretations based on their geographic location within a bounding box, we can also search for interpretations matching a specific set of properties. For this we can build a query using a combination of the 'FormeleStratigrafie' fields and operators provided by the WFS protocol.

A list of possible operators can be found below:


In [11]:
[i for i,j in inspect.getmembers(sys.modules['owslib.fes'], inspect.isclass) if 'Property' in i]


Out[11]:
['PropertyIsBetween',
 'PropertyIsEqualTo',
 'PropertyIsGreaterThan',
 'PropertyIsGreaterThanOrEqualTo',
 'PropertyIsLessThan',
 'PropertyIsLessThanOrEqualTo',
 'PropertyIsLike',
 'PropertyIsNotEqualTo',
 'PropertyIsNull',
 'SortProperty']

In this example we build a query using the PropertyIsGreaterThan and PropertyIsEqualTo operators to find all interpretations that are at least 20 m deep, that are deemed appropriate for a range of 1 km from a defined point:


In [12]:
from owslib.fes import And, PropertyIsGreaterThan, PropertyIsEqualTo
from pydov.util.location import WithinDistance, Point

query = And([PropertyIsEqualTo(propertyname='Betrouwbaarheid',
                              literal='goed'),
            PropertyIsGreaterThan(propertyname='diepte_tot_m',
                                 literal='20'),
           ])
            
df = itp.search(query=query, 
                location=WithinDistance(Point(153145, 206930), 1000))

df.head()


[000/007] .......
Out[12]:
pkey_interpretatie pkey_boring pkey_sondering betrouwbaarheid_interpretatie x y diepte_laag_van diepte_laag_tot lid1 relatie_lid1_lid2 lid2
0 https://www.dov.vlaanderen.be/data/interpretat... NaN https://www.dov.vlaanderen.be/data/sondering/1... goed 153898.0 207038.0 0.0 4.2 Q T Q
1 https://www.dov.vlaanderen.be/data/interpretat... NaN https://www.dov.vlaanderen.be/data/sondering/1... goed 153898.0 207038.0 4.2 21.0 Bc T Bc
2 https://www.dov.vlaanderen.be/data/interpretat... NaN https://www.dov.vlaanderen.be/data/sondering/1... goed 153898.0 207038.0 21.0 28.2 Bm T Bm
3 https://www.dov.vlaanderen.be/data/interpretat... NaN https://www.dov.vlaanderen.be/data/sondering/1... goed 153956.0 207033.0 0.0 3.8 Q T Q
4 https://www.dov.vlaanderen.be/data/interpretat... NaN https://www.dov.vlaanderen.be/data/sondering/1... goed 153956.0 207033.0 3.8 20.0 Bc T Bc

Once again we can use the pkey_interpretatie as a permanent link to the information of these interpretations:


In [13]:
for pkey_interpretatie in set(df.pkey_interpretatie):
    print(pkey_interpretatie)


https://www.dov.vlaanderen.be/data/interpretatie/2006-240082
https://www.dov.vlaanderen.be/data/interpretatie/2006-240081
https://www.dov.vlaanderen.be/data/interpretatie/2006-240085
https://www.dov.vlaanderen.be/data/interpretatie/2006-240083
https://www.dov.vlaanderen.be/data/interpretatie/2006-240153
https://www.dov.vlaanderen.be/data/interpretatie/2006-240086
https://www.dov.vlaanderen.be/data/interpretatie/2006-240080

Get 'Formele stratigrafie' in a bounding box based on specific properties

We can combine a query on attributes with a query on geographic location to get the interpretations within a bounding box that have specific properties.

The following example requests the interpretations of boreholes only, within the given bounding box.

(Note that the datatype of the literal parameter should be a string, regardless of the datatype of this field in the output dataframe.)


In [14]:
from owslib.fes import PropertyIsEqualTo

query = PropertyIsEqualTo(
            propertyname='Type_proef',
            literal='Boring')

df = itp.search(
    location=Within(Box(153145, 206930, 154145, 207930)),
    query=query
    )

df.head()


[000/024] .................c......
Out[14]:
pkey_interpretatie pkey_boring pkey_sondering betrouwbaarheid_interpretatie x y diepte_laag_van diepte_laag_tot lid1 relatie_lid1_lid2 lid2
0 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1974... NaN onbekend 153174.0 207102.0 0.0 3.0 Q T Q
1 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1974... NaN onbekend 153174.0 207102.0 3.0 6.5 Bc T Bc
2 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1975... NaN onbekend 153184.0 207228.0 0.0 1.4 Q T Q
3 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1975... NaN onbekend 153184.0 207228.0 1.4 6.7 Bc T Bc
4 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1984... NaN goed 153793.0 206970.0 0.0 4.5 Q T Q

We can look at one of the interpretations in a webbrowser using its pkey_interpretatie:


In [15]:
for pkey_interpretatie in set(df.pkey_interpretatie):
    print(pkey_interpretatie)


https://www.dov.vlaanderen.be/data/interpretatie/2000-023869
https://www.dov.vlaanderen.be/data/interpretatie/2000-007695
https://www.dov.vlaanderen.be/data/interpretatie/2000-023870
https://www.dov.vlaanderen.be/data/interpretatie/2000-023816
https://www.dov.vlaanderen.be/data/interpretatie/2000-001087
https://www.dov.vlaanderen.be/data/interpretatie/2000-007699
https://www.dov.vlaanderen.be/data/interpretatie/2000-000327
https://www.dov.vlaanderen.be/data/interpretatie/2000-007698
https://www.dov.vlaanderen.be/data/interpretatie/2000-007739
https://www.dov.vlaanderen.be/data/interpretatie/2000-023809
https://www.dov.vlaanderen.be/data/interpretatie/2000-023813
https://www.dov.vlaanderen.be/data/interpretatie/2000-023815
https://www.dov.vlaanderen.be/data/interpretatie/2000-007697
https://www.dov.vlaanderen.be/data/interpretatie/2000-001088
https://www.dov.vlaanderen.be/data/interpretatie/2000-007740
https://www.dov.vlaanderen.be/data/interpretatie/2000-023808
https://www.dov.vlaanderen.be/data/interpretatie/2000-007696
https://www.dov.vlaanderen.be/data/interpretatie/2000-007694
https://www.dov.vlaanderen.be/data/interpretatie/2000-023811
https://www.dov.vlaanderen.be/data/interpretatie/1999-007793
https://www.dov.vlaanderen.be/data/interpretatie/2000-001378
https://www.dov.vlaanderen.be/data/interpretatie/2000-006799
https://www.dov.vlaanderen.be/data/interpretatie/2000-023807
https://www.dov.vlaanderen.be/data/interpretatie/2000-001313

Select 'Formele stratigrafie' in a municipality and return date

We can limit the columns in the output dataframe by specifying the return_fields parameter in our search.

In this example we query all the 'Formele stratigrafie' interpretations in a distance of 1 km and return their date:


In [16]:
df = itp.search(location=WithinDistance(Point(153145, 206930), 1000),
                return_fields=('Datum',))
df.head()


Out[16]:
Datum
0 2000-05-20
1 2000-02-02
2 1999-03-01
3 2000-05-20
4 1999-03-01

In [17]:
df.describe()


Out[17]:
Datum
count 40
unique 6
top 2000-05-20
freq 23

Get 'Formele stratigrafie' based on fields not available in the standard output dataframe

To keep the output dataframe size acceptable, not all available WFS fields are included in the standard output. However, one can use this information to select interpretations as illustrated below.

For example, make a selection of the interpretations in municipality the of Antwerp, before 1/1/1990:

!remark: mind that the municipality attribute is merely an attribute that is defined by the person entering the data. It can be ok, empty, outdated or wrong!


In [18]:
from owslib.fes import And, PropertyIsEqualTo, PropertyIsLessThan

query = And([PropertyIsEqualTo(propertyname='gemeente',
                               literal='Antwerpen'),
             PropertyIsLessThan(propertyname='Datum', 
                                 literal='1990-01-01')]
            )
df = itp.search(query=query,
                return_fields=('pkey_interpretatie', 'Datum'))
df.head()


Out[18]:
pkey_interpretatie Datum
0 https://www.dov.vlaanderen.be/data/interpretat... 1984-09-10

Get 'Formele stratigrafie' data, returning fields not available in the standard output dataframe

As denoted in the previous example, not all available fields are available in the default output frame to keep its size limited. However, you can request any available field by including it in the return_fields parameter of the search:


In [19]:
query = PropertyIsEqualTo(
            propertyname='gemeente',
            literal='Leuven')

df = itp.search(query=query,
                return_fields=('pkey_interpretatie', 'pkey_boring', 'pkey_sondering',
                               'x', 'y', 'Z_mTAW', 'gemeente', 'Auteurs', 'Proefnummer'))

df.head()


Out[19]:
pkey_interpretatie pkey_boring pkey_sondering x y Z_mTAW gemeente Auteurs Proefnummer
0 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1998... NaN 173820.0 180035.0 13.73 Leuven Goolaerts, S. - Katholieke Universiteit Leuven... kb24d74e-B385
1 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1968... NaN 169700.0 172485.0 35.00 Leuven Goolaerts, S. - Katholieke Universiteit Leuven... kb32d89w-B554
2 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1968... NaN 169905.0 172655.0 48.51 Leuven Goolaerts, S. - Katholieke Universiteit Leuven... kb32d89w-B557
3 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1968... NaN 169300.0 172045.0 50.00 Leuven Goolaerts, S. - Katholieke Universiteit Leuven... kb32d89w-B548
4 https://www.dov.vlaanderen.be/data/interpretat... https://www.dov.vlaanderen.be/data/boring/1998... NaN 173055.7 177004.4 26.10 Leuven De Ceukelaire, Marleen - MVG - Afdeling Natuur... GEO-98/179-PB602o

Visualize results

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


In [21]:
# import the necessary modules (not included in the requirements of pydov!)
import folium
from folium.plugins import MarkerCluster
from pyproj import Transformer

In [22]:
# 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()

In [23]:
# initialize the Folium map on the centre of the selected locations, play with the zoom until ok
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['Proefnummer'][loc]).add_to(marker_cluster)
fmap


Out[23]:
Make this Notebook Trusted to load map: File -> Trust Notebook