Browse Source

Inclusief matching van "schuurtjes"

Stan Janssen 7 years ago
parent
commit
e82243b502
2 changed files with 44 additions and 29 deletions
  1. 18 0
      README.md
  2. 26 29
      bag_create_queries.pgsql

+ 18 - 0
README.md

@@ -0,0 +1,18 @@
+BAG Aanmaken
+============
+
+Dit PGSQL-script zal de BAG-dump van NLExtract aanvullen met handige gegevens.
+
+Voorbereiding
+-------------
+
+Maak een database `bag` op je PostgreSQL database.
+
+
+Downloaden, importeren en verrijken van de bag-dump
+---------------------------------------------------
+
+    psql -d bag -c 'CREATE EXTENSION postgis'
+    wget http://data.nlextract.nl/bag/postgis/bag-laatst.backup
+    pg_restore --no-owner --no-privileges -d bag bag-laatst.backup
+    psql -d bag -a -f bag_create_queries.pgsql

+ 26 - 29
BAG create queries.pgsql → bag_create_queries.pgsql

@@ -10,6 +10,12 @@ overige tabellen kunnen vervolgens verwijderd worden.
 
 */
 
+DROP TABLE IF EXISTS bagactueel.verblijfsobject_compleet CASCADE;
+DROP TABLE IF EXISTS bagactueel.pand_compleet;
+DROP TABLE IF EXISTS bagactueel.pand_oppervlakte CASCADE;
+DROP TABLE IF EXISTS bagactueel.temp_verblijfsobject_oppervlakte;
+DROP MATERIALIZED VIEW IF EXISTS bagactueel.pand_adres;
+DROP MATERIALIZED VIEW IF EXISTS bagactueel.wp_gem_prov;
 
 UPDATE bagactueel.pand 
 SET bouwjaar = NULL 
@@ -19,11 +25,6 @@ UPDATE bagactueel.verblijfsobject
 SET oppervlakteverblijfsobject = NULL 
 WHERE oppervlakteverblijfsobject IN (1, 9999, 99999, 999999);
 
-DROP TABLE bagactueel.verblijfsobject_compleet CASCADE;
-DROP TABLE bagactueel.pand_compleet;
-DROP TABLE bagactueel.pand_oppervlakte CASCADE;
-DROP TABLE bagactueel.temp_verblijfsobject_oppervlakte;
-
 /* Maak nieuwe tabel aan voor complete verblijfsobjecten */
 
 CREATE TABLE bagactueel.verblijfsobject_compleet(
@@ -525,26 +526,17 @@ LEFT JOIN bagactueel.pand_adres A
 LEFT JOIN bagactueel.pand_oppervlakte_sum PO
     ON P.identificatie = PO.identificatie;
 
+/* Maak indexen op de pand_compleet tabel om opzoeken sneller te maken */
+
 CREATE INDEX pand_compleet_gemeentenaam ON bagactueel.pand_compleet (gemeentenaam);
 CREATE INDEX pand_compleet_woonplaatsnaam ON bagactueel.pand_compleet (woonplaatsnaam);
 CREATE INDEX pand_compleet_provincienaam ON bagactueel.pand_compleet (provincienaam);
+CREATE INDEX pand_compleet_geovlak ON bagactueel.pand_compleet USING GIST(geovlak);
 
-CREATE MATERIALIZED VIEW bagactueel.pand_adres_onbekend AS
-SELECT P.identificatie, G.gemeentenaam, W.woonplaatsnaam, Prov.provincienaam
-FROM bagactueel.pand_compleet P
-LEFT JOIN bagactueel.woonplaats W
-    ON ST_Intersects(P.geovlak, W.geovlak)
-LEFT JOIN bagactueel.gemeente G
-    ON ST_Intersects(P.geovlak, G.geovlak)
-LEFT JOIN bagactueel.provincie Prov
-    ON ST_Intersects(P.geovlak, Prov.geovlak)
-WHERE P.gemeentenaam IS NULL;
-
-
-/* Maak tabel met woonplaats-geovlak en bijbehordende woonplaatsnaam, gemeentenaam en provincienaam */
+/* Maak tabel met woonplaats-geovlak en bijbehorende woonplaatsnaam, gemeentenaam en provincienaam */
 
 CREATE MATERIALIZED VIEW bagactueel.wp_gem_prov AS
-SELECT bagactueel.provincie.provincienaam, bagactueel.gemeente.gemeentenaam, bagactueel.woonplaatsactueelbestaand.woonplaatsnaam, bagactueel.woonplaatsactueelbestaand.geovlak
+SELECT bagactueel.woonplaatsactueelbestaand.gid, bagactueel.provincie.provincienaam, bagactueel.gemeente.gemeentenaam, bagactueel.woonplaatsactueelbestaand.woonplaatsnaam, bagactueel.woonplaatsactueelbestaand.geovlak
 FROM bagactueel.provincie_gemeenteactueelbestaand
 JOIN bagactueel.gemeente_woonplaatsactueelbestaand
 ON bagactueel.provincie_gemeenteactueelbestaand.gemeentecode = bagactueel.gemeente_woonplaatsactueelbestaand.gemeentecode
@@ -553,15 +545,20 @@ JOIN bagactueel.gemeente ON bagactueel.provincie_gemeenteactueelbestaand.gemeent
 JOIN bagactueel.woonplaatsactueelbestaand ON
 bagactueel.gemeente_woonplaatsactueelbestaand.woonplaatscode = bagactueel.woonplaatsactueelbestaand.identificatie
 
-CREATE INDEX pand_adres_onbekend_ident ON bagactueel.pand_adres_onbekend (identificatie);
-
-UPDATE bagactueel.pand_compleet P
-SET P.gemeentenaam = T.gemeentenaam,
-P.woonplaatsnaam = T.woonplaatsnaam,
-P.provincienaam = T.provincienaam
-FROM bagactueel.pand_overige_adres AS T
-WHERE P.gemeentenaam IS NULL;
+CREATE INDEX wp_gem_prov_geovlak ON bagactueel.wp_gem_prov USING GIST(geovlak);
 
+/* Voeg woonplaats, gemeente en provincie toe aan alle ongelabelde panden */
 
-DROP TABLE bagacteel.pand
-DROP TABLE bacactueel.verblijfsobject
+UPDATE bagactueel.pand_compleet P
+SET woonplaatsnaam = WGP.woonplaatsnaam, 
+gemeentenaam = WGP.gemeentenaam,
+provincienaam = WGP.provincienaam
+FROM bagactueel.wp_gem_prov WGP
+WHERE ST_Intersects(WGP.geovlak, P.geovlak)
+AND P.woonplaatsnaam IS NULL
+
+/* Ruim ongebruikte tabellen op */
+
+DROP VIEW bagactueel.pand_adres;
+DROP VIEW bagactueel.temp_verblijfsobject_oppervlakte;
+DROP VIEW bagactueel.pand_oppervlakte;