source: trunk/import/nutzungsart_laden.sql @ 358

Revision 352, 13.4 KB checked in by frank.jaeger, 9 years ago (diff)

Probleme mit "ST_CurvePolygon" in "nutzung". Einschränkung Geometrietyp rausnehmen.

RevLine 
[298]1--
[162]2-- ALKIS PostNAS 0.7
[298]3--
[162]4-- ======================================================
5-- Zusammenfassung der Tabellen der tatsÀchlichen Nutzung
6-- ======================================================
[298]7--
[162]8-- Um bei einer Feature.Info (Welche Nutzung an dieser Stelle?)
9-- oder einer Verschneidung (Welche Nutzungen auf dem FlurstÃŒck?)
10-- nicht 26 verschiedene Tabellen abfragen zu mÃŒssen, werden die wichtigsten
11-- Felder dieser Tabellen zusammen gefasst.
[298]12--
[162]13-- Teil 3: Laden der (redundanten) Tabelle "nutzung", notwendig nach jeder FortfÃŒhrung.
[298]14--
[162]15-- Stand
[298]16--
[162]17--  2012-02-10 PostNAS 07, Umbenennung
[178]18--  2012-04-24 keine historischen Flaechen (..WHERE endet IS NULL),
19--             Feld 'beginnt' mitnehmen wegen Doppelbelegung gml_id (noch klÀren)
[298]20--  2013-11-18 - Spalte nutzung.class mit Wert 0 fÃŒllen wenn Quellspalte NULL ist.
21--             - Korrektur der SchlÃŒsseltabelle "nutzung_class":
22--               Fehlende Werte aus konvertierten Daten ergÀnzen. Wenn dies in der Praxis wirklich
23--               vorkommt, sollte das Lade-Script "nutzungsart_metadaten.sql" ergÀnzt werden.
[352]24--  2015-03-10 Korrektur: bei ax_TagebauGrubeSteinbruch ist nutz_id = 5
25--             EinschrÀnkung " AND st_geometrytype(wkb_geometry) = 'ST_Polygon' " deaktivieren, denn
26--             es ist ein neuer Geometrietyp "ST_CurvePolygon" aufgetaucht.
[162]27
28SET client_encoding = 'UTF-8';
29
30
31-- Tabelle  l e e r e n
32-- --------------------
33DELETE FROM nutzung;
34
35
36-- Tabelle  l a d e n
37-- --------------------
38
39-- Welche Felder der Ursprungstabellen in die Zielfelder "class" und "info" geladen werden,
40-- wird dokumentiert ÃŒber die Tabelle "nutzung_meta" im Script "alkis_nutzungsart_meta.sql".
41
42
43-- ****  Objektbereich: TatsÀchliche Nutzung  ****
44
45-- ** Objektartengruppe: Siedlung **
46
47-- 01 REO: ax_Wohnbauflaeche
[298]48INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                       info, zustand, name, bezeichnung, wkb_geometry)
49  SELECT             gml_id, beginnt, 1,       coalesce(artderbebauung, 0), null ,zustand, name, null,        wkb_geometry
[178]50  FROM ax_wohnbauflaeche
51  WHERE endet IS NULL
[352]52--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
53  ;
[162]54
55-- 02 REO: ax_IndustrieUndGewerbeflaeche
56-- -------------------------------------
[298]57INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
58  SELECT             gml_id, beginnt, 2,       coalesce(funktion, 0), null, zustand, name, null,        wkb_geometry
[178]59  FROM ax_industrieundgewerbeflaeche
60  WHERE endet IS NULL
[352]61--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
62  ;
[162]63
64
65-- 03 REO: ax_Halde
66-- -------------------------------------
[298]67INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
68  SELECT             gml_id, beginnt, 3,       coalesce(lagergut, 0), null, zustand, name, null,        wkb_geometry
[178]69  FROM ax_halde
70  WHERE endet IS NULL
[352]71--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
72  ;
[162]73
74
75-- 04 ax_Bergbaubetrieb
76-- -------------------------------------
[298]77INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
78  SELECT             gml_id, beginnt, 4,       coalesce(abbaugut, 0), null, zustand, name, null,        wkb_geometry
[178]79  FROM ax_bergbaubetrieb
80  WHERE endet IS NULL
[352]81--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
82  ;
[162]83
84
85-- 05 REO: ax_TagebauGrubeSteinbruch
86-- -------------------------------------
[298]87INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
88  SELECT             gml_id, beginnt, 5,       coalesce(abbaugut, 0), null, zustand, name, null,        wkb_geometry
[352]89  FROM ax_bergbaubetrieb
[178]90  WHERE endet IS NULL
[352]91--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
92  ;
[162]93
94
95-- 06 REO: ax_FlaecheGemischterNutzung
96-- -------------------------------------
[298]97INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
98  SELECT             gml_id, beginnt, 6,       coalesce(funktion, 0), null, zustand, name, null,        wkb_geometry
[178]99  FROM ax_flaechegemischternutzung
100  WHERE endet IS NULL
[352]101--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
102  ;
[162]103
104
105-- 07 REO: ax_FlaecheBesondererFunktionalerPraegung
106-- -------------------------------------
[298]107INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,           zustand, name, bezeichnung, wkb_geometry)
108  SELECT             gml_id, beginnt, 7,       coalesce(funktion, 0), artderbebauung, zustand, name, null,        wkb_geometry
[178]109  FROM ax_flaechebesondererfunktionalerpraegung
110  WHERE endet IS NULL
[352]111--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
112  ;
[162]113
114
115-- 08 REO: ax_SportFreizeitUndErholungsflaeche
116-- -------------------------------------
[298]117INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
118  SELECT             gml_id, beginnt, 8,       coalesce(funktion, 0), null, zustand, name, null,        wkb_geometry
[178]119  FROM ax_sportfreizeitunderholungsflaeche
120  WHERE endet IS NULL
[352]121--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
122  ;
[162]123-- weiteres Feld: name char(20)?
124
125
126-- 09 REO: ax_Friedhof
127-- -------------------------------------
[298]128INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
129  SELECT             gml_id, beginnt, 9,       coalesce(funktion, 0), null, zustand, name, null,        wkb_geometry
[178]130  FROM ax_friedhof
131  WHERE endet IS NULL
[352]132--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
133  ;
[162]134
135
136-- ** Objektartengruppe: Verkehr **
137
138-- 10 ax_Strassenverkehr
139-- -------------------------------------
[298]140INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,   zustand, name, bezeichnung, wkb_geometry)
141  SELECT             gml_id, beginnt, 10,      coalesce(funktion, 0), null,   zustand, name, zweitname,   wkb_geometry
[178]142  FROM ax_strassenverkehr
143  WHERE endet IS NULL
[352]144--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
145  ;
[162]146
147
148-- 11 ax_Weg
149-- -------------------------------------
[298]150INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,  zustand, name, bezeichnung, wkb_geometry)
151  SELECT             gml_id, beginnt, 11,      coalesce(funktion, 0), null,  null,    name, bezeichnung, wkb_geometry
[178]152  FROM ax_weg
153  WHERE endet IS NULL;
[162]154
155
156-- 12 ax_Platz
157-- -------------------------------------
[298]158INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
159  SELECT             gml_id, beginnt, 12,      coalesce(funktion, 0), null, null,    name, zweitname,   wkb_geometry
[178]160  FROM ax_platz
161  WHERE endet IS NULL
[352]162--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
163  ;
[162]164
165
166-- 13 ax_Bahnverkehr
167-- -------------------------------------
[298]168INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,          zustand, name,        bezeichnung, wkb_geometry)
169  SELECT             gml_id, beginnt, 13,      coalesce(funktion, 0), bahnkategorie, zustand, bezeichnung, null,        wkb_geometry
[178]170  FROM ax_bahnverkehr
171  WHERE endet IS NULL
[352]172--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
173  ;
[162]174-- bahnkategorie ist alternativ ein geeignetes class-Feld
175
176
177-- 14 ax_Flugverkehr
178-- -------------------------------------
[298]179INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,  zustand, name, bezeichnung, wkb_geometry)
180  SELECT             gml_id, beginnt, 14,      coalesce(art, 0),      null,  zustand, name, bezeichnung, wkb_geometry
[178]181  FROM ax_flugverkehr
182  WHERE endet IS NULL
[352]183--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
184  ;
[162]185
186
187-- 15 ax_Schiffsverkehr
188-- -------------------------------------
[298]189INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
190  SELECT             gml_id, beginnt, 15,      coalesce(funktion, 0), null, zustand, name, null,        wkb_geometry
[178]191  FROM ax_schiffsverkehr
192  WHERE endet IS NULL
[352]193--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
194  ;
[162]195
196
197-- ** Objektartengruppe: Vegetation **
198
199-- 16 ax_Landwirtschaft
200-- -------------------------------------
[298]201INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                           info, zustand, name, bezeichnung, wkb_geometry)
202  SELECT             gml_id, beginnt, 16,      coalesce(vegetationsmerkmal, 0), null, null,    name, null,        wkb_geometry
[178]203  FROM ax_landwirtschaft
204  WHERE endet IS NULL
[352]205--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
206  ;
[162]207
208
209-- 17 ax_Wald
210-- -------------------------------------
[298]211INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                           info, zustand, name, bezeichnung, wkb_geometry)
212  SELECT             gml_id, beginnt, 17,      coalesce(vegetationsmerkmal, 0), null, null,    name, bezeichnung, wkb_geometry
[178]213  FROM ax_wald
214  WHERE endet IS NULL
[352]215--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
216  ;
[162]217
218
219-- 18 ax_Gehoelz
220-- -------------------------------------
[298]221INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,  zustand, name, bezeichnung, wkb_geometry)
222  SELECT             gml_id, beginnt, 18,      coalesce(funktion, 0), vegetationsmerkmal, null,    null, null,        wkb_geometry
[178]223  FROM ax_gehoelz
224  WHERE endet IS NULL
[352]225--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
226  ;
[162]227
228
229-- 19 ax_Heide
230-- -------------------------------------
[298]231INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,  info, zustand, name, bezeichnung, wkb_geometry)
232  SELECT             gml_id, beginnt, 19,      0,      null, null,    name, null,        wkb_geometry
[178]233  FROM ax_heide
234  WHERE endet IS NULL
[352]235--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
236  ;
[162]237
238
239-- 20 ax_Moor
240-- -------------------------------------
[298]241INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,  info, zustand, name, bezeichnung, wkb_geometry)
242  SELECT             gml_id, beginnt, 20,          0,  null, null,    name, null,        wkb_geometry
[178]243  FROM ax_moor
244  WHERE endet IS NULL
[352]245--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
246  ;
[162]247
248
249-- 21 ax_Sumpf
250-- -------------------------------------
[298]251INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,  info, zustand, name, bezeichnung, wkb_geometry)
252  SELECT             gml_id, beginnt, 21,          0,  null, null,    name, null,        wkb_geometry
[178]253  FROM ax_sumpf
254  WHERE endet IS NULL
[352]255--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
256  ;
[162]257
258
259-- 22 ax_UnlandVegetationsloseFlaeche
260-- -------------------------------------
[298]261INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,                 zustand, name, bezeichnung, wkb_geometry)
262  SELECT             gml_id, beginnt, 22,      coalesce(funktion, 0), oberflaechenmaterial, null,    name, null,        wkb_geometry
[178]263  FROM ax_unlandvegetationsloseflaeche
264  WHERE endet IS NULL
[352]265--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
266  ;
[162]267
268-- (23 NummerierungslÃŒcke)
269
270-- ** Objektartengruppe: GewÀsser **
271
272-- 24 ax_Fliessgewaesser
273-- -------------------------------------
[298]274INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand,  name, bezeichnung, wkb_geometry)
275  SELECT             gml_id, beginnt, 24,      coalesce(funktion, 0), null, zustand,  name, null,        wkb_geometry
[178]276  FROM ax_fliessgewaesser
277  WHERE endet IS NULL
[352]278--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
279  ;
[162]280
281
282-- 25 ax_Hafenbecken
283-- -------------------------------------
[298]284INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,    zustand,   name, bezeichnung, wkb_geometry)
285  SELECT             gml_id, beginnt, 25,      coalesce(funktion, 0), nutzung, null,      name, null,        wkb_geometry
[178]286  FROM ax_hafenbecken
287  WHERE endet IS NULL
[352]288--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
289  ;
[162]290
291
292-- 26 ax_StehendesGewaesser
293-- -------------------------------------
[298]294INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung,         wkb_geometry)
295  SELECT             gml_id, beginnt, 26,      coalesce(funktion, 0), null, null,    name, gewaesserkennziffer, wkb_geometry
[178]296  FROM ax_stehendesgewaesser
297  WHERE endet IS NULL
[352]298--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
299  ;
[162]300
301
302-- 27 ax_Meer
303-- -------------------------------------
[298]304INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
305  SELECT             gml_id, beginnt, 27,      coalesce(funktion, 0), null, null,    name, bezeichnung, wkb_geometry
[178]306  FROM ax_meer
307  WHERE endet IS NULL
[352]308--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
309  ;
[162]310
311
[298]312-- Ergaenzung der SchlÃŒsseltabelle
313-- -------------------------------
314
315-- Fehlende EintrÀge in der manuell gefÌllten Tabelle "nutzung_class" (Theorie, aus GeoInfoDok)
316-- durch EintrÀge aus der zusammen gefassten Tabelle "nutzung" ergÀnzen (Praxis).
317
318-- Wenn in der Praxis weitere SchlÃŒssel vorkommen, die in der Tabelle "nutzung_class" noch nicht
319-- enthalten sind, dann kann das bei Equivalenz-Abfragen (INNER JOIN) dazu fÃŒhren, dass die
320-- Nutzungsarten-Abschnitte mit den dort fehlenden SchlÃŒsseln ausgelassen werden.
321
322INSERT INTO  nutzung_class ( nutz_id, class, label, blabla )
323  SELECT DISTINCT
324         n.nutz_id,
325         n.class,
326        '(unbekannt)' AS label,
327        'SchlÃŒssel wurde im PostProcessing aus der Tabelle "nutzung" ergÀnzt' AS blabla
328     FROM nutzung n  -- Daten aus Konverter -- die Praxis
329     WHERE NOT EXISTS
330     ( SELECT c.class
331         FROM nutzung_class c -- vorbereitete Metadaten aus GeoInfoDok  -- die Theorie
332        WHERE n.nutz_id = c.nutz_id
333          AND n.class = c.class
334      )
335      ORDER BY n.nutz_id, n.class ;
336
[162]337-- END --
Note: See TracBrowser for help on using the repository browser.