-
-
Notifications
You must be signed in to change notification settings - Fork 84
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
#345 add BGT SQL from Willem for reference - not used in ETL
- Loading branch information
Showing
2 changed files
with
117 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
-- Bijdrage van Willem Hoffmans - 18 jan 2022 | ||
-- NB: Gaat ervan uit dat schema 'bgt' heet! | ||
|
||
-- Opschonen BGT (en BAG?) NLExtract dumps. | ||
-- Alle historie eruit gooien, zodat je alleen actueelbestaand overhoudt | ||
-- Alle 'actueel' en 'actueelbestaand' views eruit gooien, die zijn dan overbodig. | ||
|
||
-- Dit werkt met een loopje vanuit de systeemtabellen, is een stuk efficiënter qua code. | ||
DO LANGUAGE plpgsql | ||
$$ | ||
DECLARE | ||
currenttabel record; | ||
tabelnaam VARCHAR; | ||
BEGIN | ||
FOR currenttabel IN | ||
SELECT c.relname AS tabel | ||
FROM pg_namespace AS n JOIN pg_class AS c ON n.oid = c.relnamespace | ||
WHERE n.nspname = 'bgt' and c.relkind = 'r' | ||
ORDER BY tabel | ||
LOOP | ||
BEGIN | ||
RAISE NOTICE 'Verwerken tabel %', currenttabel.tabel; | ||
-- Historie leeghalen | ||
EXECUTE FORMAT ('DELETE FROM bgt.%s WHERE NOT (eindregistratie IS NULL AND bgt_status::text = ''bestaand''::text AND plus_status::text <> ''plan''::text AND plus_status::text <> ''historie''::text);', currenttabel.tabel); | ||
-- Views weggooien | ||
EXECUTE FORMAT ('DROP VIEW IF EXISTS bgt.%sactueel CASCADE;DROP VIEW IF EXISTS bgt.%sactueelbestaand CASCADE;', currenttabel.tabel, currenttabel.tabel); | ||
EXCEPTION | ||
WHEN OTHERS THEN | ||
RAISE NOTICE 'Foutje in tabel %', currenttabel.tabel; | ||
END; | ||
END LOOP; | ||
END; | ||
$$; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
-- Bijdrage van Willem Hoffmans - 18 jan 2022 | ||
-- Maak landsdekkende vlakken tabel uit alle BGT tabellen | ||
|
||
-- landsdekkend vlakkenbestand maken | ||
DROP TABLE IF EXISTS bgtvlakken CASCADE; | ||
CREATE TABLE bgtvlakken | ||
(gid SERIAL PRIMARY KEY, | ||
laagnaam VARCHAR, | ||
lokaalid VARCHAR, | ||
relatievehoogteligging INTEGER, | ||
bgt_functie VARCHAR, | ||
plus_functie VARCHAR, | ||
bgt_fysiekvoorkomen VARCHAR, | ||
plus_fysiekvoorkomen VARCHAR, | ||
bgt_type VARCHAR, | ||
plus_type VARCHAR, | ||
geom geometry (MultiSurface, 28992) | ||
); | ||
|
||
|
||
TRUNCATE TABLE bgtvlakken; | ||
INSERT INTO bgtvlakken (laagnaam, lokaalid, relatievehoogteligging, bgt_fysiekvoorkomen, plus_fysiekvoorkomen, geom) | ||
SELECT 'begroeidterreindeel', lokaalid, relatievehoogteligging, bgt_fysiekvoorkomen, plus_fysiekvoorkomen, ST_Multi(geometrie_vlak) | ||
FROM begroeidterreindeel AS l1 WHERE geometrie_vlak IS NOT NULL; | ||
INSERT INTO bgtvlakken (laagnaam, lokaalid, relatievehoogteligging, bgt_type, plus_type, geom) | ||
SELECT 'gebouwinstallatie', lokaalid, relatievehoogteligging, bgt_type, plus_type, ST_Multi(geometrie_vlak) | ||
FROM gebouwinstallatie AS l1 WHERE geometrie_vlak IS NOT NULL; | ||
-- Kunstwerkdeel: enkele en multi geom's | ||
INSERT INTO bgtvlakken (laagnaam, lokaalid, relatievehoogteligging, bgt_type, plus_type, geom) | ||
SELECT 'kunstwerkdeel', lokaalid, relatievehoogteligging, bgt_type, plus_type, ST_Multi(geometrie_vlak) | ||
FROM kunstwerkdeel AS l1 WHERE geometrie_vlak IS NOT NULL; | ||
INSERT INTO bgtvlakken (laagnaam, lokaalid, relatievehoogteligging, bgt_type, plus_type, geom) | ||
SELECT 'kunstwerkdeel', lokaalid, relatievehoogteligging, bgt_type, plus_type, geometrie_multivlak | ||
FROM kunstwerkdeel AS l1 WHERE geometrie_multivlak IS NOT NULL; | ||
INSERT INTO bgtvlakken (laagnaam, lokaalid, relatievehoogteligging, bgt_fysiekvoorkomen, plus_fysiekvoorkomen, geom) | ||
SELECT 'onbegroeidterreindeel', lokaalid, relatievehoogteligging, bgt_fysiekvoorkomen, plus_fysiekvoorkomen, ST_Multi(geometrie_vlak) | ||
FROM onbegroeidterreindeel AS l1 WHERE geometrie_vlak IS NOT NULL; | ||
INSERT INTO bgtvlakken (laagnaam, lokaalid, relatievehoogteligging, bgt_type, plus_type, geom) | ||
SELECT 'ondersteunendwaterdeel', lokaalid, relatievehoogteligging, bgt_type, plus_type, ST_Multi(geometrie_vlak) | ||
FROM ondersteunendwaterdeel AS l1 WHERE geometrie_vlak IS NOT NULL; | ||
INSERT INTO bgtvlakken (laagnaam, lokaalid, relatievehoogteligging, bgt_functie, plus_functie, bgt_fysiekvoorkomen, plus_fysiekvoorkomen, geom) | ||
SELECT 'ondersteunendwegdeel', lokaalid, relatievehoogteligging, bgt_functie, plus_functie, bgt_fysiekvoorkomen, plus_fysiekvoorkomen, ST_Multi(geometrie_vlak) | ||
FROM ondersteunendwegdeel AS l1 WHERE geometrie_vlak IS NOT NULL; | ||
INSERT INTO bgtvlakken (laagnaam, lokaalid, relatievehoogteligging, geom) | ||
SELECT 'ongeclassificeerdobject', lokaalid, relatievehoogteligging, ST_Multi(geometrie_vlak) | ||
FROM ongeclassificeerdobject AS l1 WHERE geometrie_vlak IS NOT NULL; | ||
INSERT INTO bgtvlakken (laagnaam, lokaalid, relatievehoogteligging, geom) | ||
SELECT 'openbareruimte', lokaalid, relatievehoogteligging, ST_Multi(geometrie_vlak) | ||
FROM openbareruimte AS l1 WHERE geometrie_vlak IS NOT NULL; | ||
INSERT INTO bgtvlakken (laagnaam, lokaalid, relatievehoogteligging, bgt_type, plus_type, geom) | ||
SELECT 'overigbouwwerk', lokaalid, relatievehoogteligging, bgt_type, plus_type, ST_Multi(geometrie_vlak) | ||
FROM overigbouwwerk AS l1 WHERE geometrie_vlak IS NOT NULL; | ||
INSERT INTO bgtvlakken (laagnaam, lokaalid, relatievehoogteligging, plus_type, geom) | ||
SELECT 'overigescheiding', lokaalid, relatievehoogteligging, plus_type, ST_Multi(geometrie_vlak) | ||
FROM overigescheiding AS l1 WHERE geometrie_vlak IS NOT NULL; | ||
INSERT INTO bgtvlakken (laagnaam, lokaalid, relatievehoogteligging, geom) | ||
SELECT 'pand', lokaalid, relatievehoogteligging, ST_Multi(geometrie_vlak) | ||
FROM pand AS l1 WHERE geometrie_vlak IS NOT NULL; | ||
INSERT INTO bgtvlakken (laagnaam, lokaalid, relatievehoogteligging, bgt_type, plus_type, geom) | ||
SELECT 'scheiding', lokaalid, relatievehoogteligging, bgt_type, plus_type, ST_Multi(geometrie_vlak) | ||
FROM scheiding AS l1 WHERE geometrie_vlak IS NOT NULL; | ||
INSERT INTO bgtvlakken (laagnaam, lokaalid, relatievehoogteligging, bgt_type, plus_type, geom) | ||
SELECT 'vegetatieobject', lokaalid, relatievehoogteligging, bgt_type, plus_type, ST_Multi(geometrie_vlak) | ||
FROM vegetatieobject AS l1 WHERE geometrie_vlak IS NOT NULL; | ||
INSERT INTO bgtvlakken (laagnaam, lokaalid, relatievehoogteligging, bgt_type, plus_type, geom) | ||
SELECT 'waterdeel', lokaalid, relatievehoogteligging, bgt_type, plus_type, ST_Multi(geometrie_vlak) | ||
FROM waterdeel AS l1 WHERE geometrie_vlak IS NOT NULL; | ||
INSERT INTO bgtvlakken (laagnaam, lokaalid, relatievehoogteligging, bgt_functie, plus_functie, bgt_fysiekvoorkomen, plus_fysiekvoorkomen, geom) | ||
SELECT 'wegdeel', lokaalid, relatievehoogteligging, bgt_functie, plus_functie, bgt_fysiekvoorkomen, plus_fysiekvoorkomen, ST_Multi(geometrie_vlak) | ||
FROM wegdeel AS l1 WHERE geometrie_vlak IS NOT NULL; | ||
INSERT INTO bgtvlakken (laagnaam, lokaalid, relatievehoogteligging, bgt_type, plus_type, geom) | ||
SELECT 'weginrichtingselement', lokaalid, relatievehoogteligging, bgt_type, plus_type, ST_Multi(geometrie_vlak) | ||
FROM weginrichtingselement AS l1 WHERE geometrie_vlak IS NOT NULL; | ||
|
||
CREATE INDEX idx_bgtvlakken_geom ON bgtvlakken USING gist(geom); | ||
CREATE INDEX idx_bgtvlakken_laagnaam ON bgtvlakken USING btree(laagnaam); | ||
CREATE INDEX idx_bgtvlakken_lokaalid ON bgtvlakken USING btree(lokaalid); | ||
CREATE INDEX idx_bgtvlakken_gid ON bgtvlakken USING btree(gid); | ||
CREATE INDEX idx_bgtvlakken_relatievehoogteligging ON bgtvlakken USING btree(relatievehoogteligging); | ||
|
||
-- Afgeleide views, o.a. hoogteligging = 0 | ||
CREATE OR REPLACE VIEW bgtvlakken_hoogte0 AS | ||
SELECT * FROM bgtvlakken WHERE relatievehoogteligging = 0; | ||
|