wiki:SchrittfuerSchritt
Last modified 2 weeks ago Last modified on 11/10/17 14:39:45

Installation PostNAS unter Linux

Dies beschreibt ausführlich die einzelnen Importschritte unter Linux.

Hinweis: Alternativ kann man auch ALKIS-Import verwenden, das diese Schritte automatisch ausführt (Es steht auch über OSGeo4W für Windows inkl. passendem GDAL zur Verfügung: Paket alkis-import für das klassisches Modell und Paket alkis-import-dev für das vollständige Modell)

Systemvoraussetzungen

  • PostgreSQL 8.x mit PostGIS-Erweiterung (in gängigen Linux-Distributionen verfügbar)
  • C/C++-Compiler, make etc. (unter Debian/Ubuntu im Metapaket build-essential enthalten)
  • SVN-Client, um den aktuellen GDAL-Code zu beziehen (Debian: Paket subversion)
  • Bibliotheken Xerces (obligatorisch), PROJ.4 und GEOS samt Headerdateien (unter Debian alternativ: apt-get build-dep gdal aufrufen, um alle Abhängigkeiten des gdal in Debian zu installieren)

GDAL/OGR bauen und installieren

Code beziehen (mit normalen Benutzerrechten):

Import nach PostgreSQL/PostGIS

Datenbank vorbereiten

Bei Verwendung des vollständigen ALKIS-Schemas

  • Erzeugen einer leeren Datenbank:

    CREATE DATABASE alkis;
  • Erzeugen der PostGIS Erweiterung in der Datenbank:
    CREATE EXTENSION postgis;

Aufbau der ALKIS Tabellenstruktur

Im SVN-Repository von PostNAS ist die Datei alkis_PostNAS_schema.sql zu finden mit der PostNAS-Tabellenstruktur aufgebaut werden kann (bitte an datenbank_anlegen.sh orientieren).

Nach dem Herunterladen wird das Schema wie folgt in die neue Datenbank geladen:

# Koordinatensystem fuer Geometriefelder:
psql -U postgres -v alkis_epsg=25832 -d postnas_test -f alkis_PostNAS_schema.sql

Es müssen weitere SQLs geladen werden (Referenztabellen, Zusatztabellen; ebenfalls siehe datenbank_anlegen.sh)

Bei Verwendung des vollständigen Schemas

  • Ausführen der SQL-Dateien:
    • Schema (statt 25832 ggf. 25833 verwenden): psql -v alkis_epsg=25832 -v alkis_schema=public -f alkis-schema.sql datenbank
    • Fortführungstrigger: psql -v alkis_schema=public -f alkis-trigger.sql datenbank
  • Download der GFS-Datei

Erstimport von NAS-Daten

Wir befinden uns im Verzeichnis mit dem Datensatz Bestandsdatenauszug-Mustermonzel-06.05.2010.xml. Die Verbindungsparameter müssen ggf. an die jeweilige Umgebung angepasst werden. Je nach PostgreSQL-Konfiguration ist evtl. noch der Parameter password anzugegeben

/opt/gdal-trunk/bin/ogr2ogr -f "PostgreSQL" -skipfailures -append \ 
   PG:"dbname=postnas_test user=postgres host=localhost" \ 
   -a_srs EPSG:25832  Bestandsdatenauszug-Mustermonzel-06.05.2010.xml \ 
   2>> postnas_err.log

Hinweis: Für andere Datensenken als PostgreSQL kann sinnvoll sein, ogr2ogr zusätzlich den Parameter -lco LAUNDER=YES zu übergeben, um beim Anlegen des Datenbankschemas die üblichen Schreibweisen von Objektnamen zu erzwingen. Geomedia bspw. kann nicht auf Oracle-Spatial-Layer zugreifen, wenn Spaltennamen nicht konsequent groß geschrieben sind.

Bei Verwendung des vollständigen ALKIS-Schemas

Die Verwendung des vollständigen ALKIS-Schemas benötigt mind. GDAL 2.3 (derzeit trunk). Es muß die GFS-Datei angegeben werden:

/opt/gdal-trunk/bin/ogr2ogr -f "PostgreSQL" -skipfailures -append \ 
   -oo NAS_GFS_TEMPLATE=/pfad/zur/alkis-schema.gfs \
   PG:"dbname=postnas_test user=postgres host=localhost" \ 
   -a_srs EPSG:25832  Bestandsdatenauszug-Mustermonzel-06.05.2010.xml \ 
   2>> postnas_err.log

Hinweis: ab GDAL 2.3 kann auch die Option -oo NAS_NO_RELATION_LAYER=YES angegeben werden. Damit erhält man über die Option -progress eine Fortschrittsanzeige, muß jedoch auf die Tabelle alkis_beziehungen verzichten. Da die inzwischen Beziehungen auch in den eigentlich Tabellen enthalten sind (z.B. ax_flurstueck.istgebucht), wird alkis_beziehungen allerdings auch eigentlich nicht mehr benötigt.

Import von Fortführungsdatensätzen

Info

/opt/gdal-trunk/bin/ogrinfo xxx.xml Delete

Laden der Lösch- und Replacedatensätze

/opt/gdal-trunk/bin/ogr2ogr -f "PostgreSQL" -skipfailures -append -update\ 
   PG:"dbname=postnas_test user=postgres host=localhost" \ 
   -a_srs EPSG:25832  xxx.xml \ 
   2>> postnas_err.log

Löschen der Einträge der Tabelle delete

TRUNCATE "delete";

Import nach ORACLE

 export alkis_epsg=25832
 sqlplus demo/demo@demo @alkis_PostNAS_ORACLE_schema.sql $alkis_epsg
 sqlplus demo/demo@demo @alkis_PostNAS_ORACLE_keytables.sql

 -- nutzungsart_definition / nutzungsart_metadaten
 sqlplus demo/demo@demo @nutzungsart_definition_ORACLE.sql
 sqlplus demo/demo@demo @nutzungsart_metadaten_ORACLE.sql

 -- sichten laden
 sqlplus demo/demo@demo @sichten_ORACLE.sql

  export NLS_LANG=GERMAN_GERMANY.UTF8
  ogr2ogr -append -f OCI "OCI:demo/demo@demo" -lco DIM=2 -lco LAUNDER=YES -lco SRID=25832 NAS.xml 2>error_demo.log
  
  sqlplus demo/demo@demo @nutzungsart_laden_ORACLE.sql
  

Dienst mit UMN MapServer

Nachdem die Daten erfolgreich in die Datenbank geladen wurden, kann leicht eine OGC Web Map Service (WMS) mit MapServer aufgebaut werden.

Hierzu liegen Vorlagen im svn vor, die lediglich angepasst werden müssen.

Die Dateien aus dem Verzeichnis umn auf den Rechner herunterladen: http://trac.wheregroup.com/PostNAS/browser/trunk/umn/

  1. Datei alkis05_muster.map umbenennen und den Inhalt wie folgt anpassen:
  1. Parameter EXTENT (Umgebungsrechteck) an das Projekt anpassen:
     EXTENT 349000 5529000 356000 5533000
    
  1. Parameter ONLINERESOURCE anpassen:
     ONLINERESOURCE
    
  1. Gegebenenfalls den EPSG-Code ändern:
    "init=epsg:25832"
    
  1. Alle EPSG-Codes angeben, die unterstützt werden sollen:
    WMS_SRS "epsg:31467 epsg:4326 epsg:25832"
    
  1. Parameter CONNECTION an die jeweilige Umgebung anpassen:
    	CONNECTION "host=localhost dbname=postnas_test user=postgres"
    
  1. WMS über den getCapabilities-Aufruf im Browser prüfen:
    http://localhost/cgi-bin/mapserv?map=/data/umn/alkis05/alkis05muenster.map&REQUEST=GetCapabilities&SERVICE=WMS&VERSION=1.1.1
    

Wenn eine Beschreibung des WMS als XML geliefert wird, kann der Dienst anschließend in einem WMS Client wie Mapbender, OpenLayers oder QGIS geladen werden.

Infoausgabe

Im svn-Repository liegen Skripte vor die zu den einzelnen Flurstücken Grundbuch-, Eigentümer, Gebäudeinformationen ausgeben. Diese Skripte können so abgelegt werden, dass sie über die Infoabfrage des WMS aufgerufen werden können.

Die Skripte gehören in das Verzeichnisses /info im Apache Document-ROOT Verzeichnis

http://trac.wheregroup.com/PostNAS/browser/trunk/info

In der Datei alkis_conf.php müssen die Verbindungsparameter für den Zugriff auf die Datenbank angepasst werden.