GLE-Postgis-Reichsbodenschätzung: Unterschied zwischen den Versionen
Aus kvwmap
(Die Seite wurde neu angelegt: „ == Datenmodell Klassifizierte Bodenwertzahlen für Schätzungsflächen == CREATE TABLE alkis.lkvr_schaetzungsflaechen ( id integer, beginnt character v…“) |
|||
| Zeile 1: | Zeile 1: | ||
| − | == Datenmodell Klassifizierte Bodenwertzahlen | + | == Datenmodell Klassifizierte Bodenwertzahlen pro Schätzungsfläche == |
CREATE TABLE alkis.lkvr_schaetzungsflaechen | CREATE TABLE alkis.lkvr_schaetzungsflaechen | ||
| Zeile 72: | Zeile 72: | ||
COMMENT ON COLUMN alkis.lkvr_schaetzungsflaechen_flurstueck.gra_bwz_gesamt IS 'Gruenland_Acker Bodenwertzahl 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'; | 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; | ||
| + | |||
| + | " # 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 | ||
Version vom 3. August 2015, 15:45 Uhr
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;
" # 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