GLE-Postgis-Reichsbodenschätzung: Unterschied zwischen den Versionen
Aus kvwmap
(→Script für Postprocessing Bodenwertzahlen pro Schätzungsfläche) |
(→Script für Postprocessing Bodenwertzahlen pro Schätzungsfläche) |
||
Zeile 122: | Zeile 122: | ||
so1.bezeichner as sonderfall_lang, | so1.bezeichner as sonderfall_lang, | ||
CASE WHEN ka.kurz ~~ 'AGr%' OR ka.kurz ~~ 'GrA%' THEN 'ja' ELSE 'nein' END as wechselland, | CASE WHEN ka.kurz ~~ 'AGr%' OR ka.kurz ~~ 'GrA%' THEN 'ja' ELSE 'nein' END as wechselland, | ||
− | ba.kurz||zs.kurz||CASE WHEN ea2.kurz is NULL THEN '' ELSE ea2.kurz END||CASE WHEN ea1.kurz is NULL THEN '' ELSE ea1.kurz END||' '||CASE WHEN bs.bodenzahlodergruenlandgrundzahl is NULL THEN '' ELSE (bs.bodenzahlodergruenlandgrundzahl||'/') END||bs.ackerzahlodergruenlandzahl as bodendefinition, | + | ba.kurz||zs.kurz||CASE WHEN ea2.kurz is NULL THEN <nowiki>''</nowiki> ELSE ea2.kurz END||CASE WHEN ea1.kurz is NULL THEN <nowiki>''</nowiki> ELSE ea1.kurz END||' '||CASE WHEN bs.bodenzahlodergruenlandgrundzahl is NULL THEN <nowiki>''</nowiki> ELSE (bs.bodenzahlodergruenlandgrundzahl||'/') END||bs.ackerzahlodergruenlandzahl as bodendefinition, |
round(area(bs.wkb_geometry)) as flaeche, | round(area(bs.wkb_geometry)) as flaeche, | ||
ST_Multi(bs.wkb_geometry) as geometrie | ST_Multi(bs.wkb_geometry) as geometrie |
Version vom 4. August 2015, 07:36 Uhr
Inhaltsverzeichnis
Datenmodell Klassifizierte Bodenwertzahlen pro Schätzungsfläche
CREATE TABLE alkis.lkvr_schaetzungsflaechen ( id integer, beginnt character varying, endet character varying, kulturart_kurz character varying, kulturart_lang character varying, bodenart_kurz character varying, bodenart_lang character varying, zustandsstufe_kurz character varying, zustandsstufe_lang character varying, entstehungsart_kurz character varying, entstehungsart_lang character varying, klimastufe_kurz character varying, klimastufe_lang character varying, bodenzahlodergruenlandgrundzahl integer, ackerzahlodergruenlandzahl integer, sonderfall_kurz character varying, sonderfall_lang character varying, wechselland character varying, bodendefinition character varying, flaeche double precision ) WITH ( OIDS=TRUE ); SELECT AddGeometryColumn('alkis', 'lkvr_schaetzungsflaechen','geometrie',25833,'MULTIPOLYGON', 2); CREATE INDEX ixlkvrschaetz_geometrie_gist ON alkis.lkvr_schaetzungsflaechen USING gist (geometrie);
Datenmodell Klassifizierte Bodenwertzahlen pro Flurstück
CREATE TABLE alkis.lkvr_schaetzungsflaechen_flurstueck ( fsgml_id character varying(16), flurstueckskennzeichen character(20), a_flaeche_gesamt double precision, a_emz_gesamt double precision, a_bwz_gesamt double precision, gr_flaeche_gesamt double precision, gr_emz_gesamt double precision, gr_bwz_gesamt double precision, agr_flaeche_gesamt double precision, agr_emz_gesamt double precision, agr_bwz_gesamt double precision, gra_flaeche_gesamt double precision, gra_emz_gesamt double precision, gra_bwz_gesamt double precision, nicht_geschaetzt double precision ) WITH ( OIDS=FALSE ); COMMENT ON TABLE alkis.lkvr_schaetzungsflaechen_flurstueck IS 'Gesetzl. Klassifizierung Bodenschaetzung (flurstuecksbezogen)'; COMMENT ON COLUMN alkis.lkvr_schaetzungsflaechen_flurstueck.fsgml_id IS 'gml_id des zugehoerigen Flurstueck-Objektes'; COMMENT ON COLUMN alkis.lkvr_schaetzungsflaechen_flurstueck.a_flaeche_gesamt IS 'Ackerland Flaeche gesamt'; COMMENT ON COLUMN alkis.lkvr_schaetzungsflaechen_flurstueck.a_emz_gesamt IS 'Ackerland Ertragsmesszahl gesamt'; COMMENT ON COLUMN alkis.lkvr_schaetzungsflaechen_flurstueck.a_bwz_gesamt IS 'Ackerland Bodenwertzahl gesamt'; COMMENT ON COLUMN alkis.lkvr_schaetzungsflaechen_flurstueck.gr_flaeche_gesamt IS 'Gruenland Flaeche gesamt'; COMMENT ON COLUMN alkis.lkvr_schaetzungsflaechen_flurstueck.gr_emz_gesamt IS 'Gruenland Ertragsmesszahl gesamt'; COMMENT ON COLUMN alkis.lkvr_schaetzungsflaechen_flurstueck.gr_bwz_gesamt IS 'Gruenland Bodenwertzahl gesamt'; COMMENT ON COLUMN alkis.lkvr_schaetzungsflaechen_flurstueck.agr_flaeche_gesamt IS 'Acker_Gruenland Flaeche gesamt'; COMMENT ON COLUMN alkis.lkvr_schaetzungsflaechen_flurstueck.agr_emz_gesamt IS 'Acker_Gruenland Ertragsmesszahl gesamt'; COMMENT ON COLUMN alkis.lkvr_schaetzungsflaechen_flurstueck.agr_bwz_gesamt IS 'Acker_Gruenland Bodenwertzahl gesamt'; COMMENT ON COLUMN alkis.lkvr_schaetzungsflaechen_flurstueck.gra_flaeche_gesamt IS 'Gruenland_Acker Flaeche gesamt'; COMMENT ON COLUMN alkis.lkvr_schaetzungsflaechen_flurstueck.gra_emz_gesamt IS 'Gruenland_Acker Ertragsmesszahl gesamt'; COMMENT ON COLUMN alkis.lkvr_schaetzungsflaechen_flurstueck.gra_bwz_gesamt IS 'Gruenland_Acker Bodenwertzahl gesamt'; COMMENT ON COLUMN alkis.lkvr_schaetzungsflaechen_flurstueck.nicht_geschaetzt IS 'nicht geschaetzte Flaeche';
Script für Postprocessing Bodenwertzahlen pro Schätzungsfläche
#!/bin/sh ################################################################### # Script lkvr_schaetzungsflaechen.sh ################################################################### ### setzt Variablen ### PSQLPATH=/usr/lib/postgresql/9.1/bin; export PSQLPATH PGUSERNAME=kvwmap; export PGUSERNAME PGDBNAME=kvwmapsp; export PGDBNAME SCHEMANAME=alkis; export SCHEMANAME TABLENAME=lkvr_schaetzungsflaechen; export TABLENAME LOGFILE=/home/gisadmin/scripte/logs/lkvr_schaetzungsflaechen.log; export LOGFILE echo " " >> $LOGFILE 2>&1 echo "############## Beginn `date +%c` ################" >> $LOGFILE 2>&1 echo " " >> $LOGFILE 2>&1 $PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c " DROP INDEX $SCHEMANAME.ixlkvrschaetz_geometrie_gist; TRUNCATE $SCHEMANAME.$TABLENAME; INSERT INTO $SCHEMANAME.$TABLENAME SELECT bs.ogc_fid as id, bs.beginnt, bs.endet, ka.kurz as kulturart_kurz, ka.bezeichner as kulturart_lang, ba.kurz as bodenart_kurz, ba.bezeichner as bodenart_lang, zs.kurz as zustandsstufe_kurz, zs.bezeichner as zustandsstufe_lang, ea1.kurz as entstehungsart_kurz, ea1.bezeichner as entstehungsart_lang, ea2.kurz as klimastufe_kurz, ea2.bezeichner as klimastufe_lang, bs.bodenzahlodergruenlandgrundzahl, bs.ackerzahlodergruenlandzahl, so1.kurz as sonderfall_kurz, so1.bezeichner as sonderfall_lang, CASE WHEN ka.kurz ~~ 'AGr%' OR ka.kurz ~~ 'GrA%' THEN 'ja' ELSE 'nein' END as wechselland, ba.kurz||zs.kurz||CASE WHEN ea2.kurz is NULL THEN '' ELSE ea2.kurz END||CASE WHEN ea1.kurz is NULL THEN '' ELSE ea1.kurz END||' '||CASE WHEN bs.bodenzahlodergruenlandgrundzahl is NULL THEN '' ELSE (bs.bodenzahlodergruenlandgrundzahl||'/') END||bs.ackerzahlodergruenlandzahl as bodendefinition, round(area(bs.wkb_geometry)) as flaeche, ST_Multi(bs.wkb_geometry) as geometrie FROM alkis.ax_bodenschaetzung bs LEFT JOIN alkis.ax_bodenschaetzung_kulturart ka ON bs.kulturart = ka.wert LEFT JOIN alkis.ax_bodenschaetzung_bodenart ba ON bs.bodenart = ba.wert LEFT JOIN alkis.ax_bodenschaetzung_zustandsstufe zs ON bs.zustandsstufeoderbodenstufe = zs.wert LEFT JOIN alkis.ax_bodenschaetzung_entstehungsartoderklimastufe ea1 ON bs.entstehungsartoderklimastufewasserverhaeltnisse[1] = ea1.wert LEFT JOIN alkis.ax_bodenschaetzung_entstehungsartoderklimastufe ea2 ON bs.entstehungsartoderklimastufewasserverhaeltnisse[2] = ea2.wert LEFT JOIN alkis.ax_bodenschaetzung_sonstigeangaben so1 ON bs.sonstigeangaben[1] = so1.wert WHERE bs.endet IS NOT NULL; " # Ende SQL if test $? -eq 0 then echo " Import Schaetzungsflaechen erfolgreich durchgeführt" >> $LOGFILE 2>&1 else echo ">> Import Schaetzungsflaechen konnte nicht durchgeführt werden" >> $LOGFILE 2>&1 fi # Tabelle analysieren $PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c " VACUUM ANALYZE $SCHEMANAME.$TABLENAME; CREATE INDEX ixlkvrschaetz_geometrie_gist ON $SCHEMANAME.$TABLENAME USING gist (geometrie); " # Ende SQL if test $? -eq 0 then echo " INDEX erfolgreich angelegt" >> $LOGFILE 2>&1 else echo ">> INDEX konnte nicht angelegt werden" >> $LOGFILE 2>&1 fi echo " " >> $LOGFILE 2>&1 echo "############## Ende `date +%c` ################" >> $LOGFILE 2>&1 echo " " >> $LOGFILE 2>&1 exit 0