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…“) |
(→Script für Postprocessing Bodenwertzahlen pro Flurstück) |
||
| (7 dazwischenliegende Versionen des gleichen Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | + | __TOC__ | |
| − | == 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 <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, | ||
| + | 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 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 | ||
| + | |||
| + | |||
| + | == Script für Postprocessing Bodenwertzahlen pro Flurstück == | ||
| + | |||
| + | #!/bin/sh | ||
| + | |||
| + | ################################################################### | ||
| + | # Script lkvr_schaetzungsflaechen_flurstuecke.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_flurstueck; export TABLENAME | ||
| + | LOGFILE=/home/gisadmin/scripte/logs/lkvr_schaetzungsflaechen_flurstueck.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 " | ||
| + | |||
| + | TRUNCATE TABLE $SCHEMANAME.$TABLENAME; | ||
| + | |||
| + | " # Ende SQL | ||
| + | |||
| + | if test $? -eq 0 | ||
| + | then | ||
| + | echo " TRUNCATE lkvr_schaetzungsflaechen_flurstueck erfolgreich durchgeführt" >> $LOGFILE 2>&1 | ||
| + | else | ||
| + | echo ">> TRUNCATE lkvr_schaetzungsflaechen_flurstueck konnte nicht durchgeführt werden" >> $LOGFILE 2>&1 | ||
| + | fi | ||
| + | |||
| + | $PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c " | ||
| + | |||
| + | CREATE TABLE alkis.schaetzung_temp AS | ||
| + | SELECT | ||
| + | s.kulturart_kurz, | ||
| + | s.ackerzahlodergruenlandzahl, | ||
| + | ST_Multi(ST_Intersection(s.geometrie,b.wkb_geometry)) AS wkb_geometry | ||
| + | FROM | ||
| + | alkis.lkvr_schaetzungsflaechen s | ||
| + | JOIN alkis.ax_bewertung b ON ST_Intersects(s.geometrie,b.wkb_geometry) | ||
| + | WHERE s.endet IS NULL AND b.endet IS NULL AND b.klassifizierung >= 2000 AND ST_Area(ST_Intersection(s.geometrie,b.wkb_geometry))>0; | ||
| + | |||
| + | CREATE INDEX ixschaetzung_temp_wkb_geometry_gist | ||
| + | ON alkis.schaetzung_temp | ||
| + | USING gist (wkb_geometry); | ||
| + | |||
| + | " # Ende SQL | ||
| + | |||
| + | if test $? -eq 0 | ||
| + | then | ||
| + | echo " CREATE TABLE schaetzung_temp erfolgreich durchgeführt" >> $LOGFILE 2>&1 | ||
| + | else | ||
| + | echo ">> CREATE TABLE schaetzung_temp konnte nicht durchgeführt werden" >> $LOGFILE 2>&1 | ||
| + | fi | ||
| + | |||
| + | $PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c " | ||
| + | |||
| + | UPDATE | ||
| + | alkis.schaetzung_temp | ||
| + | SET | ||
| + | wkb_geometry = ST_CollectionExtract(wkb_geometry,3) | ||
| + | WHERE | ||
| + | ST_GeometryType(wkb_geometry) = 'ST_GeometryCollection'; | ||
| + | |||
| + | " # Ende SQL | ||
| + | |||
| + | if test $? -eq 0 | ||
| + | then | ||
| + | echo " UPDATE schaetzung_temp erfolgreich durchgeführt" >> $LOGFILE 2>&1 | ||
| + | else | ||
| + | echo ">> UPDATE schaetzung_temp konnte nicht durchgeführt werden" >> $LOGFILE 2>&1 | ||
| + | fi | ||
| + | |||
| + | $PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c " | ||
| + | |||
| + | CREATE TABLE alkis.schaetzung_flurstueck_temp AS | ||
| + | SELECT | ||
| + | f.gml_id AS fsgml_id, | ||
| + | f.flurstueckskennzeichen, | ||
| + | st.kulturart_kurz, | ||
| + | st.ackerzahlodergruenlandzahl, | ||
| + | f.amtlicheflaeche/ST_Area(f.wkb_geometry) AS ratio, | ||
| + | ST_Multi(ST_Intersection(f.wkb_geometry,st.wkb_geometry)) AS wkb_geometry | ||
| + | FROM | ||
| + | alkis.ax_flurstueck f | ||
| + | JOIN alkis.schaetzung_temp st | ||
| + | ON ST_Intersects(f.wkb_geometry,st.wkb_geometry) | ||
| + | WHERE f.endet IS NULL AND ST_Area(ST_Intersection(f.wkb_geometry,st.wkb_geometry))>0; | ||
| + | |||
| + | CREATE INDEX ixschaetzung_flurstueck_temp_wkb_geometry_gist | ||
| + | ON alkis.schaetzung_flurstueck_temp | ||
| + | USING gist (wkb_geometry); | ||
| + | |||
| + | " # Ende SQL | ||
| + | |||
| + | if test $? -eq 0 | ||
| + | then | ||
| + | echo " CREATE TABLE schaetzung_flurstueck_temp erfolgreich durchgeführt" >> $LOGFILE 2>&1 | ||
| + | else | ||
| + | echo ">> CREATE TABLE schaetzung_flurstueck_temp konnte nicht durchgeführt werden" >> $LOGFILE 2>&1 | ||
| + | fi | ||
| + | |||
| + | $PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c " | ||
| + | |||
| + | UPDATE | ||
| + | alkis.schaetzung_flurstueck_temp | ||
| + | SET | ||
| + | wkb_geometry = ST_CollectionExtract(wkb_geometry,3) | ||
| + | WHERE | ||
| + | ST_GeometryType(wkb_geometry) = 'ST_GeometryCollection'; | ||
| + | |||
| + | " # Ende SQL | ||
| + | |||
| + | if test $? -eq 0 | ||
| + | then | ||
| + | echo " UPDATE schaetzung_flurstueck_temp erfolgreich durchgeführt" >> $LOGFILE 2>&1 | ||
| + | else | ||
| + | echo ">> UPDATE schaetzung_flurstueck_temp konnte nicht durchgeführt werden" >> $LOGFILE 2>&1 | ||
| + | fi | ||
| + | |||
| + | $PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c " | ||
| + | |||
| + | DROP TABLE alkis.schaetzung_temp; | ||
| + | |||
| + | " # Ende SQL | ||
| + | |||
| + | if test $? -eq 0 | ||
| + | then | ||
| + | echo " DROP schaetzung_temp erfolgreich durchgeführt" >> $LOGFILE 2>&1 | ||
| + | else | ||
| + | echo ">> DROP schaetzung_temp konnte nicht durchgeführt werden" >> $LOGFILE 2>&1 | ||
| + | fi | ||
| + | |||
| + | $PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c " | ||
| + | |||
| + | CREATE TABLE alkis.schaetzung_flurstueck_temp_gruenland AS | ||
| + | SELECT | ||
| + | fsgml_id, | ||
| + | round(sum(ST_Area(wkb_geometry)*ratio)) AS flaeche_gesamt, | ||
| + | round(sum(((st_area(wkb_geometry)*ratio)/100)*ackerzahlodergruenlandzahl)) AS emz_gesamt, | ||
| + | round(sum(((st_area(wkb_geometry)*ratio)/100)*ackerzahlodergruenlandzahl)*100/sum(ST_Area(wkb_geometry)*ratio)) AS bwz_gesamt | ||
| + | FROM alkis.schaetzung_flurstueck_temp | ||
| + | WHERE kulturart_kurz = 'Gr' | ||
| + | GROUP BY fsgml_id; | ||
| + | |||
| + | DELETE FROM alkis.schaetzung_flurstueck_temp_gruenland WHERE flaeche_gesamt=0; | ||
| + | |||
| + | " # Ende SQL | ||
| + | |||
| + | if test $? -eq 0 | ||
| + | then | ||
| + | echo " CREATE TABLE/DELETE FROM schaetzung_flurstueck_temp_gruenland erfolgreich durchgeführt" >> $LOGFILE 2>&1 | ||
| + | else | ||
| + | echo ">> CREATE TABLE/DELETE FROM schaetzung_flurstueck_temp_gruenland konnte nicht durchgeführt werden" >> $LOGFILE 2>&1 | ||
| + | fi | ||
| + | |||
| + | $PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c " | ||
| + | |||
| + | CREATE TABLE alkis.schaetzung_flurstueck_temp_acker AS | ||
| + | SELECT | ||
| + | fsgml_id, | ||
| + | round(sum(ST_Area(wkb_geometry)*ratio)) AS flaeche_gesamt, | ||
| + | round(sum(((st_area(wkb_geometry)*ratio)/100)*ackerzahlodergruenlandzahl)) AS emz_gesamt, | ||
| + | round(sum(((st_area(wkb_geometry)*ratio)/100)*ackerzahlodergruenlandzahl)*100/sum(ST_Area(wkb_geometry)*ratio)) AS bwz_gesamt | ||
| + | FROM alkis.schaetzung_flurstueck_temp | ||
| + | WHERE kulturart_kurz = 'A' | ||
| + | GROUP BY fsgml_id; | ||
| + | |||
| + | DELETE FROM alkis.schaetzung_flurstueck_temp_acker WHERE flaeche_gesamt=0; | ||
| + | |||
| + | " # Ende SQL | ||
| + | |||
| + | if test $? -eq 0 | ||
| + | then | ||
| + | echo " CREATE TABLE/DELETE FROM schaetzung_flurstueck_temp_acker erfolgreich durchgeführt" >> $LOGFILE 2>&1 | ||
| + | else | ||
| + | echo ">> CREATE TABLE/DELETE FROM schaetzung_flurstueck_temp_acker konnte nicht durchgeführt werden" >> $LOGFILE 2>&1 | ||
| + | fi | ||
| + | |||
| + | $PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c " | ||
| + | |||
| + | CREATE TABLE alkis.schaetzung_flurstueck_temp_ackergruenland AS | ||
| + | SELECT | ||
| + | fsgml_id, | ||
| + | round(sum(ST_Area(wkb_geometry)*ratio)) AS flaeche_gesamt, | ||
| + | round(sum(((st_area(wkb_geometry)*ratio)/100)*ackerzahlodergruenlandzahl)) AS emz_gesamt, | ||
| + | round(sum(((st_area(wkb_geometry)*ratio)/100)*ackerzahlodergruenlandzahl)*100/sum(ST_Area(wkb_geometry)*ratio)) AS bwz_gesamt | ||
| + | FROM alkis.schaetzung_flurstueck_temp | ||
| + | WHERE kulturart_kurz = 'AGr' | ||
| + | GROUP BY fsgml_id; | ||
| + | |||
| + | DELETE FROM alkis.schaetzung_flurstueck_temp_ackergruenland WHERE flaeche_gesamt=0; | ||
| + | |||
| + | " # Ende SQL | ||
| + | |||
| + | if test $? -eq 0 | ||
| + | then | ||
| + | echo " CREATE TABLE/DELETE FROM schaetzung_flurstueck_temp_ackergruenland erfolgreich durchgeführt" >> $LOGFILE 2>&1 | ||
| + | else | ||
| + | echo ">> CREATE TABLE/DELETE FROM schaetzung_flurstueck_temp_ackergruenland konnte nicht durchgeführt werden" >> $LOGFILE 2>&1 | ||
| + | fi | ||
| + | |||
| + | $PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c " | ||
| + | |||
| + | CREATE TABLE alkis.schaetzung_flurstueck_temp_gruenlandacker AS | ||
| + | SELECT | ||
| + | fsgml_id, | ||
| + | round(sum(ST_Area(wkb_geometry)*ratio)) AS flaeche_gesamt, | ||
| + | round(sum(((st_area(wkb_geometry)*ratio)/100)*ackerzahlodergruenlandzahl)) AS emz_gesamt, | ||
| + | round(sum(((st_area(wkb_geometry)*ratio)/100)*ackerzahlodergruenlandzahl)*100/sum(ST_Area(wkb_geometry)*ratio)) AS bwz_gesamt | ||
| + | FROM alkis.schaetzung_flurstueck_temp | ||
| + | WHERE kulturart_kurz = 'GrA' | ||
| + | GROUP BY fsgml_id; | ||
| + | |||
| + | DELETE FROM alkis.schaetzung_flurstueck_temp_gruenlandacker WHERE flaeche_gesamt=0; | ||
| + | |||
| + | " # Ende SQL | ||
| + | |||
| + | if test $? -eq 0 | ||
| + | then | ||
| + | echo " CREATE TABLE/DELETE FROM schaetzung_flurstueck_temp_gruenlandacker erfolgreich durchgeführt" >> $LOGFILE 2>&1 | ||
| + | else | ||
| + | echo ">> CREATE TABLE/DELETE FROM schaetzung_flurstueck_temp_gruenlandacker konnte nicht durchgeführt werden" >> $LOGFILE 2>&1 | ||
| + | fi | ||
| + | |||
| + | $PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c " | ||
| + | |||
| + | DROP TABLE alkis.schaetzung_flurstueck_temp; | ||
| + | |||
| + | " # Ende SQL | ||
| + | |||
| + | if test $? -eq 0 | ||
| + | then | ||
| + | echo " DROP schaetzung_flurstueck_temp erfolgreich durchgeführt" >> $LOGFILE 2>&1 | ||
| + | else | ||
| + | echo ">> DROP schaetzung_flurstueck_temp konnte nicht durchgeführt werden" >> $LOGFILE 2>&1 | ||
| + | fi | ||
| + | |||
| + | $PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c " | ||
| + | |||
| + | CREATE TABLE alkis.schaetzung_flurstuecksliste_temp AS | ||
| + | SELECT | ||
| + | DISTINCT f.gml_id, | ||
| + | f.flurstueckskennzeichen, | ||
| + | f.amtlicheflaeche | ||
| + | FROM | ||
| + | alkis.ax_flurstueck f | ||
| + | JOIN alkis.ax_bewertung b | ||
| + | ON ST_Intersects(f.wkb_geometry,b.wkb_geometry) | ||
| + | WHERE | ||
| + | f.endet IS NULL | ||
| + | AND b.endet IS NULL | ||
| + | AND b.klassifizierung >= 2000; | ||
| + | |||
| + | " # Ende SQL | ||
| + | |||
| + | if test $? -eq 0 | ||
| + | then | ||
| + | echo " CREATE TABLE schaetzung_flurstuecksliste_temp erfolgreich durchgeführt" >> $LOGFILE 2>&1 | ||
| + | else | ||
| + | echo ">> CREATE TABLE schaetzung_flurstuecksliste_temp konnte nicht durchgeführt werden" >> $LOGFILE 2>&1 | ||
| + | fi | ||
| + | |||
| + | $PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c " | ||
| + | |||
| + | INSERT INTO $SCHEMANAME.$TABLENAME | ||
| + | (SELECT | ||
| + | f.gml_id AS fsgml_id, | ||
| + | f.flurstueckskennzeichen, | ||
| + | a.flaeche_gesamt AS a_flaeche_gesamt, | ||
| + | a.emz_gesamt AS a_emz_gesamt, | ||
| + | a.bwz_gesamt AS a_bwz_gesamt, | ||
| + | gr.flaeche_gesamt AS gr_flaeche_gesamt, | ||
| + | gr.emz_gesamt AS gr_emz_gesamt, | ||
| + | gr.bwz_gesamt AS gr_bwz_gesamt, | ||
| + | agr.flaeche_gesamt AS agr_flaeche_gesamt, | ||
| + | agr.emz_gesamt AS agr_emz_gesamt, | ||
| + | agr.bwz_gesamt AS agr_bwz_gesamt, | ||
| + | gra.flaeche_gesamt AS gra_flaeche_gesamt, | ||
| + | gra.emz_gesamt AS gra_emz_gesamt, | ||
| + | gra.bwz_gesamt AS gra_bwz_gesamt, | ||
| + | f.amtlicheflaeche-(CASE WHEN a.flaeche_gesamt IS NULL THEN 0 ELSE a.flaeche_gesamt END)-(CASE WHEN gr.flaeche_gesamt IS NULL THEN 0 ELSE gr.flaeche_gesamt END)-(CASE WHEN agr.flaeche_gesamt IS NULL THEN 0 ELSE agr.flaeche_gesamt END)-(CASE WHEN gra.flaeche_gesamt IS NULL THEN 0 ELSE gra.flaeche_gesamt END) AS nicht_geschaetzt | ||
| + | FROM alkis.schaetzung_flurstuecksliste_temp f | ||
| + | FULL OUTER JOIN alkis.schaetzung_flurstueck_temp_acker a ON f.gml_id = a.fsgml_id | ||
| + | FULL OUTER JOIN alkis.schaetzung_flurstueck_temp_gruenland gr ON f.gml_id = gr.fsgml_id | ||
| + | FULL OUTER JOIN alkis.schaetzung_flurstueck_temp_ackergruenland agr ON f.gml_id = agr.fsgml_id | ||
| + | FULL OUTER JOIN alkis.schaetzung_flurstueck_temp_gruenlandacker gra ON f.gml_id = gra.fsgml_id); | ||
| + | |||
| + | " # Ende SQL | ||
| + | |||
| + | if test $? -eq 0 | ||
| + | then | ||
| + | echo " INSERT INTO lkvr_schaetzungsflaechen_flurstueck erfolgreich durchgeführt" >> $LOGFILE 2>&1 | ||
| + | else | ||
| + | echo ">> INSERT INTO lkvr_schaetzungsflaechen_flurstueck konnte nicht durchgeführt werden" >> $LOGFILE 2>&1 | ||
| + | fi | ||
| + | |||
| + | $PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c " | ||
| + | |||
| + | DELETE FROM $SCHEMANAME.$TABLENAME WHERE | ||
| + | a_flaeche_gesamt IS NULL | ||
| + | AND a_emz_gesamt IS NULL | ||
| + | AND a_bwz_gesamt IS NULL | ||
| + | AND gr_flaeche_gesamt IS NULL | ||
| + | AND gr_emz_gesamt IS NULL | ||
| + | AND gr_bwz_gesamt IS NULL | ||
| + | AND agr_flaeche_gesamt IS NULL | ||
| + | AND agr_emz_gesamt IS NULL | ||
| + | AND agr_bwz_gesamt IS NULL | ||
| + | AND gra_flaeche_gesamt IS NULL | ||
| + | AND gra_emz_gesamt IS NULL | ||
| + | AND gra_bwz_gesamt IS NULL; | ||
| + | |||
| + | " # Ende SQL | ||
| + | |||
| + | if test $? -eq 0 | ||
| + | then | ||
| + | echo " DELETE FROM lkvr_schaetzungsflaechen_flurstueck erfolgreich durchgeführt" >> $LOGFILE 2>&1 | ||
| + | else | ||
| + | echo ">> DELETE FROM lkvr_schaetzungsflaechen_flurstueck konnte nicht durchgeführt werden" >> $LOGFILE 2>&1 | ||
| + | fi | ||
| + | |||
| + | $PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c " | ||
| + | |||
| + | DROP TABLE alkis.schaetzung_flurstueck_temp_acker; | ||
| + | |||
| + | DROP TABLE alkis.schaetzung_flurstueck_temp_ackergruenland; | ||
| + | |||
| + | DROP TABLE alkis.schaetzung_flurstueck_temp_gruenland; | ||
| + | |||
| + | DROP TABLE alkis.schaetzung_flurstueck_temp_gruenlandacker; | ||
| + | |||
| + | DROP TABLE alkis.schaetzung_flurstuecksliste_temp; | ||
| + | |||
| + | " # Ende SQL | ||
| + | |||
| + | if test $? -eq 0 | ||
| + | then | ||
| + | echo " DROP temporärer Tabellen erfolgreich durchgeführt" >> $LOGFILE 2>&1 | ||
| + | else | ||
| + | echo ">> DROP temporärer Tabellen konnte nicht durchgeführt werden" >> $LOGFILE 2>&1 | ||
| + | fi | ||
| + | |||
| + | 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; | ||
| + | |||
| + | " # Ende SQL | ||
| + | |||
| + | if test $? -eq 0 | ||
| + | then | ||
| + | echo " VACUUM erfolgreich durchgeführt" >> $LOGFILE 2>&1 | ||
| + | else | ||
| + | echo ">> VACUUM konnte nicht durchgeführt werden" >> $LOGFILE 2>&1 | ||
| + | fi | ||
| + | |||
| + | echo " " >> $LOGFILE 2>&1 | ||
| + | echo "############## Ende `date +%c` ################" >> $LOGFILE 2>&1 | ||
| + | echo " " >> $LOGFILE 2>&1 | ||
| + | |||
| + | exit 0 | ||
Aktuelle Version vom 4. August 2015, 09:40 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 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
Script für Postprocessing Bodenwertzahlen pro Flurstück
#!/bin/sh
###################################################################
# Script lkvr_schaetzungsflaechen_flurstuecke.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_flurstueck; export TABLENAME
LOGFILE=/home/gisadmin/scripte/logs/lkvr_schaetzungsflaechen_flurstueck.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 "
TRUNCATE TABLE $SCHEMANAME.$TABLENAME;
" # Ende SQL
if test $? -eq 0
then
echo " TRUNCATE lkvr_schaetzungsflaechen_flurstueck erfolgreich durchgeführt" >> $LOGFILE 2>&1
else
echo ">> TRUNCATE lkvr_schaetzungsflaechen_flurstueck konnte nicht durchgeführt werden" >> $LOGFILE 2>&1
fi
$PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c "
CREATE TABLE alkis.schaetzung_temp AS
SELECT
s.kulturart_kurz,
s.ackerzahlodergruenlandzahl,
ST_Multi(ST_Intersection(s.geometrie,b.wkb_geometry)) AS wkb_geometry
FROM
alkis.lkvr_schaetzungsflaechen s
JOIN alkis.ax_bewertung b ON ST_Intersects(s.geometrie,b.wkb_geometry)
WHERE s.endet IS NULL AND b.endet IS NULL AND b.klassifizierung >= 2000 AND ST_Area(ST_Intersection(s.geometrie,b.wkb_geometry))>0;
CREATE INDEX ixschaetzung_temp_wkb_geometry_gist
ON alkis.schaetzung_temp
USING gist (wkb_geometry);
" # Ende SQL
if test $? -eq 0
then
echo " CREATE TABLE schaetzung_temp erfolgreich durchgeführt" >> $LOGFILE 2>&1
else
echo ">> CREATE TABLE schaetzung_temp konnte nicht durchgeführt werden" >> $LOGFILE 2>&1
fi
$PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c "
UPDATE
alkis.schaetzung_temp
SET
wkb_geometry = ST_CollectionExtract(wkb_geometry,3)
WHERE
ST_GeometryType(wkb_geometry) = 'ST_GeometryCollection';
" # Ende SQL
if test $? -eq 0
then
echo " UPDATE schaetzung_temp erfolgreich durchgeführt" >> $LOGFILE 2>&1
else
echo ">> UPDATE schaetzung_temp konnte nicht durchgeführt werden" >> $LOGFILE 2>&1
fi
$PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c "
CREATE TABLE alkis.schaetzung_flurstueck_temp AS
SELECT
f.gml_id AS fsgml_id,
f.flurstueckskennzeichen,
st.kulturart_kurz,
st.ackerzahlodergruenlandzahl,
f.amtlicheflaeche/ST_Area(f.wkb_geometry) AS ratio,
ST_Multi(ST_Intersection(f.wkb_geometry,st.wkb_geometry)) AS wkb_geometry
FROM
alkis.ax_flurstueck f
JOIN alkis.schaetzung_temp st
ON ST_Intersects(f.wkb_geometry,st.wkb_geometry)
WHERE f.endet IS NULL AND ST_Area(ST_Intersection(f.wkb_geometry,st.wkb_geometry))>0;
CREATE INDEX ixschaetzung_flurstueck_temp_wkb_geometry_gist
ON alkis.schaetzung_flurstueck_temp
USING gist (wkb_geometry);
" # Ende SQL
if test $? -eq 0
then
echo " CREATE TABLE schaetzung_flurstueck_temp erfolgreich durchgeführt" >> $LOGFILE 2>&1
else
echo ">> CREATE TABLE schaetzung_flurstueck_temp konnte nicht durchgeführt werden" >> $LOGFILE 2>&1
fi
$PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c "
UPDATE
alkis.schaetzung_flurstueck_temp
SET
wkb_geometry = ST_CollectionExtract(wkb_geometry,3)
WHERE
ST_GeometryType(wkb_geometry) = 'ST_GeometryCollection';
" # Ende SQL
if test $? -eq 0
then
echo " UPDATE schaetzung_flurstueck_temp erfolgreich durchgeführt" >> $LOGFILE 2>&1
else
echo ">> UPDATE schaetzung_flurstueck_temp konnte nicht durchgeführt werden" >> $LOGFILE 2>&1
fi
$PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c "
DROP TABLE alkis.schaetzung_temp;
" # Ende SQL
if test $? -eq 0
then
echo " DROP schaetzung_temp erfolgreich durchgeführt" >> $LOGFILE 2>&1
else
echo ">> DROP schaetzung_temp konnte nicht durchgeführt werden" >> $LOGFILE 2>&1
fi
$PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c "
CREATE TABLE alkis.schaetzung_flurstueck_temp_gruenland AS
SELECT
fsgml_id,
round(sum(ST_Area(wkb_geometry)*ratio)) AS flaeche_gesamt,
round(sum(((st_area(wkb_geometry)*ratio)/100)*ackerzahlodergruenlandzahl)) AS emz_gesamt,
round(sum(((st_area(wkb_geometry)*ratio)/100)*ackerzahlodergruenlandzahl)*100/sum(ST_Area(wkb_geometry)*ratio)) AS bwz_gesamt
FROM alkis.schaetzung_flurstueck_temp
WHERE kulturart_kurz = 'Gr'
GROUP BY fsgml_id;
DELETE FROM alkis.schaetzung_flurstueck_temp_gruenland WHERE flaeche_gesamt=0;
" # Ende SQL
if test $? -eq 0
then
echo " CREATE TABLE/DELETE FROM schaetzung_flurstueck_temp_gruenland erfolgreich durchgeführt" >> $LOGFILE 2>&1
else
echo ">> CREATE TABLE/DELETE FROM schaetzung_flurstueck_temp_gruenland konnte nicht durchgeführt werden" >> $LOGFILE 2>&1
fi
$PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c "
CREATE TABLE alkis.schaetzung_flurstueck_temp_acker AS
SELECT
fsgml_id,
round(sum(ST_Area(wkb_geometry)*ratio)) AS flaeche_gesamt,
round(sum(((st_area(wkb_geometry)*ratio)/100)*ackerzahlodergruenlandzahl)) AS emz_gesamt,
round(sum(((st_area(wkb_geometry)*ratio)/100)*ackerzahlodergruenlandzahl)*100/sum(ST_Area(wkb_geometry)*ratio)) AS bwz_gesamt
FROM alkis.schaetzung_flurstueck_temp
WHERE kulturart_kurz = 'A'
GROUP BY fsgml_id;
DELETE FROM alkis.schaetzung_flurstueck_temp_acker WHERE flaeche_gesamt=0;
" # Ende SQL
if test $? -eq 0
then
echo " CREATE TABLE/DELETE FROM schaetzung_flurstueck_temp_acker erfolgreich durchgeführt" >> $LOGFILE 2>&1
else
echo ">> CREATE TABLE/DELETE FROM schaetzung_flurstueck_temp_acker konnte nicht durchgeführt werden" >> $LOGFILE 2>&1
fi
$PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c "
CREATE TABLE alkis.schaetzung_flurstueck_temp_ackergruenland AS
SELECT
fsgml_id,
round(sum(ST_Area(wkb_geometry)*ratio)) AS flaeche_gesamt,
round(sum(((st_area(wkb_geometry)*ratio)/100)*ackerzahlodergruenlandzahl)) AS emz_gesamt,
round(sum(((st_area(wkb_geometry)*ratio)/100)*ackerzahlodergruenlandzahl)*100/sum(ST_Area(wkb_geometry)*ratio)) AS bwz_gesamt
FROM alkis.schaetzung_flurstueck_temp
WHERE kulturart_kurz = 'AGr'
GROUP BY fsgml_id;
DELETE FROM alkis.schaetzung_flurstueck_temp_ackergruenland WHERE flaeche_gesamt=0;
" # Ende SQL
if test $? -eq 0
then
echo " CREATE TABLE/DELETE FROM schaetzung_flurstueck_temp_ackergruenland erfolgreich durchgeführt" >> $LOGFILE 2>&1
else
echo ">> CREATE TABLE/DELETE FROM schaetzung_flurstueck_temp_ackergruenland konnte nicht durchgeführt werden" >> $LOGFILE 2>&1
fi
$PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c "
CREATE TABLE alkis.schaetzung_flurstueck_temp_gruenlandacker AS
SELECT
fsgml_id,
round(sum(ST_Area(wkb_geometry)*ratio)) AS flaeche_gesamt,
round(sum(((st_area(wkb_geometry)*ratio)/100)*ackerzahlodergruenlandzahl)) AS emz_gesamt,
round(sum(((st_area(wkb_geometry)*ratio)/100)*ackerzahlodergruenlandzahl)*100/sum(ST_Area(wkb_geometry)*ratio)) AS bwz_gesamt
FROM alkis.schaetzung_flurstueck_temp
WHERE kulturart_kurz = 'GrA'
GROUP BY fsgml_id;
DELETE FROM alkis.schaetzung_flurstueck_temp_gruenlandacker WHERE flaeche_gesamt=0;
" # Ende SQL
if test $? -eq 0
then
echo " CREATE TABLE/DELETE FROM schaetzung_flurstueck_temp_gruenlandacker erfolgreich durchgeführt" >> $LOGFILE 2>&1
else
echo ">> CREATE TABLE/DELETE FROM schaetzung_flurstueck_temp_gruenlandacker konnte nicht durchgeführt werden" >> $LOGFILE 2>&1
fi
$PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c "
DROP TABLE alkis.schaetzung_flurstueck_temp;
" # Ende SQL
if test $? -eq 0
then
echo " DROP schaetzung_flurstueck_temp erfolgreich durchgeführt" >> $LOGFILE 2>&1
else
echo ">> DROP schaetzung_flurstueck_temp konnte nicht durchgeführt werden" >> $LOGFILE 2>&1
fi
$PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c "
CREATE TABLE alkis.schaetzung_flurstuecksliste_temp AS
SELECT
DISTINCT f.gml_id,
f.flurstueckskennzeichen,
f.amtlicheflaeche
FROM
alkis.ax_flurstueck f
JOIN alkis.ax_bewertung b
ON ST_Intersects(f.wkb_geometry,b.wkb_geometry)
WHERE
f.endet IS NULL
AND b.endet IS NULL
AND b.klassifizierung >= 2000;
" # Ende SQL
if test $? -eq 0
then
echo " CREATE TABLE schaetzung_flurstuecksliste_temp erfolgreich durchgeführt" >> $LOGFILE 2>&1
else
echo ">> CREATE TABLE schaetzung_flurstuecksliste_temp konnte nicht durchgeführt werden" >> $LOGFILE 2>&1
fi
$PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c "
INSERT INTO $SCHEMANAME.$TABLENAME
(SELECT
f.gml_id AS fsgml_id,
f.flurstueckskennzeichen,
a.flaeche_gesamt AS a_flaeche_gesamt,
a.emz_gesamt AS a_emz_gesamt,
a.bwz_gesamt AS a_bwz_gesamt,
gr.flaeche_gesamt AS gr_flaeche_gesamt,
gr.emz_gesamt AS gr_emz_gesamt,
gr.bwz_gesamt AS gr_bwz_gesamt,
agr.flaeche_gesamt AS agr_flaeche_gesamt,
agr.emz_gesamt AS agr_emz_gesamt,
agr.bwz_gesamt AS agr_bwz_gesamt,
gra.flaeche_gesamt AS gra_flaeche_gesamt,
gra.emz_gesamt AS gra_emz_gesamt,
gra.bwz_gesamt AS gra_bwz_gesamt,
f.amtlicheflaeche-(CASE WHEN a.flaeche_gesamt IS NULL THEN 0 ELSE a.flaeche_gesamt END)-(CASE WHEN gr.flaeche_gesamt IS NULL THEN 0 ELSE gr.flaeche_gesamt END)-(CASE WHEN agr.flaeche_gesamt IS NULL THEN 0 ELSE agr.flaeche_gesamt END)-(CASE WHEN gra.flaeche_gesamt IS NULL THEN 0 ELSE gra.flaeche_gesamt END) AS nicht_geschaetzt
FROM alkis.schaetzung_flurstuecksliste_temp f
FULL OUTER JOIN alkis.schaetzung_flurstueck_temp_acker a ON f.gml_id = a.fsgml_id
FULL OUTER JOIN alkis.schaetzung_flurstueck_temp_gruenland gr ON f.gml_id = gr.fsgml_id
FULL OUTER JOIN alkis.schaetzung_flurstueck_temp_ackergruenland agr ON f.gml_id = agr.fsgml_id
FULL OUTER JOIN alkis.schaetzung_flurstueck_temp_gruenlandacker gra ON f.gml_id = gra.fsgml_id);
" # Ende SQL
if test $? -eq 0
then
echo " INSERT INTO lkvr_schaetzungsflaechen_flurstueck erfolgreich durchgeführt" >> $LOGFILE 2>&1
else
echo ">> INSERT INTO lkvr_schaetzungsflaechen_flurstueck konnte nicht durchgeführt werden" >> $LOGFILE 2>&1
fi
$PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c "
DELETE FROM $SCHEMANAME.$TABLENAME WHERE
a_flaeche_gesamt IS NULL
AND a_emz_gesamt IS NULL
AND a_bwz_gesamt IS NULL
AND gr_flaeche_gesamt IS NULL
AND gr_emz_gesamt IS NULL
AND gr_bwz_gesamt IS NULL
AND agr_flaeche_gesamt IS NULL
AND agr_emz_gesamt IS NULL
AND agr_bwz_gesamt IS NULL
AND gra_flaeche_gesamt IS NULL
AND gra_emz_gesamt IS NULL
AND gra_bwz_gesamt IS NULL;
" # Ende SQL
if test $? -eq 0
then
echo " DELETE FROM lkvr_schaetzungsflaechen_flurstueck erfolgreich durchgeführt" >> $LOGFILE 2>&1
else
echo ">> DELETE FROM lkvr_schaetzungsflaechen_flurstueck konnte nicht durchgeführt werden" >> $LOGFILE 2>&1
fi
$PSQLPATH/psql -U $PGUSERNAME -d $PGDBNAME -c "
DROP TABLE alkis.schaetzung_flurstueck_temp_acker;
DROP TABLE alkis.schaetzung_flurstueck_temp_ackergruenland;
DROP TABLE alkis.schaetzung_flurstueck_temp_gruenland;
DROP TABLE alkis.schaetzung_flurstueck_temp_gruenlandacker;
DROP TABLE alkis.schaetzung_flurstuecksliste_temp;
" # Ende SQL
if test $? -eq 0
then
echo " DROP temporärer Tabellen erfolgreich durchgeführt" >> $LOGFILE 2>&1
else
echo ">> DROP temporärer Tabellen konnte nicht durchgeführt werden" >> $LOGFILE 2>&1
fi
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;
" # Ende SQL
if test $? -eq 0
then
echo " VACUUM erfolgreich durchgeführt" >> $LOGFILE 2>&1
else
echo ">> VACUUM konnte nicht durchgeführt werden" >> $LOGFILE 2>&1
fi
echo " " >> $LOGFILE 2>&1
echo "############## Ende `date +%c` ################" >> $LOGFILE 2>&1
echo " " >> $LOGFILE 2>&1
exit 0