-- -- ALKIS PostNAS 0.7 -- -- ====================================================== -- Zusammenfassung der Tabellen der tatsächlichen Nutzung -- ====================================================== -- -- Um bei einer Feature.Info (Welche Nutzung an dieser Stelle?) -- oder einer Verschneidung (Welche Nutzungen auf dem Flurstück?) -- nicht 26 verschiedene Tabellen abfragen zu müssen, werden die wichtigsten -- Felder dieser Tabellen zusammen gefasst. -- -- Teil 3: Laden der (redundanten) Tabelle "nutzung", notwendig nach jeder Fortführung. -- -- Stand -- -- 2012-02-10 PostNAS 07, Umbenennung -- 2012-04-24 keine historischen Flaechen (..WHERE endet IS NULL), -- Feld 'beginnt' mitnehmen wegen Doppelbelegung gml_id (noch klären) -- 2013-11-18 - Spalte nutzung.class mit Wert 0 füllen wenn Quellspalte NULL ist. -- - Korrektur der Schlüsseltabelle "nutzung_class": -- Fehlende Werte aus konvertierten Daten ergänzen. Wenn dies in der Praxis wirklich -- vorkommt, sollte das Lade-Script "nutzungsart_metadaten.sql" ergänzt werden. -- 2015-03-10 Korrektur: bei ax_TagebauGrubeSteinbruch ist nutz_id = 5 -- Einschränkung " AND st_geometrytype(wkb_geometry) = 'ST_Polygon' " deaktivieren, denn -- es ist ein neuer Geometrietyp "ST_CurvePolygon" aufgetaucht. SET client_encoding = 'UTF-8'; -- Tabelle l e e r e n -- -------------------- DELETE FROM nutzung; -- Tabelle l a d e n -- -------------------- -- Welche Felder der Ursprungstabellen in die Zielfelder "class" und "info" geladen werden, -- wird dokumentiert über die Tabelle "nutzung_meta" im Script "alkis_nutzungsart_meta.sql". -- **** Objektbereich: Tatsächliche Nutzung **** -- ** Objektartengruppe: Siedlung ** -- 01 REO: ax_Wohnbauflaeche INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 1, coalesce(artderbebauung, 0), null ,zustand, name, null, wkb_geometry FROM ax_wohnbauflaeche WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- 02 REO: ax_IndustrieUndGewerbeflaeche -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 2, coalesce(funktion, 0), null, zustand, name, null, wkb_geometry FROM ax_industrieundgewerbeflaeche WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- 03 REO: ax_Halde -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 3, coalesce(lagergut, 0), null, zustand, name, null, wkb_geometry FROM ax_halde WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- 04 ax_Bergbaubetrieb -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 4, coalesce(abbaugut, 0), null, zustand, name, null, wkb_geometry FROM ax_bergbaubetrieb WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- 05 REO: ax_TagebauGrubeSteinbruch -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 5, coalesce(abbaugut, 0), null, zustand, name, null, wkb_geometry FROM ax_bergbaubetrieb WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- 06 REO: ax_FlaecheGemischterNutzung -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 6, coalesce(funktion, 0), null, zustand, name, null, wkb_geometry FROM ax_flaechegemischternutzung WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- 07 REO: ax_FlaecheBesondererFunktionalerPraegung -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 7, coalesce(funktion, 0), artderbebauung, zustand, name, null, wkb_geometry FROM ax_flaechebesondererfunktionalerpraegung WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- 08 REO: ax_SportFreizeitUndErholungsflaeche -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 8, coalesce(funktion, 0), null, zustand, name, null, wkb_geometry FROM ax_sportfreizeitunderholungsflaeche WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- weiteres Feld: name char(20)? -- 09 REO: ax_Friedhof -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 9, coalesce(funktion, 0), null, zustand, name, null, wkb_geometry FROM ax_friedhof WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- ** Objektartengruppe: Verkehr ** -- 10 ax_Strassenverkehr -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 10, coalesce(funktion, 0), null, zustand, name, zweitname, wkb_geometry FROM ax_strassenverkehr WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- 11 ax_Weg -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 11, coalesce(funktion, 0), null, null, name, bezeichnung, wkb_geometry FROM ax_weg WHERE endet IS NULL; -- 12 ax_Platz -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 12, coalesce(funktion, 0), null, null, name, zweitname, wkb_geometry FROM ax_platz WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- 13 ax_Bahnverkehr -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 13, coalesce(funktion, 0), bahnkategorie, zustand, bezeichnung, null, wkb_geometry FROM ax_bahnverkehr WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- bahnkategorie ist alternativ ein geeignetes class-Feld -- 14 ax_Flugverkehr -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 14, coalesce(art, 0), null, zustand, name, bezeichnung, wkb_geometry FROM ax_flugverkehr WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- 15 ax_Schiffsverkehr -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 15, coalesce(funktion, 0), null, zustand, name, null, wkb_geometry FROM ax_schiffsverkehr WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- ** Objektartengruppe: Vegetation ** -- 16 ax_Landwirtschaft -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 16, coalesce(vegetationsmerkmal, 0), null, null, name, null, wkb_geometry FROM ax_landwirtschaft WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- 17 ax_Wald -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 17, coalesce(vegetationsmerkmal, 0), null, null, name, bezeichnung, wkb_geometry FROM ax_wald WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- 18 ax_Gehoelz -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 18, coalesce(funktion, 0), vegetationsmerkmal, null, null, null, wkb_geometry FROM ax_gehoelz WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- 19 ax_Heide -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 19, 0, null, null, name, null, wkb_geometry FROM ax_heide WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- 20 ax_Moor -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 20, 0, null, null, name, null, wkb_geometry FROM ax_moor WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- 21 ax_Sumpf -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 21, 0, null, null, name, null, wkb_geometry FROM ax_sumpf WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- 22 ax_UnlandVegetationsloseFlaeche -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 22, coalesce(funktion, 0), oberflaechenmaterial, null, name, null, wkb_geometry FROM ax_unlandvegetationsloseflaeche WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- (23 Nummerierungslücke) -- ** Objektartengruppe: Gewässer ** -- 24 ax_Fliessgewaesser -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 24, coalesce(funktion, 0), null, zustand, name, null, wkb_geometry FROM ax_fliessgewaesser WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- 25 ax_Hafenbecken -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 25, coalesce(funktion, 0), nutzung, null, name, null, wkb_geometry FROM ax_hafenbecken WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- 26 ax_StehendesGewaesser -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 26, coalesce(funktion, 0), null, null, name, gewaesserkennziffer, wkb_geometry FROM ax_stehendesgewaesser WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- 27 ax_Meer -- ------------------------------------- INSERT INTO nutzung (gml_id, beginnt, nutz_id, class, info, zustand, name, bezeichnung, wkb_geometry) SELECT gml_id, beginnt, 27, coalesce(funktion, 0), null, null, name, bezeichnung, wkb_geometry FROM ax_meer WHERE endet IS NULL -- AND st_geometrytype(wkb_geometry) = 'ST_Polygon' ; -- Ergaenzung der Schlüsseltabelle -- ------------------------------- -- Fehlende Einträge in der manuell gefüllten Tabelle "nutzung_class" (Theorie, aus GeoInfoDok) -- durch Einträge aus der zusammen gefassten Tabelle "nutzung" ergänzen (Praxis). -- Wenn in der Praxis weitere Schlüssel vorkommen, die in der Tabelle "nutzung_class" noch nicht -- enthalten sind, dann kann das bei Equivalenz-Abfragen (INNER JOIN) dazu führen, dass die -- Nutzungsarten-Abschnitte mit den dort fehlenden Schlüsseln ausgelassen werden. INSERT INTO nutzung_class ( nutz_id, class, label, blabla ) SELECT DISTINCT n.nutz_id, n.class, '(unbekannt)' AS label, 'Schlüssel wurde im PostProcessing aus der Tabelle "nutzung" ergänzt' AS blabla FROM nutzung n -- Daten aus Konverter -- die Praxis WHERE NOT EXISTS ( SELECT c.class FROM nutzung_class c -- vorbereitete Metadaten aus GeoInfoDok -- die Theorie WHERE n.nutz_id = c.nutz_id AND n.class = c.class ) ORDER BY n.nutz_id, n.class ; -- END --