Changeset 163 for trunk/data/konvert


Ignore:
Timestamp:
02/17/12 14:57:42 (12 years ago)
Author:
frank.jaeger
Message:

Vers. 0.7: Flächen von Fluren, Gemarkungen, Gemeinden zusammen fassen und darstellen

Location:
trunk/data/konvert/postnas_0.7
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/data/konvert/postnas_0.7/konv_batch.sh

    r162 r163  
    55## Batch-Teil, Aufruf mit geprueften Parametern    - 
    66## ------------------------------------------------- 
     7## 
     8## Ordner-Struktur: 
     9##   /mandant/ 
     10##           /0001/*.xml.zip 
     11##           /0002/*.xml.zip 
     12##          usw. 
     13##           /temp/ 
     14##   Auf der gleichen Ebene wie die Datenordner muss ein Ordner /temp/ existieren. 
     15##   Dort werden die NAS-Daten temporär ausgepackt. 
     16##   Relativ zum mitgegebenen Parameter ist das: '../temp/' 
     17##   Parallel laufende Konvertierungen zum gleichen Mandanten  
     18##   würden hier durcheinander geraten. Vermeiden! 
     19## 
    720## Stand:  
    821##   2012-02-10 Umbennung nach 0.7 
     22##   2012-02-17 Optimierung 
    923## 
    10 ## Konverter:   /opt/gdal-1.9/bin/ = GDAL 1.9 / PostNAS 0.7 
     24## Konverter:   /opt/gdal-1.9.1/bin/ = GDAL 1.9-DEV / PostNAS 0.7 
    1125## Koordinaten: EPSG:25832  UTM, Zone 32 
    1226##              -a_srs EPSG:25832   - bleibt im UTM-System (korrigierte Werte) 
     
    5064# DB-Connection 
    5165con="-p 5432 -d ${DBNAME} " 
    52 # 
    5366echo "Datenbank-Name . . = ${DBNAME}" 
    5467echo "Ordner NAS-Daten . = ${ORDNER}" 
     
    7689    then 
    7790      # E R S T L A D E N 
    78       /opt/gdal-1.9/bin/ogr2ogr -f "PostgreSQL" -append  ${update}  -skipfailures \ 
     91      /opt/gdal-1.9.1/bin/ogr2ogr -f "PostgreSQL" -append  ${update}  -skipfailures \ 
    7992         PG:"dbname=${DBNAME} host=localhost port=5432" \ 
    8093         -a_srs EPSG:25832  ${nasdatei}  ${layer}  2>> $errprot 
     
    8598      # A K T U A L I S I E R U N G 
    8699      echo "- 1. Nur delete-Layer auswerten"  
    87       /opt/gdal-1.9/bin/ogr2ogr -f "PostgreSQL" -append  ${update}  -skipfailures \ 
     100      /opt/gdal-1.9.1/bin/ogr2ogr -f "PostgreSQL" -append  ${update}  -skipfailures \ 
    88101         PG:"dbname=${DBNAME} host=localhost port=5432" \ 
    89102         -a_srs EPSG:25832  ${nasdatei}  delete  2>> $errprot 
     
    96109      # 
    97110      echo "- 2. alle Layer auswerten" 
    98       /opt/gdal-1.9/bin/ogr2ogr -f "PostgreSQL" -append  ${update}  -skipfailures \ 
     111      /opt/gdal-1.9.1/bin/ogr2ogr -f "PostgreSQL" -append  ${update}  -skipfailures \ 
    99112        PG:"dbname=${DBNAME} host=localhost port=5432" \ 
    100113        -a_srs EPSG:25832  ${nasdatei}  ${layer}  2>> $errprot 
  • trunk/data/konvert/postnas_0.7/ordner_konvertieren.sh

    r162 r163  
    33## Konvertierung von ALKIS NAS-Format nach PosGIS  - 
    44## NAS-Daten in einem Ordner konvertieren          - 
    5 ## Dialog-Teil zum Ermitteln der Parameter         - 
     5## Dialog-Teil zum Abfragen der Parameter          - 
    66## ------------------------------------------------- 
    77## Stand: 
    88##  2012-02-10  PostNAS 07, Umbenennung 
     9##  2012-02-17  Parameter "DBUSER" raus 
    910##  
    1011function get_db_config(){ 
    11  
     12        # 
    1213        # Name der zu ladenden ALKIS-Datenbank 
     14        # 
    1315        until [ -n "$DBNAME" ] 
    1416        do 
     
    1719                read DBNAME 
    1820        done 
    19  
    20         echo "" 
    21         echo "Datenbank-User?" 
    22         read DBUSER 
    23  
    24 #       echo "" 
    25 #       echo "Datenbank-Passwort?" 
    26 #       stty -echo 
    27 #               read DBPASS 
    28 #       stty echo 
    29  
    30         ## Ordner (Eingabedaten) 
     21        # 
     22        # Ordner (Eingabedaten) 
     23        # 
    3124        echo "" 
    3225        echo "Ordner mit gezippten NAS-Daten (*.xml.zip)? (Absoluter Pfad)" 
     
    4336                LSRESULT=$? 
    4437        done 
    45  
     38        # 
    4639        # Erstladen oder NBA-Aktualisierung 
     40        # 
    4741        echo " " 
    4842        echo "Art der Konvertierung" 
     
    5448                read UPD 
    5549        done 
     50        # 
    5651        # Bestaetigung holen 
     52        # 
    5753        echo " " 
    5854        echo "Abschließende Bestätigung:" 
     
    7470echo "** Konvertierung ALKIS **" > /data/konvert/postnas_0.7/log/postnas_err.prot 
    7571echo "** Beginn Batch **" 
    76 ##                                                1        2        3        4        5 
    77          /data/konvert/postnas_0.7/konv_batch.sh  $ORDNER  $DBNAME  $DBUSER  $UPD 
     72##                                       1        2        3 
     73/data/konvert/postnas_0.7/konv_batch.sh  $ORDNER  $DBNAME  $UPD 
    7874result=$? 
    7975if [ $result = 0 ] 
     
    8581echo " " 
    8682echo " Kommando fuer Wiederholung:" 
    87 echo " /data/konvert/postnas_0.7/konv_batch.sh  $ORDNER  $DBNAME  $DBUSER  $UPD " 
     83echo " /data/konvert/postnas_0.7/konv_batch.sh  $ORDNER  $DBNAME  $UPD " 
    8884echo " " 
    8985### 
  • trunk/data/konvert/postnas_0.7/pp_definition.sql

    r162 r163  
    22-- ALKIS PostNAS 0.7 
    33 
    4 -- Post Processing Teil 1: Anlegen der Tabellen 
     4-- Post Processing (pp_) Teil 1: Anlegen der Tabellen und Views 
    55 
    66-- Stand  
    77 
    88--  2012-02-13 PostNAS 07, Umbenennung 
     9--  2012-02-17 Optimierung 
    910 
    1011-- ============================ 
     
    4243 
    4344  CREATE TABLE pp_gemeinde ( 
    44     land                integer, 
     45    gid                 serial, 
     46    land                integer NOT NULL, 
    4547    regierungsbezirk    integer, 
    4648    kreis               integer, 
    47     gemeinde            integer, 
     49    gemeinde            integer NOT NULL, 
    4850    gemeindename        character varying(80), 
    49    gkz                 character varying(03),  -- wird (noch) nicht benutzt 
     51 -- gkz                 character varying(03),  -- wird (noch) nicht benutzt 
    5052    anz_gemarkg         integer,                -- Anzahl Gemarkungen 
    5153    CONSTRAINT pp_gemeinde_pk PRIMARY KEY (land, gemeinde) 
    5254  ); 
    5355 
    54  
    55 -- GesamtflÀche 
     56-- ALTER TABLE pp_gemeinde ADD COLUMN gid serial; 
     57CREATE UNIQUE INDEX pp_gemeinde_gid_ix ON pp_gemeinde (gid); 
     58 
     59-- Gesamtflaeche 
    5660SELECT AddGeometryColumn('pp_gemeinde','the_geom','25832','MULTIPOLYGON',2); 
    57  
    58 -- Index 
    5961CREATE INDEX pp_gemeinde_gidx ON pp_gemeinde USING gist(the_geom); 
    6062 
    61 -- vereinfachte GesamtflÀche 
     63-- vereinfachte Gesamtflaeche 
    6264SELECT AddGeometryColumn('pp_gemeinde','simple_geom','25832','MULTIPOLYGON',2); 
    63  
    6465CREATE INDEX pp_gemeinde_sgidx ON pp_gemeinde USING gist(simple_geom); 
    6566 
     
    6869COMMENT ON COLUMN pp_gemeinde.gemeinde       IS 'Gemeindenummer'; 
    6970COMMENT ON COLUMN pp_gemeinde.gkz            IS 'Gemeindekennziffer fÃŒr Mandant'; 
     71COMMENT ON COLUMN pp_gemeinde.the_geom       IS 'prÀzise Geometrie aus Summe aller Gemarkungen'; 
     72COMMENT ON COLUMN pp_gemeinde.simple_geom    IS 'vereinfachte Geometrie fÃŒr die Suche und die Anzeige von Übersichten in kleinen MaßstÀben.'; 
    7073 
    7174 
     
    8083-- muss diese Information als (redundante) Tabelle nach dem Laden zwischengespeichert werden.  
    8184 
    82 --CREATE TABLE gemeinde_gemarkung (  -- PostNAS 0.6 
    83   CREATE TABLE pp_gemarkung (        -- PostNAS 0.7 
    84     land                integer, 
     85--CREATE TABLE gemeinde_gemarkung (             -- alt: PostNAS 0.6 
     86  CREATE TABLE pp_gemarkung (                   -- PostNAS 0.7 
     87    gid                 serial, 
     88    land                integer NOT NULL, 
    8589    regierungsbezirk    integer, 
    8690    kreis               integer, 
    87     gemeinde            integer,        -- fast ein Foreign-Key Constraint 
     91    gemeinde            integer NOT NULL,       -- fast ein Foreign-Key Constraint 
    8892    gemarkung           integer NOT NULL, 
    8993    gemarkungsname      character varying(80), 
    90     anz_flur            integer,        -- Anzahl Fluren 
     94    anz_flur            integer,                -- Anzahl Fluren 
    9195    CONSTRAINT pp_gemarkung_pk PRIMARY KEY (land, gemarkung) 
    9296  ); 
    9397 
     98-- ALTER TABLE pp_gemarkung ADD COLUMN gid serial; 
     99CREATE UNIQUE INDEX pp_gemarkung_gid_ix ON pp_gemarkung (gid); 
    94100 
    95101-- GesamtflÀche 
    96102SELECT AddGeometryColumn('pp_gemarkung','the_geom','25832','MULTIPOLYGON',2); 
    97  
    98 -- Index 
    99103CREATE INDEX pp_gemarkung_gidx ON pp_gemarkung USING gist(the_geom); 
    100  
    101104 
    102105-- vereinfachte GesamtflÀche 
    103106SELECT AddGeometryColumn('pp_gemarkung','simple_geom','25832','MULTIPOLYGON',2); 
    104  
    105107CREATE INDEX pp_gemarkung_sgidx ON pp_gemarkung USING gist(simple_geom); 
    106108 
    107109 
    108 COMMENT ON TABLE  pp_gemarkung                IS 'Post-Processing: Gemarkung. u.a. liegt in welcher Gemeinde'; 
    109 COMMENT ON COLUMN pp_gemarkung.gemeinde       IS 'Gemeindenummer'; 
    110 COMMENT ON COLUMN pp_gemarkung.gemarkung      IS 'Gemarkungsnummer'; 
     110COMMENT ON TABLE  pp_gemarkung               IS 'Post-Processing: Gemarkung. u.a. liegt in welcher Gemeinde'; 
     111COMMENT ON COLUMN pp_gemarkung.gemeinde      IS 'Gemeindenummer'; 
     112COMMENT ON COLUMN pp_gemarkung.gemarkung     IS 'Gemarkungsnummer'; 
     113COMMENT ON COLUMN pp_gemarkung.the_geom      IS 'prÀzise Geometrie aus Summe aller Fluren'; 
     114COMMENT ON COLUMN pp_gemarkung.simple_geom   IS 'vereinfachte Geometrie fÃŒr die Suche und die Anzeige von Übersichten in kleinen MaßstÀben.'; 
    111115 
    112116 
     
    115119 
    116120  CREATE TABLE pp_flur ( 
    117     land                integer, 
     121    gid                 serial, 
     122    land                integer NOT NULL, 
    118123    regierungsbezirk    integer, 
    119124    kreis               integer, 
    120125    gemarkung           integer NOT NULL, 
    121126    flurnummer          integer NOT NULL, 
    122     anz_fs              integer,        -- Anzahl FlurstÃŒcke 
     127    anz_fs              integer,                -- Anzahl FlurstÃŒcke 
    123128    CONSTRAINT pp_flur_pk PRIMARY KEY (land, gemarkung, flurnummer) 
    124129  ); 
    125130 
     131-- ALTER TABLE pp_flur ADD COLUMN gid serial; 
     132CREATE UNIQUE INDEX pp_flur_gid_ix ON pp_flur (gid); 
     133 
    126134-- GesamtflÀche 
    127135SELECT AddGeometryColumn('pp_flur','the_geom','25832','MULTIPOLYGON',2); 
    128  
    129 -- Index 
    130136CREATE INDEX pp_flur_gidx ON pp_flur USING gist(the_geom); 
    131137 
    132138COMMENT ON TABLE  pp_flur                IS 'Post-Processing: Flur'; 
    133139COMMENT ON COLUMN pp_flur.gemarkung      IS 'Gemarkungsnummer'; 
     140COMMENT ON COLUMN pp_flur.the_geom       IS 'Geometrie aus Summe aller FlurstÃŒcke'; 
    134141 
    135142 
     
    150157 
    151158  CREATE TABLE gemeinde_person ( 
    152     land                        integer, 
     159    land                integer, 
    153160    regierungsbezirk    integer, 
    154     kreis                       integer, 
     161    kreis               integer, 
    155162    gemeinde            integer, 
    156     person              character varying(16),  
     163    person              character varying(16), 
    157164    buchtyp             integer, 
    158165    CONSTRAINT gemeinde_person_pk PRIMARY KEY (gemeinde, person) 
     
    288295 
    289296 
     297-- Views zur Analyse der vereinfachten Geometrie 
     298-- Finden des richtigen Genauigkeits-Wertes fÃŒr die Vereinfachung der Geometrie 
     299 
     300-- z.B. Gemeinden:  10 Meter 
     301--      Gemarkungen: 4 Meter 
     302 
     303CREATE VIEW pp_gemeinde_analyse AS 
     304  SELECT land, gemeinde, gemeindename, 
     305         st_npoints(the_geom)    AS umring_alle_punkte, 
     306         st_npoints(simple_geom) AS umring_einfache_punkte 
     307  FROM pp_gemeinde; 
     308 
     309 
     310CREATE VIEW pp_gemarkung_analyse AS 
     311  SELECT land, gemeinde, gemarkung, gemarkungsname, 
     312         st_npoints(the_geom)    AS umring_alle_punkte, 
     313         st_npoints(simple_geom) AS umring_einfache_punkte 
     314  FROM pp_gemarkung; 
     315 
     316 
    290317-- ENDE -- 
  • trunk/data/konvert/postnas_0.7/pp_laden.sql

    r162 r163  
    22-- ALKIS PostNAS 0.7 
    33 
    4 -- Post Processing Teil 2: Laden der Tabellen 
     4-- Post Processing (pp_) Teil 2: Laden der Tabellen 
    55 
    66-- Stand  
    77 
    88--  2012-02-13 PostNAS 07, Umbenennung 
     9--  2012-02-17 Optimierung 
    910 
    1011 
     
    8182 
    8283 
    83 -- =============================================================== 
    84 -- Geometrien der Flurstücke zu größeren Einheiten zusammen fassen 
    85 -- =============================================================== 
     84-- ============================================================================== 
     85-- Geometrien der Flurstücke schrittweise zu groesseren Einheiten zusammen fassen 
     86-- ============================================================================== 
     87 
     88-- Dies macht nur Sinn, wenn der Inhalt der Datenbenk einen ganzen Katasterbezirk enthält. 
     89-- Wenn ein Gebiet durch geometrische Filter im NBA ausgegeben wurde, dann gibt es Randstreifen,  
     90-- die zu Pseudo-Fluren zusammen gefasst werden. Fachlich falsch! 
    8691 
    8792INSERT INTO pp_flur (land, regierungsbezirk, kreis, gemarkung, flurnummer, anz_fs, the_geom ) 
     
    104109   ); 
    105110 
    106 -- Fluren zählen 
     111-- Fluren zaehlen 
    107112UPDATE pp_gemarkung a 
    108113  SET anz_flur =  
     
    112117   ); -- Gemarkungsnummer ist je BundesLand eindeutig 
    113118 
    114 -- Geometrie vereinfachen 
    115 UPDATE pp_gemarkung SET simple_geom = simplify(the_geom, 4.0); 
    116  
    117 COMMENT ON COLUMN pp_gemarkung.simple_geom     IS 'Vereinfachte Geometrie mit 4 Meter-Genauigkeit. Für Anzeige von Übersichten in kleinen Maßstäben.'; 
     119-- Geometrie vereinfachen (Wirkung siehe pp_gemarkung_analyse) 
     120UPDATE pp_gemarkung SET simple_geom = simplify(the_geom, 8.0); 
    118121 
    119122 
     
    137140   ); 
    138141 
    139 -- Geometrie vereinfachen 
    140  
    141 UPDATE pp_gemeinde SET simple_geom = simplify(the_geom, 10.0); 
    142  
    143 COMMENT ON COLUMN pp_gemeinde.simple_geom     IS 'Vereinfachte Geometrie mit 10 Meter-Genauigkeit. Für Anzeige von Übersichten in kleinen Maßstäben.'; 
    144  
     142-- Geometrie vereinfachen (Wirkung siehe pp_gemeinde_analyse) 
     143UPDATE pp_gemeinde SET simple_geom = simplify(the_geom, 20.0); 
    145144 
    146145 
Note: See TracChangeset for help on using the changeset viewer.