source: trunk/import/nutzungsart_laden.sql @ 387

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

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

Line 
1--
2-- ALKIS PostNAS 0.7
3--
4-- ======================================================
5-- Zusammenfassung der Tabellen der tatsÀchlichen Nutzung
6-- ======================================================
7--
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.
12--
13-- Teil 3: Laden der (redundanten) Tabelle "nutzung", notwendig nach jeder FortfÃŒhrung.
14--
15-- Stand
16--
17--  2012-02-10 PostNAS 07, Umbenennung
18--  2012-04-24 keine historischen Flaechen (..WHERE endet IS NULL),
19--             Feld 'beginnt' mitnehmen wegen Doppelbelegung gml_id (noch klÀren)
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.
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.
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
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
50  FROM ax_wohnbauflaeche
51  WHERE endet IS NULL
52--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
53  ;
54
55-- 02 REO: ax_IndustrieUndGewerbeflaeche
56-- -------------------------------------
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
59  FROM ax_industrieundgewerbeflaeche
60  WHERE endet IS NULL
61--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
62  ;
63
64
65-- 03 REO: ax_Halde
66-- -------------------------------------
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
69  FROM ax_halde
70  WHERE endet IS NULL
71--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
72  ;
73
74
75-- 04 ax_Bergbaubetrieb
76-- -------------------------------------
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
79  FROM ax_bergbaubetrieb
80  WHERE endet IS NULL
81--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
82  ;
83
84
85-- 05 REO: ax_TagebauGrubeSteinbruch
86-- -------------------------------------
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
89  FROM ax_bergbaubetrieb
90  WHERE endet IS NULL
91--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
92  ;
93
94
95-- 06 REO: ax_FlaecheGemischterNutzung
96-- -------------------------------------
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
99  FROM ax_flaechegemischternutzung
100  WHERE endet IS NULL
101--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
102  ;
103
104
105-- 07 REO: ax_FlaecheBesondererFunktionalerPraegung
106-- -------------------------------------
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
109  FROM ax_flaechebesondererfunktionalerpraegung
110  WHERE endet IS NULL
111--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
112  ;
113
114
115-- 08 REO: ax_SportFreizeitUndErholungsflaeche
116-- -------------------------------------
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
119  FROM ax_sportfreizeitunderholungsflaeche
120  WHERE endet IS NULL
121--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
122  ;
123-- weiteres Feld: name char(20)?
124
125
126-- 09 REO: ax_Friedhof
127-- -------------------------------------
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
130  FROM ax_friedhof
131  WHERE endet IS NULL
132--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
133  ;
134
135
136-- ** Objektartengruppe: Verkehr **
137
138-- 10 ax_Strassenverkehr
139-- -------------------------------------
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
142  FROM ax_strassenverkehr
143  WHERE endet IS NULL
144--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
145  ;
146
147
148-- 11 ax_Weg
149-- -------------------------------------
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
152  FROM ax_weg
153  WHERE endet IS NULL;
154
155
156-- 12 ax_Platz
157-- -------------------------------------
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
160  FROM ax_platz
161  WHERE endet IS NULL
162--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
163  ;
164
165
166-- 13 ax_Bahnverkehr
167-- -------------------------------------
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
170  FROM ax_bahnverkehr
171  WHERE endet IS NULL
172--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
173  ;
174-- bahnkategorie ist alternativ ein geeignetes class-Feld
175
176
177-- 14 ax_Flugverkehr
178-- -------------------------------------
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
181  FROM ax_flugverkehr
182  WHERE endet IS NULL
183--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
184  ;
185
186
187-- 15 ax_Schiffsverkehr
188-- -------------------------------------
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
191  FROM ax_schiffsverkehr
192  WHERE endet IS NULL
193--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
194  ;
195
196
197-- ** Objektartengruppe: Vegetation **
198
199-- 16 ax_Landwirtschaft
200-- -------------------------------------
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
203  FROM ax_landwirtschaft
204  WHERE endet IS NULL
205--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
206  ;
207
208
209-- 17 ax_Wald
210-- -------------------------------------
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
213  FROM ax_wald
214  WHERE endet IS NULL
215--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
216  ;
217
218
219-- 18 ax_Gehoelz
220-- -------------------------------------
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
223  FROM ax_gehoelz
224  WHERE endet IS NULL
225--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
226  ;
227
228
229-- 19 ax_Heide
230-- -------------------------------------
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
233  FROM ax_heide
234  WHERE endet IS NULL
235--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
236  ;
237
238
239-- 20 ax_Moor
240-- -------------------------------------
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
243  FROM ax_moor
244  WHERE endet IS NULL
245--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
246  ;
247
248
249-- 21 ax_Sumpf
250-- -------------------------------------
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
253  FROM ax_sumpf
254  WHERE endet IS NULL
255--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
256  ;
257
258
259-- 22 ax_UnlandVegetationsloseFlaeche
260-- -------------------------------------
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
263  FROM ax_unlandvegetationsloseflaeche
264  WHERE endet IS NULL
265--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
266  ;
267
268-- (23 NummerierungslÃŒcke)
269
270-- ** Objektartengruppe: GewÀsser **
271
272-- 24 ax_Fliessgewaesser
273-- -------------------------------------
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
276  FROM ax_fliessgewaesser
277  WHERE endet IS NULL
278--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
279  ;
280
281
282-- 25 ax_Hafenbecken
283-- -------------------------------------
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
286  FROM ax_hafenbecken
287  WHERE endet IS NULL
288--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
289  ;
290
291
292-- 26 ax_StehendesGewaesser
293-- -------------------------------------
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
296  FROM ax_stehendesgewaesser
297  WHERE endet IS NULL
298--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
299  ;
300
301
302-- 27 ax_Meer
303-- -------------------------------------
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
306  FROM ax_meer
307  WHERE endet IS NULL
308--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
309  ;
310
311
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
337-- END --
Note: See TracBrowser for help on using the repository browser.