zondag 23 september 2018

demo.kunstwerkdeel

De minimale beschrijving van een watersysteem bevat naast waterdelen ook kunstwerkdelen.
Een kunstwerk(deel) is een civieltechnisch werk voor de infrastructuur van wegen, water, spoorbanen,waterkeringen en/of leidingen, niet bedoeld voor permanent menselijk verblijf. In relatie met een watersysteem moet je daarbij denken aan gemaaltjes, stuwen, duikers, sluisjes, etc. Hoe zou een kunstwerkdeel in een basisregistratie water ondergebracht kunnen worden?

Het detailniveau van waterdelen en kunstwerkdelen wordt in de Basisregistratie Grootschalige Topografie (BGT) globaal maar wel met een onderling vergelijkbaar detailniveau beschreven (waarbij er wel een vervelende mix is van verplichte- en optionele onderdelen).
Deze BGT specificaties zijn het vertrekpunt voor een waterbeheerder, die de BGT data met zo min mogelijk aanpassingen zal willen overnemen in een eigen registratie (keep-it-simple is daarbij het adagio). Het ER-diagram van demo.kunstwerkdeel kan er bijvoorbeeld zo uitzien:



Het dataobject demo.kunstwerkdeel erft een aantal basiseigenschappen en -functionaliteiten (net als demo.waterdeel) van demo.fysiekobject en (buiten beeld) demo.object.

De bijbehorende DDL is als volgt:


CREATE TABLE public.kunstwerkdeel (
bgtobject varchar NULL,
code varchar NULL,
typekunstwerk typekunstwerk NULL,
typeregelbaarheid typeregelbaarheid NULL,
soortmateriaal soortmateriaal NULL,
maatgevendehoogte numeric(6,3) NULL,
geometrie geometry NULL,
CONSTRAINT typekunstwerk_pk PRIMARY KEY (object_pk)
)
INHERITS (public.fysiekobject);

Met de data die de BGT voor een proefgebied levert als uitgangspunt zijn onderstaande domeinwaarden vooraf verzameld en in de database beschikbaar gemaakt:

typekunstwerk
bodemval
typekunstwerk
duiker
typekunstwerk
gemaal
typekunstwerk
sluis
typekunstwerk
steiger
typekunstwerk
strekdam
typekunstwerk
stuw
typekunstwerk
vispassage
typeregelbaarheid
automatisch op afstand
typeregelbaarheid
automatisch
typeregelbaarheid
handmatig
typeregelbaarheid
niet
typeregelbaarheid
regelbaar
soortmateriaal kunstwerk
beton
soortmateriaal kunstwerk
hout
soortmateriaal kunstwerk
kunststof
soortmateriaal kunstwerk
metselwerk
soortmateriaal kunstwerk
staal

Dit is veel beperkter dan de officiƫle Aquo-standaard, maar het dekt de lading.

Net zo als voor ieder dataobject worden er een aantal standaard triggers gemaakt:

--DROP TRIGGER a_kunstwerkdeel_insert ON kunstwerkdeel;
CREATE TRIGGER a_kunstwerkdeel_insert
 BEFORE INSERT
 ON public.kunstwerkdeel
 FOR EACH ROW
 EXECUTE PROCEDURE public.fysiekobject_upsert();

--DROP TRIGGER b_kunstwerkdeel_insert ON kunstwerkdeel;
CREATE TRIGGER b_kunstwerkdeel_insert
 BEFORE INSERT
 ON public.kunstwerkdeel
 FOR EACH ROW
 EXECUTE PROCEDURE public.object_insert('nsDEMO');

--DROP TRIGGER a_kunstwerkdeel_update ON kunstwerkdeel;
CREATE TRIGGER a_kunstwerkdeel_update
 BEFORE UPDATE
 ON public.kunstwerkdeel
 FOR EACH ROW
 EXECUTE PROCEDURE public.fysiekobject_upsert();

ALTER TABLE kunstwerkdeel DISABLE TRIGGER a_kunstwerkdeel_update;
--ALTER TABLE kunstwerkdeel ENABLE TRIGGER a_kunstwerkdeel_update;

--DROP TRIGGER b_kunstwerkdeel_update ON kunstwerkdeel;
CREATE TRIGGER b_kunstwerkdeel_update
 BEFORE UPDATE
 ON public.kunstwerkdeel
 FOR EACH ROW
 EXECUTE PROCEDURE public.object_update();

--DROP TRIGGER kunstwerkdeel_delete ON kunstwerkdeel;
CREATE TRIGGER kunstwerkdeel_delete
 BEFORE DELETE
 ON public.kunstwerkdeel
 FOR EACH ROW
 EXECUTE PROCEDURE public.object_delete();

Merk op dat er (net als bij waterdeel) telkens twee INSERT en UPDATE triggers zijn, die per definitie altijd in alfabetische volgorde afgehandeld worden.

De a-trigger zorgt voor het automatisch aanmaken van een representatieve (punt) locatie van een kunstwerkdeel (meestal het zwaartepunt van de BGT punt-, lijn- of vlak geometrie).
Beide a- (update) triggers staan standaard op DISABLED. Dat betekent dat de locatie bij een update actie in principe niet automatisch wordt herberekend.

Na het inregelen van bovenstaande opzet zijn voor het proefgebiedje ongeveer 17.350 kunstwerkdelen uit de BGT in DEMO geladen. Dat ziet er zo uit:
  • De blauwe vlakken (lijken lijntjes) zijn de waterdelen, de slootjes, beekjes, greppels
  • De groene lijntjes (te klein, hier niet zichtbaar) zijn de stuwtjes, duikers, gemaaltjes
  • De puntjes zijn de respectievelijke locaties van de waterdelen en kunstwerkdelen
Als ondergrond wordt hier een luchtfoto via PDOK gebruikt.


Geen opmerkingen:

Een reactie posten