Functies

De beschijving van functies zijn bijgewerkt tot versie 1.2.0 van de Validatiemodule. Hieronder staan de functies beschreven uitgesplitst naar:

Hulpfuncties (general_rules)

Hulpfuncties worden gebruikt als functie in de sectie general_rules van de validatieregels. Hulpfuncties geven altijd een numerieke waarde terug, met uitzondering van de functies join_parameter en object_relation.

Naam

Invoer

Beschrijving

Naam

Invoer

Beschrijving

buffer

radius (m)

percentile (0-100)

coverage (AHN)

fill_value (optioneel)

Berekent het percentiel (percentile) over een raster (coverage) binnen een vlak beschreven als een cirkel met een radius rondom het object.

Wanneer fill_value wordt gespecificeerd, dan worden ontbrekende waarden uit de functie opgevuld met deze waarde.

In de validatieModule wordt nu het AHN 3 DTM met een celgrootte van 5m gebruikt als coverage.

difference

left

right

absolute (default=False)

Berekent het verschil tussen een linker (left) en rechter (right), waarbij. Het resultaat = left - right

Het is mogelijk het absolute (absolute=True) te berekenen met het optionele argument absolute.

left en right kunnen een getal of een HyDAMO attribuut zijn.

divide

left

right

Deelt de linker (left) door de rechter (right), term. Dus: resultaat = left / right

left en right kunnen een getal of een HyDAMO attribuut zijn.

join_parameter

join_object

join_parameter

fill_value (optioneel)

Uit de tabel met een gerelateerd object (join_object) wordt een parameter (join_parameter) gejoined aan een object.

Voorbeeld: aan de HyDAMO laag sturing kan de maximalepompcapaciteit uit de laag pomp worden toegevoegd als parameter met de volgende invoer-waarden:

  • join_object: pomp

  • join_parameter: maximalepompcapaciteit

De koppeling is 1:n (tegengesteld tot de functie object_relation); een waarde van één pomp kan op meerdere sturingsregels worden ingeladen.

Wanneer fill_value wordt gespecificeerd, dan worden ontbrekende waarden uit de functie opgevuld met deze waarde. In bovenstaand voorbeeld zal fill_value=0 een leeg resultaat opvullen met 0.

multiply

left

right

Neemt het product van de linker (left) en de rechter (right), term. Dus: resultaat = left * right

left en right kunnen een getal of een HyDAMO attribuut zijn.

object_relation

related_object,

statistic

related_parameter (optioneel)

fill_value

Uit de tabel van gerelateerde objecten (related_object) wordt de statistiek (statistic) berekend over een parameter (related_parameter) uit de tabel van gerelateerde objecten.

Voor statistc kunnen de volgende waarden worden gespecificeerd:

  • count: het aantal gerelateerde objecten. related_parameter wordt hier genegeerd als deze is gespecificeerd!

  • sum: de som van de waarden van de gerelateerde parameter in de gerelateerde objecten

  • min: de minimale waarde van de gerelateerde parameter in de gerelateerde objecten

  • max: de maximale waarde van de gerelateerde parameter in de gerelateerde objecten

  • majority: de meest voorkomende waarde van de gerelateerde parameter in de gerelateerde objecten

Voorbeeld: voor het HyDAMO object gemaal kan de totale maximale gemaalcapaciteit worden bepaald door een related_object functie met pompen met de volgende invoer-waarden:

  • statistic: sum

  • related_object: pomp

  • related_parameter: maximalecapaciteit

De koppeling is n:1 (tegengesteld tot de functie join_parameter); de statistiek van meerdere pompen kan toegevoegd worden aan één object gemaal.

Wanneer fill_value wordt gespecificeerd, dan worden ontbrekende waarden uit de functie opgevuld met deze waarde. In bovenstaand voorbeeld geeft fill_value=0 een gemaalcapaciteit van 0 terug, op gemalen waar geen pompen zijn gedefinieerd in pomp-objecten.

sum

array

Berekent de som van alle getallen/attribuut-waarden uit de getallen/attributen gespecificeerd in array

Bijvoorbeeld; wanneer de gebruiker array=[“kruinbreedte”, 30] in een sum-functie op het object stuw, geeft de kruinbreedte + 30 als resultaat.

Logische functies (validation_rules, type=logic)

Logische functies kunnen gebruikt worden in filters en als validatie-functie. Logische functies geven altijd een true/false terug.

Naam

Invoer

Beschrijving

Naam

Invoer

Beschrijving

BE

parameter, min, max, inclusive (true/false)

parameter ligt tussen min en max waarbij min/max. Inclusive (true/false) bepaalt of min en max zelf worden meegenomen (inclusive=true) of niet (inclusive=false).

EQ

left, right

left is gelijk aan right

GE

left, right

left is groter dan of gelijk aan right

GT

left, right

left is groter dan right

ISIN

parameter, array

parameter komt voor in de lijst (array) met waarden

LE

left, right

left is kleiner dan of gelijk aan right

LT

left, right

left is kleiner dan right

NOTIN

parameter, array

parameter komt niet voor in de lijst (array) met waarden

NOTNA

parameter

parameter is ingevuld

consistent_period

max_gap (default=1)

controlleert voor de object-laag sturing of sets van sturingsregels op een regelmiddel of pomp met dezelfde prioriteit consistente periodes bevatten.

Periodes worden gedefinieerd door de attributen beginperiode en eindperiode.

Een periode is consistent wanneer deze binnen zijn set niet overlapt met een andere periode binnen dezelfde set. Ook moeten alle periodes binnen de set aaneensluiten. Een set is aaneengesloten wanneer gaten niet groter zijn dan het aantal dagen gedefinieerd door max_gap (default = 1 dag).

join_object_exists

join_object

een object waarnaar binnen de tabel wordt verwezen bestaat.

Bijvoorbeeld, de gemaalid waarin wordt verwezen in de tabel pomp bestaat. In dit voorbeeld wordt de validatie uitgevoerd op de object-laag pomp, waarbij de parameter join_object=gemaal.

Topologische functies (validation_rules, type=topologic)

Topologische functies kunnen gebruikt worden als topologische validatie-functie. Een object wordt hierbij altijd beschouwd ten opzichte van een hydroobject. De uitvoer van topologische functies zijn altijd true/false.

Naam

Invoer

Beschrijving

Naam

Invoer

Beschrijving

compare_longitudinal

parameter

compare_object

compare_parameter

direction (upstream/downstream)

logical_operator

Controleert of de parameter-waarde (parameter) van een object hoger is dan (logical_operator=”GT”) of lager is dan (logical_operator=”LT”) een andere parameter-waarde (compare_parameter). Deze parameter-waarde kan komen uit het bovenstroomse (direction=upstream) of benedenstroomse (direction=downstream) object uit een andere object-laag (compare_object).

Zoals beschreven, er zijn twee mogelijke waarden voor direction:

  • upstream: het dichtsbijzijnde bovenstroomse object uit de laag compare_object.

  • downstream: het dichtsbijzijnde benedenstroomse object uit de laag compare_object.

Let op er wordt alleen gekeken naar objecten die op hetzelfde hydroobject liggen.

Zoals beschreven, er zijn twee mogelijke waarden voor logical_operator:

  • GT: de waarde van parameter is groter dan de waarde van compare_parameter

  • LT: de waarde van parameter is kleiner dan de waarde van compare_parameter

distant_to_others

distance (m)

Controleert of twee objecten uit dezelfde laag voldoende afstand (distance) tot elkaar hebben

geometry_length

length (m)

statistic (min, max)

Controleert of de lengte van een lijn-object voldoende lang (statistic=min) of niet langer is dan (statistic=max) een gespecificeerde lengte (length)

no_dangling_node

tolerance (m)

Controleert of een hydroobject een eindpunt bevat dat niet verbonden is met een beginpunt van een ander hydroobject binnen tolerantie (tolerance).

Een hydroobject dat terrect false geeft is óf het uitstroompunt van een watersysteem, of een onterecht doodlopende waterloop die eigenlijk verbonden hoort te zijn met een andere waterloop

not_overlapping

tolerance (m)

Controleert of een lijn, of punt-object uit een laag niet overlapt met andere objecten uit dezelfde laag binnen een opgegeven tolerantie (tolerance).

De volgende lijn-objecten zijn valide (groen) of invalide (rood). Klik voor een groter plaatje:

Een punt-object is valide wanneer deze buiten de opgegeven tolerantie ligt van een ander punt

snaps_to_hydroobject

method

tolerance (m)

Controleert of een object een hydroobject kruist of binnen een bepaalde zoekstraal (tolerance) ligt.

Verschillende zoekopties (method) zijn beschikbaar waarbij de ligging van de geometrie van een object wordt vergeleken met de ligging van het dichtsbijzijnde hydroobject:

  • intersecting: de geometrie kruist het hydroobject. In dit geval wordt tolerance genegeerd

  • overall: de dichtsbijzijnde vertice/segment van de geometrie ligt binnen tolerance van het hydroobject.

  • centroid: het centroide van de geometrie ligt binnen tolerance van het hydroobject

  • ends: zowel het begin als het eindpunt van d geometrie liggen binnen tolerance van het hydroobject.

splitted_at_junction

tolerance (m)

Controleert of een lijn-object is opgesplitst waar hij geraakt wordt door een begin- of eind-node van een ander lijn-object uit dezelfde laag binnen een opgegeven tolerantie (tolerance)

structures_at_boundaries

areas

structures

tolerance (m)

distance (m)

Contoleert of er aan de randen van (peil)gebieden (areas) binnen een gespecificeerde afstand (distance) een kunstwerk ligt uit een gespecificeerde lijst (structures).

Hierbij worden alleen kunsterken beschouwd binnen een afstand (tolerance) tot een hydroobject dat door de rand (boundary) van een gebied (area) loopt.

structures_at_intersections

structures

tolerance (m)

Controleert of er bij kruisende hydroobjecten die bij de kruising níet opgesplitst zijn kunstwerken uit een gespecificeerde lijst (structures) liggen binnen een obgegeven tolerantie (tolerance) tot de kruisende hydrooobjecten)

structures_at_nodes

structures

tolerance (m)

Controlleert of er bij begin en eindpunten van hydroobjecten kunstwerken uit een gespecificeerde lijst (structures) liggen binnen een afstand tot het betreffende begin/eindpunt.