BORIS.MV 2.0.1 aus kvwmap ausgeben

Aus kvwmap
Wechseln zu: Navigation, Suche

--Hschmidt (Diskussion) 10:22, 17. Nov. 2016 (CET)
Alle Jahre wieder !!! werden uns Änderungen am Datenmodell der Bodenrichtwerte präsentiert ;-)
Die Änderungen im Detail sollen an dieser Stelle nicht erläutert werden und über den Sinn oder Unsinn kann jeder selbst grübeln!
Kleine Korrekturen --Hschmidt (Diskussion) 08:56, 12. Mai 2022 (CEST) :-)
Die vorhandene Sicht für die Ausgabe der Daten als shape-File und für die Bereitstelung der Dienste wurde wie folgt angepasst:

CREATE OR REPLACE VIEW bodenrichtwerte.bw_boris_mv_view AS 
 SELECT bw.oid, 
    (bw.gutachterausschuss || '_'::text) || lpad(bw.bodenrichtwertnummer::character(13)::text, 7, '0'::text) AS brw_id, 
    k.bezeichnung AS kreisname, k.schluesselgesamt AS kreisschl, 
    ag.amt_name AS geverna, ag.gemeindeverband_schluessel AS geverschl, 
    ag.regionalschluessel AS gesl, NULL::text AS geteilschl, 
    g.bezeichnung AS gena, bw.gutachterausschuss AS gasl, 
    'Landkreis Ludwigslust-Parchim'::text AS gabe, 
    "substring"(bw.gemarkung::text, 3, 4) AS genu, NULL::text AS gema, 
    bw.ortsteilname AS ortst, 
    lpad(bw.bodenrichtwertnummer::character(13)::text, 8, '0'::text) AS wnum, 
        CASE
            WHEN bw.brwu IS NOT NULL THEN bw.brwu::numeric(6,2)
            WHEN bw.brwb IS NOT NULL THEN bw.brwb::numeric(6,2)
            ELSE bw.bodenrichtwert::numeric(6,2)
        END AS brw, 
    to_char(bw.stichtag::timestamp with time zone, 'DD.MM.YYYY'::text) AS stag, 
    '1'::text AS brke, bw.bedarfswert::numeric(6,2) AS bedw, 
    bw.postleitzahl AS plz, bw.basiskarte AS basbe, '1000'::text AS basma, 
    'ETRS89_UTM33'::text AS bezug, bw.entwicklungszustand AS entw, 
    bw.beitragszustand AS beit, bw.nutzungsart AS nuta, 
    bw.ergaenzende_nutzung AS ergnuta, bw.bauweise AS bauw, 
    bw.geschosszahl AS gez, bw.geschossflaechenzahl AS wgfz, 
    bw.grundflaechenzahl AS grz, bw.baumassenzahl AS bmz, bw.flaeche AS flae, 
    bw.tiefe AS gtie, bw.breite AS gbrei, 
    bw.erschliessungsverhaeltnisse AS erve, bw.verfahrensgrund AS verg, 
        CASE
            WHEN bw.brwu IS NOT NULL AND bw.verfahrensgrund::text = 'San'::text THEN 'SU'::character varying
            WHEN bw.brwu IS NOT NULL AND bw.verfahrensgrund::text = 'Entw'::text THEN 'EU'::character varying
            WHEN bw.brwb IS NOT NULL AND bw.verfahrensgrund::text = 'San'::text THEN 'SB'::character varying
            WHEN bw.brwb IS NOT NULL AND bw.verfahrensgrund::text = 'Entw'::text THEN 'EB'::character varying
            ELSE bw.verfahrensgrund_zusatz
        END AS verf, 
    bw.bodenart AS bod, bw.ackerzahl AS acza, bw.gruenlandzahl AS grza, 
    bw.aufwuchs AS aufw, bw.wegeerschliessung AS weer, bw.bemerkungen AS bem, 
    ::text AS frei, bw.oertliche_bezeichnung AS brzname, '0'::text AS umdart, 
    ('http://pfad/zur/umrechungstabelle/tabelle'::text || bw.stichtag) || '.pdf'::text AS lumnum, 
    bw.zonentyp AS typ, bw.stichtag + '1 day'::interval AS guelt_von, 
    bw.stichtag + '2 years'::interval AS guelt_bis, bw.the_geom AS geometrie
   FROM alkis.ax_kreisregion k, 
    bodenrichtwerte.bw_zonen bw
   LEFT JOIN alkis.ax_gemeinde g ON bw.gemeinde::text = g.schluesselgesamt::text
   LEFT JOIN alkis.lk_aemtergemeinden ag ON ag.gemeinde_schluessel::integer = bw.gemeinde
  WHERE k.bezeichnung::text = 'Landkreis Ludwigslust-Parchim'::text AND k.endet IS NULL AND g.endet IS NULL;

ALTER TABLE bodenrichtwerte.bw_boris_mv_view
  OWNER TO kvwmap;
COMMENT ON VIEW bodenrichtwerte.bw_boris_mv_view
  IS 'Datenmodell BORIS.MV 2.0.1 aus Fachschale Bodenrichtwerte in kvwmap';


Für die Korrekte Ausgabe sind jedoch noch diverse Änderungen in den Daten notwendig, so wurden z. B. die Bezeichnungen der Klassifizierungen der Bodenrichtwetzonen wieder mal geändert.
Die Daten des Jahrgangs werden in eine Tabelle eingelesen und dann angepasst. Tabellendefinition gem. BORIS.MV 2.0.1:

CREATE TABLE bodenrichtwerte.boris_lup_2016
(
  gid serial NOT NULL,
  brw_id character varying(13),
  kreisname character varying(254),
  kreisschl character varying(5),
  geverna character varying(254),
  geverschl character varying(9),
  gesl character varying(12),
  geteilschl character varying(4),
  gena character varying(30),
  gasl character varying(5),
  gabe character varying(40),
  genu character varying(4),
  gema character varying(60),
  ortst character varying(60),
  wnum character varying(8),
  brw numeric(6,2),
  stag character varying(10),
  brke character varying(1),
  bedw numeric(6,2),
  plz character varying(5),
  basbe character varying(20),
  basma character varying(6),
  bezug character varying(12),
  entw character varying(2),
  beit character varying(1),
  nuta character varying(3),
  ergnuta character varying(3),
  bauw character varying(2),
  gez character varying(19),
  wgfz character varying(11),
  grz character varying(9),
  bmz character varying(9),
  flae character varying(12),
  gtie character varying(8),
  gbrei character varying(8),
  erve character varying(1),
  verg character varying(4),
  verf character varying(2),
  bod character varying(2),
  acza character varying(7),
  grza character varying(7),
  aufw character varying(2),
  weer character varying(1),
  bem character varying(254),
  frei character varying(254),
  brzname character varying(254),
  umdart character varying(1),
  lumnum character varying(254),
  typ character varying(30),
  guelt_von character varying(10),
  guelt_bis character varying(10),
  geometrie geometry,
  CONSTRAINT boris_lup_2016_pkey PRIMARY KEY (gid)
)
WITH (
  OIDS=TRUE
);
ALTER TABLE bodenrichtwerte.boris_lup_2016
  OWNER TO kvwmap;
CREATE INDEX boris_lup_2016_geometry_idx
  ON bodenrichtwerte.boris_lup_2016
  USING gist
  (geometrie);

Daten über die Sicht einlesen mit:

insert into bodenrichtwerte.boris_lup_2016 (select * from bodenrichtwerte.bw_boris_lup_view  where stag = '31.12.2015');

Dann die Werte anpassen an BORIS.MV 2.0.1:

-- entw
update bodenrichtwerte.boris_lup_2016 set entw = 'B ' where entw ='B';
update bodenrichtwerte.boris_lup_2016 set entw = 'R ' where entw ='R';
update bodenrichtwerte.boris_lup_2016 set entw = 'E ' where entw ='E';
-- typ
update bodenrichtwerte.boris_lup_2016 set typ = 'Sanierungsgebiet' where typ ='Sanierungsflächen';
update bodenrichtwerte.boris_lup_2016 set typ = 'Ackerland' where typ ='Ackerlandflächen';
update bodenrichtwerte.boris_lup_2016 set typ = 'Grünland' where typ ='Grünlandflächen';
update bodenrichtwerte.boris_lup_2016 set typ = 'forstwirtschaftliche Flächen' where typ ='Forstflächen';
update bodenrichtwerte.boris_lup_2016 set typ = 'gewerbliche Bauflächen' where typ ='Gewerbeflächen';
-- evtl. weitere updates je nach Ausgangsdatenbestand

Die Daten in der neuen Tabelle können dann als shape ausgegeben werden und die entsprechenden WMS/WFS-Dienste versorgen.

Die notwendigen Änderungen der Fachschale sind in der ToDo-Liste beschrieben.
Viel Spaß damit !!!