Skip to content

Commit

Permalink
Update grondmonster based on xdov changes for observaties.
Browse files Browse the repository at this point in the history
  • Loading branch information
Roel committed Dec 5, 2023
1 parent 3335df1 commit b55c9d6
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 40 deletions.
6 changes: 3 additions & 3 deletions docs/select_datasets.rst
Original file line number Diff line number Diff line change
Expand Up @@ -295,9 +295,9 @@ Default dataframe output
korrelvolumemassa,Grondmonster,10,float,NaN
volumemassa,Grondmonster,10,float,NaN
watergehalte,Grondmonster,10,float,NaN
diameter,Korrelverdeling,10,float,10
fractie,Korrelverdeling,10,float,0
methode,Korrelverdeling,10,string,ZEEFPROEF
methode,Korrelverdeling,10,string,Korrelverdeling d.m.v. hydrometer/areometer
diameter,Korrelverdeling,10,float,0.001575
fractie,Korrelverdeling,10,float,68.4

CPT measurements (Sonderingen)
------------------------------
Expand Down
78 changes: 42 additions & 36 deletions pydov/types/grondmonster.py
Original file line number Diff line number Diff line change
@@ -1,30 +1,43 @@
# -*- coding: utf-8 -*-
"""Module containing the DOV data type for grondmonster, including
subtypes."""
from pydov.types.fields import WfsField, XmlField, XsdType
from pydov.types.fields import WfsField, XmlField

from .abstract import AbstractDovSubType, AbstractDovType


class Korrelverdeling(AbstractDovSubType):
class KorrelverdelingMeetreeks(AbstractDovSubType):
"""Class representing the values of a Korrelverdeling."""

rootpath = './/grondmonster/observatieReeksData/' \
'korrelverdeling_reeks/korrelverdeling'
rootpath = './/waarde_meetreeks/meetreekswaarde'

fields = [
XmlField(name='diameter',
source_xpath='/diameter',
definition='.',
source_xpath='/meetpunt_numeriek',
definition='Diameter van de korrels',
datatype='float',
notnull=False),
XmlField(name='fractie',
source_xpath='/fractie',
definition='.',
source_xpath='/meetwaarde_numeriek',
definition='Fractie met grotere diameter',
datatype='float',
notnull=False),
]


class Korrelverdeling(AbstractDovSubType):
"""Class representing the Korrelverdelingen."""

rootpath = (".//observatie[starts-with(parametergroep, "
"'Onderkenningsproeven-korrelverdeling')]")

subtypes = [KorrelverdelingMeetreeks]

fields = [
XmlField(name='methode',
source_xpath='/methode',
definition='.',
source_xpath='/parameter',
definition=('Gebruikte methode om de korrelverdeling'
' te bepalen'),
datatype='string',
notnull=False)
]
Expand All @@ -35,12 +48,6 @@ class Grondmonster(AbstractDovType):

subtypes = [Korrelverdeling]

__grondmonsterDataCodesEnumType = XsdType(
xsd_schema='https://www.dov.vlaanderen.be/xdov/schema/latest/'
'xsd/kern/grondmonster/GrondmonsterDataCodes.xsd',
typename='MonsterEnumType'
)

fields = [
WfsField(name='pkey_grondmonster',
source_field='grondmonsterfiche',
Expand Down Expand Up @@ -82,53 +89,52 @@ class Grondmonster(AbstractDovType):
source_field='monstertype',
datatype='string'),
XmlField(name='astm_naam',
source_xpath='/grondmonster/observatieData/observatie['
'parameter="ASTM_NAAM"]/waarde_text',
source_xpath='/observatie[parameter="ASTM_naam"]/waarde_text',
definition='ASTM_naam',
datatype='string'),
XmlField(name='grondsoort_bggg',
source_xpath='/grondmonster/observatieData/observatie['
'parameter="BGGG"]/waarde_text',
source_xpath=('/observatie[parameter="Grondsoort '
'BGGG"]/waarde_text'),
definition='Grondsoort BGGG',
datatype='string'),
XmlField(name='humusgehalte',
source_xpath='/grondmonster/observatieData/observatie['
'parameter="HUMUSGEHALTE"]/waarde_numeriek',
source_xpath=('/observatie[parameter="Gehalte Organische '
'stoffen"]/waarde_numeriek'),
definition='Humusgehalte',
datatype='float'),
XmlField(name='kalkgehalte',
source_xpath='/grondmonster/observatieData/observatie['
'parameter="KALKGEHALTE"]/waarde_numeriek',
source_xpath=('/observatie[parameter="Gehalte Kalkachtige '
'stoffen"]/waarde_numeriek'),
definition='Kalkgehalte',
datatype='float'),
XmlField(name='uitrolgrens',
source_xpath='/grondmonster/observatieData/observatie['
'parameter="UITROLGRENS"]/waarde_numeriek',
source_xpath=('/observatie[parameter="Consistentiegrenzen - '
'Uitrolgrens"]/waarde_numeriek'),
definition='Uitrolgrens',
datatype='float'),
XmlField(name='vloeigrens',
source_xpath='/grondmonster/observatieData/observatie['
'parameter="VLOEIGRENS"]/waarde_numeriek',
source_xpath=('/observatie[parameter="Consistentiegrenzen - '
'Vloeigrens"]/waarde_numeriek'),
definition='Vloeigrens',
datatype='float'),
XmlField(name='glauconiet_totaal',
source_xpath='/grondmonster/observatieData/observatie['
'parameter="GLAUCONIET_TOTAAL"]/waarde_numeriek',
source_xpath=('/observatie[parameter="Glauconiet totaal"]/'
'waarde_numeriek'),
definition='Glauconiet totaal in percent',
datatype='float'),
XmlField(name='korrelvolumemassa',
source_xpath='/grondmonster/observatieData/observatie['
'parameter="KORRELVOLUMEMASSA"]/waarde_numeriek',
source_xpath=('observatie[parameter="korrelvolumemassa"]/'
'waarde_numeriek'),
definition='',
datatype='float'),
XmlField(name='volumemassa',
source_xpath='/grondmonster/observatieData/observatie['
'parameter="VOLUMEMASSA"]/waarde_numeriek',
source_xpath=('/observatie[parameter="volumemassa nat"]/'
'waarde_numeriek'),
definition='',
datatype='float'),
XmlField(name='watergehalte',
source_xpath='/grondmonster/observatieData/observatie['
'parameter="WATERGEHALTE"]/waarde_numeriek',
source_xpath=('/observatie[parameter="watergehalte"]/'
'waarde_numeriek'),
definition='',
datatype='float')
]
Expand Down
2 changes: 1 addition & 1 deletion tests/test_search_grondmonster.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ class TestGrondmonsterSearch(AbstractTestSearch):
'grondsoort_bggg', 'humusgehalte', 'kalkgehalte',
'uitrolgrens', 'vloeigrens', 'glauconiet_totaal',
'korrelvolumemassa', 'volumemassa', 'watergehalte',
'diameter', 'fractie', 'methode']
'methode', 'diameter', 'fractie']

def test_search_xmlresolving(self, mp_get_schema,
mp_remote_describefeaturetype,
Expand Down

0 comments on commit b55c9d6

Please sign in to comment.