nlextract / NLExtract

Convert (ETL) and visualize free Dutch geo-datasets.
https://nlextract.nl
GNU General Public License v3.0
149 stars 84 forks source link

adres-plus-tabel.sql : gebruik VIEW provincie_gemeenteactueelbestaand gebaseerd op extract_datum() #339

Open justb4 opened 2 years ago

justb4 commented 2 years ago

PR #336 heeft de functie extract_datum() geïntroduceerd. De extract datum wordt namelijk uit de BAG leverings-metadata ingelezen in de nlx_bag_info tabel.

Hierdoor kan een BAG levering van een willekeurige datum ingelezen worden waarbij de gemeente_provincie koppeling ook de status van die datum heeft. Herindelingen kunnen op een willekeurig moment ingaan (viz Weesp bij A'dam ergens in 2022)

De VIEW provincie_gemeenteactueel in adres-plus-tabel.sql maakt nog geen gebruik van extract_datum(). Dit zou veranderd kunnen worden met de volgende definitie:

CREATE OR REPLACE VIEW provincie_gemeenteactueel AS
       SELECT
              provinciecode,
              provincienaam,
              gemeentecode,
              gemeentenaam,
              begindatum,
              einddatum
              FROM bagactueel.provincie_gemeente
              WHERE begindatum <= extract_datum() AND (einddatum IS NULL OR einddatum >= extract_datum());

Feitelijk zou adres-plus-tabel.sql gewoon de bestaande VIEW provincie_gemeenteactueelbestaand kunnen gebruiken. Deze heeft dezelfde definitie als hierboven provincie_gemeenteactueel.

Benieuwd hoe @PeeWeeOSM en @sebastic hier tegenaan kijken...

sebastic commented 2 years ago

Disclaimer: De adres-plus tabel gebruik ik persoonlijk niet.

Uit adres-tabel-plus.sql:

--  In de view provincie_gemeenteactueebestaand ontbreken begin van het jaar de gemeentes die ophouden te bestaan op de eerste van het jaar. Als dit script gedraaid wordt begin januari gebaseerd op een postgis dump van december
-- dan ontbreken opeens die gemeentes. Om dat te voorkomen maak ik een view provincie_gemeenteactueel

Dit is oplost met de changes in #336, dus de provincie_gemeenteactueel VIEW kan verwijderd worden en het gebruik daarvan vervangen door de gebruikelijke provincie_gemeenteactueelbestaand VIEW.

Deze patch is waarschijnlijk voldoende:

diff --git a/bagv2/etl/sql/adres/adres-tabel-plus.sql b/bagv2/etl/sql/adres/adres-tabel-plus.sql
index 797a8827..3adab10c 100644
--- a/bagv2/etl/sql/adres/adres-tabel-plus.sql
+++ b/bagv2/etl/sql/adres/adres-tabel-plus.sql
@@ -131,17 +131,6 @@ COMMIT;

 BEGIN;
---  In de view provincie_gemeenteactueebestaand ontbreken begin van het jaar de gemeentes die ophouden te bestaan op de eerste van het jaar. Als dit script gedraaid wordt begin januari gebaseerd op een postgis dump van december
--- dan ontbreken opeens die gemeentes. Om dat te voorkomen maak ik een view provincie_gemeenteactueel
-SELECT PRINT_NOTICE('start: 2 provincie_gemeenteactueel: '||current_time);
-DROP VIEW IF EXISTS provincie_gemeenteactueel cascade;
-CREATE OR REPLACE VIEW provincie_gemeenteactueel as
-select a.* from (
- SELECT
-   -- 20210129: RANK functie vervangen door row_num
-    pg.*,     row_number() OVER (PARTITION BY gemeentecode ORDER BY  pg.einddatum desc nulls first) as Rangorde
-    FROM provincie_gemeente pg) A
-   where Rangorde =1;
 /*
 --- Per woonplaats, gemeente en provincie een aantal gegevens vaststellen die we later voor adres gegevens.
 --- de lon. lat bepalen adhv  gemiddelde per VBO. Dit omdat de centroid van een geovlak nog wel eens in de zee c.q. markermeer wil belanden.
@@ -162,7 +151,7 @@ FROM
   openbareruimteactueelbestaand OBR,
   verblijfsobjectactueelbestaand VBO,
   gemeente_woonplaatsactueelbestaand GEM_WPL,
-  provincie_gemeenteactueel  PRV,
+  provincie_gemeenteactueelbestaand PRV,
   woonplaatsactueelbestaand WPL
 WHERE
   NAD.gerelateerdeopenbareruimte = OBR.identificatie AND