# -*- coding: utf-8 -*-
"""Module containing the DOV data type for CPT measurements (Sonderingen),
including subtypes."""
from pydov.types.abstract import AbstractDovSubType, AbstractDovType
from pydov.types.fields import WfsField, XmlField
from pydov.util.dovutil import build_dov_url
from pydov.util.codelists import XsdType
from pydov.types.fields_custom import MvMtawField
[docs]
class Meetdata(AbstractDovSubType):
"""Subtype listing the CPT measurement results."""
intended_for = ['Sondering']
rootpath = './/sondering/sondeonderzoek/penetratietest/meetdata'
fields = [
XmlField(name='lengte',
source_xpath='/lengte',
definition='Geregistreerde sondeerlengte, '
'uitgedrukt in meter.',
datatype='float'),
XmlField(name='diepte',
source_xpath='/diepte',
definition='Diepte waarop sondeerparameters geregistreerd '
'werden, berekend uit de sondeerlengte en de '
'geregistreerde hellingsmeting, '
'uitgedrukt in meter.',
datatype='float'),
XmlField(name='qc',
source_xpath='/qc',
definition='Opgemeten waarde van de conusweerstand, '
'uitgedrukt in MPa.',
datatype='float'),
XmlField(name='Qt',
source_xpath='/Qt',
definition='Opgemeten waarde van de totale weerstand, '
'uitgedrukt in kN.',
datatype='float'),
XmlField(name='fs',
source_xpath='/fs',
definition='Opgemeten waarde van de plaatelijke '
'kleefweerstand, uitgedrukt in kPa.',
datatype='float'),
XmlField(name='u',
source_xpath='/u',
definition='Opgemeten waarde van de porienwaterspanning, '
'uitgedrukt in kPa.',
datatype='float'),
XmlField(name='i',
source_xpath='/i',
definition='Opgemeten waarde van de inclinatie, uitgedrukt '
'in graden.',
datatype='float')
]
[docs]
class Techniek(AbstractDovSubType):
"""Subtype listing the different techniques used to perform the CPT."""
intended_for = ['Sondering']
rootpath = './/sondering/sondeonderzoek/penetratietest/technieken'
fields = [
XmlField(name='techniek_diepte_van',
source_xpath='/diepte_van',
definition='Enkel van toepassing voor het plaatsen van '
'voerbuizen - (code V) of het boren door een harde'
' laag (code B).',
datatype='float'),
XmlField(name='techniek_diepte',
source_xpath='/diepte_techniek',
definition='Diepte waarop techniek toegepast werd.',
datatype='float'),
XmlField(name='techniek',
source_xpath='/techniek',
definition='De gebruikte techniek.',
datatype='string',
codelist=XsdType(
xsd_schema=build_dov_url(
'xdov/schema/latest/xsd/kern/sondering/'
'SonderingDataCodes.xsd'),
typename='SondeerTechniekEnumType',
datatype='string')),
XmlField(name='techniek_andere',
source_xpath='/techniek_andere',
definition="De gebruikte techniek (enkel van toepassing ' + \
'indien de techniek = 'andere').",
datatype='string')
]
[docs]
class Sondering(AbstractDovType):
"""Class representing the DOV data type for CPT measurements."""
subtypes = [Meetdata]
fields = [
WfsField(name='pkey_sondering', source_field='fiche',
datatype='string'),
WfsField(name='sondeernummer', source_field='sondeernummer',
datatype='string'),
WfsField(name='x', source_field='X_mL72', datatype='float'),
WfsField(name='y', source_field='Y_mL72', datatype='float'),
MvMtawField('Maaiveldhoogte in mTAW op dag dat de sondering '
'uitgevoerd werd.'),
WfsField(name='start_sondering_mtaw', source_field='Z_mTAW',
datatype='float'),
WfsField(name='diepte_sondering_van', source_field='diepte_van_m',
datatype='float'),
WfsField(name='diepte_sondering_tot', source_field='diepte_tot_m',
datatype='float'),
WfsField(name='datum_aanvang', source_field='datum_aanvang',
datatype='date'),
WfsField(name='uitvoerder', source_field='uitvoerder',
datatype='string'),
WfsField(name='sondeermethode', source_field='sondeermethode',
datatype='string'),
WfsField(name='apparaat', source_field='apparaat_type',
datatype='string'),
XmlField(name='datum_gw_meting',
source_xpath='/sondering/visueelonderzoek/'
'datumtijd_waarneming_grondwaterstand',
definition='Datum en tijdstip van waarneming van de '
'grondwaterstand.',
datatype='datetime'),
XmlField(name='diepte_gw_m',
source_xpath='/sondering/visueelonderzoek/grondwaterstand',
definition='Diepte water in meter ten opzicht van het '
'aanvangspeil.',
datatype='float')
]
pkey_fieldname = 'fiche'
def __init__(self, pkey):
"""Initialisation.
Parameters
----------
pkey : str
Permanent key of the Sondering (CPT measurement), being a URI of
the form `https://www.dov.vlaanderen.be/data/sondering/<id>`.
"""
super().__init__('sondering', pkey)