das vollständige PostNAS-Datenmodell: Unterschied zwischen den Versionen

Aus kvwmap
Wechseln zu: Navigation, Suche
Zeile 1: Zeile 1:
  
 +
Das von kvwmap verwendete PostNAS-Datenmodell wurde mit dem Tool [https://github.com/pkorduan/xmi2db xmi2db] auf Basis des [http://gdi-service.de/xmi2db/xmis/2016-04-01_ImplModell_AAA-xmi12-uml14.xmi AAA-Implementierungsmodells] erzeugt und bildet das ALKIS-Datenmodell vollständig ab. Das Datenbankschema heißt "alkis" und wird bei Aktivierung des Plugins ALKIS durch Ausführung von Migrationsdateien bei der Aktualisierung der Datenbank automatisch angelegt.
 +
Bei dieser DB-Aktualiserung werden neben dem Basisschema außerdem weitere Tabellen, Sichten und Indizes angelegt, die von kvwmap benötigt werden.
  
== Erstellung eines PostNAS-Schemas ==
 
 
Das in dieser Anleitung verwendete PostNAS-Basisschema wurde mit dem Tool [https://github.com/pkorduan/xmi2db xmi2db] auf Basis des [http://gdi-service.de/xmi2db/xmis/2016-04-01_ImplModell_AAA-xmi12-uml14.xmi AAA-Implementierungsmodells] erzeugt. Bei Bedarf kann mit xmi2db auch selbst ein Schema erzeugt und verwendet werden.
 
Für die Verwendung mit kvwmap muss das Schema "alkis" heißen.
 
 
* Das Datenbankschema wird erstellt, indem die nachfolgenden SQL-Dateien ausgeführt werden. Diese sind in der nachstehenden Reihenfolge auszuführen.
 
 
:*[http://www.kvwmap.de/alkis/complete/1_complete_alkis_schema.sql 1_complete_alkis_schema.sql]     das mit xmi2db erstellte Basisschema - Stand: 02.02.2017
 
 
:*[http://www.kvwmap.de/alkis/complete/2_alkis_indizes.sql 2_alkis_indizes.sql]     Indizes für die performante Abfrage der Daten - Stand: 22.03.2017
 
 
:*[http://www.kvwmap.de/alkis/complete/3_alkis-functions.sql 3_alkis-functions.sql]     Funktionen - Stand: 23.01.2017
 
 
:*[http://www.kvwmap.de/alkis/complete/4_weitere_keytables.sql 4_weitere_keytables.sql]     weitere Schlüsseltabellen - Stand: 23.01.2017
 
 
:*[http://www.kvwmap.de/alkis/complete/5_weitere_tables.sql 5_weitere_tables.sql]     weitere Tabellen - Stand: 23.01.2017
 
 
:*[http://www.kvwmap.de/alkis/complete/6_pp_definition.sql 6_pp_definition.sql]     Postprocessing-Tabellen - Stand: 23.01.2017
 
 
:*[http://www.kvwmap.de/alkis/complete/7_nutzungsart_definition.sql 7_nutzungsart_definition.sql]     Postprocessing-Tabellen für die Nutzungen - Stand: 02.10.2015
 
 
:*[http://www.kvwmap.de/alkis/complete/8_sichten.sql 8_sichten.sql]     Sichten (werden nur für die [[Gruppen_und_Themen_für_ALKIS|Layerdefinitionen]] benötigt)  - Stand: 03.04.2017
 
  
 
== Einspielen der NAS-Daten ==
 
== Einspielen der NAS-Daten ==
  
=== Umbenennungsskript ===
 
  
Damit die NAS-Daten mit OGR korrekt in das vollständige PostNAS-Schema eingelesen werden können, müssen vorher bestimmte Attribute in den NAS-Dateien umbenannt werden. Diese Umbenennung erfolgt mit dem Ruby-Skript [https://raw.githubusercontent.com/pkorduan/xmi2db/master/converter/rename_nas.rb rename_nas.rb] aus dem xmi2db-Projekt. Welche Attribute wie umbenannt werden sollen, wird durch eine Umbenennungsliste definiert. Die zum aktuellen Schema passende Umbennungsliste befindet sich in conf/samples/umbenenn_conf.json. Damit das Umbenennungsskript diese Liste verwenden kann, muss sie einfach einen Ordner höher in conf/ abgelegt werden.
 
 
=== GFS-Template ===
 
 
Damit OGR die Daten aus den NAS-Dateien mit dem korrekten Datentyp in die Datenbank einliest, wird eine gfs-Datei verwendet, die das komplette ALKIS-Schema abbildet. Diese gfs-Datei wurde auch mit xmi2db auf Basis des AAA-Implementierungsmodells erzeugt.
 
  
 
:[http://www.kvwmap.de/alkis/complete/alkis_template.gfs alkis_template.gfs]     GFS-Template - Stand: 02.02.2017
 
:[http://www.kvwmap.de/alkis/complete/alkis_template.gfs alkis_template.gfs]     GFS-Template - Stand: 02.02.2017
Zeile 49: Zeile 23:
 
*Danach wird die umbenannte NAS-Datei wieder gelöscht.
 
*Danach wird die umbenannte NAS-Datei wieder gelöscht.
  
=== Postprocessing ===
 
 
Nach dem Einlesen der Daten müssen die folgenden beiden Postprocessing-Skripte ausgeführt werden:
 
 
:*[http://www.kvwmap.de/alkis/complete/pp_laden.sql pp_laden.sql]     Postprocessing - Stand: 26.01.2017
 
:*[http://www.kvwmap.de/alkis/complete/nutzungsart_laden.sql nutzungsart_laden.sql]     Postprocessing Nutzungen - Stand: 23.01.2017
 
 
 
== Prüfung von NAS-Dateien auf Validität mit xmllint ==
 
Vor dem Einlesen der Daten ist eine Prüfung der NAS-Dateien mit '''xmllint''' auf Validität gegen das Schema NAS 6.0.1 der ADV zu empfehlen.<br>
 
Beispiel:
 
 
xmllint --nowarning --noout --schema pfad_zum_schema/NAS_6.0.1/schema/NAS-Operationen.xsd pfad_zu_nas/beispiel.xml
 
 
Das Tool '''xmllint''' wird über das Paket libxml2-utils unter linux zur Verfügung gestellt. Es ist eine aktuelle Version ab 2.9 erforderlich.<br>
 
Das Ergebnis der Prüfung wird mit "validates" oder eine detailierte Fehlermeldung und "fails to validate" ausgegeben.<br>
 
Das notwendige Schema kann auf den Seiten der ADV als ZIP heruntergeladen und dann lokal entpackt installiert werden.<br>
 
Link zum Schema: [http://www.adv-online.de/icc/extdeu/med/704/70425220-0746-2210-3ca0-c0608a438ad1,11111111-1111-1111-1111-111111111111 NAS 6.0.1]
 
 
Wichtig: Es sollten nur valide Daten eingespielt werden!
 
  
  
== Zugriff mit kvwmap ==
 
  
=== Layerdefinitionen ===
 
  
[[Gruppen_und_Themen_für_ALKIS|Hier findet man die Gruppen und Themen für ALKIS]]
 
  
 
== Mapdatei ==
 
== Mapdatei ==

Version vom 30. August 2017, 09:48 Uhr

Das von kvwmap verwendete PostNAS-Datenmodell wurde mit dem Tool xmi2db auf Basis des AAA-Implementierungsmodells erzeugt und bildet das ALKIS-Datenmodell vollständig ab. Das Datenbankschema heißt "alkis" und wird bei Aktivierung des Plugins ALKIS durch Ausführung von Migrationsdateien bei der Aktualisierung der Datenbank automatisch angelegt. Bei dieser DB-Aktualiserung werden neben dem Basisschema außerdem weitere Tabellen, Sichten und Indizes angelegt, die von kvwmap benötigt werden.


Einspielen der NAS-Daten

alkis_template.gfs     GFS-Template - Stand: 02.02.2017

Wenn diese GFS-Datei nicht verwendet wird, ermittelt OGR den Datentyp automatisch an Hand der NAS-Daten. Dabei kann es vorkommen, dass z.B. führende Nullen abgeschnitten werden o.ä.

Einleseskript

Hat man das Umbenennungsskript, die Umbenennungsliste und das GFS-Template auf seinem Server abgelegt, kann der Einlesevorgang beginnen. Folgendes einfaches Einleseskript kann dafür verwendet werden.

import_nas.sh     Einleseskript - Stand: 02.02.2017
  • Das Einleseskript durchläuft alle NAS-Dateien im angegebenen Ordner und benennt sie mit Hilfe des Umbenennungsskripts um. Die umbenannte Version der NAS-Datei wird als ..._renamed.xml neben der originalen NAS-Datei abgelegt.
  • Dann wird eine Kopie des GFS-Templates dort abgelegt. Sie heißt genauso, wie die umbenannte NAS-Datei (..._renamed.gfs).
  • Anschliessend wird ogr2ogr aufgerufen, um die umbenannte NAS-Datei einzulesen.
  • Danach wird die umbenannte NAS-Datei wieder gelöscht.




Mapdatei

Testdaten

Zum Testen eigenen sich NAS-Daten aus der DHK, die aus einem NBA-Verfahren stammen. Wer noch keine eigenen NBA-Daten hat, kann zunächst mit Testdaten arbeiten. Erfolgreich getestet wurden Daten aus MV vom LAiV und Daten aus Brandenburg, die auch in EPSG 25833 liegen.

Testdaten:

  • ALKIS®-Beispieldaten Brandenburg: [1]
  • ALKIS®-Beispieldaten Mecklenburg-Vorpommern vom LAiV: [2]
Hier findet man Beispieldaten zum Testen (kostenlos).