Mehrere Grundausstattungen mit doppelten Punktnummern

Aus kvwmap
Wechseln zu: Navigation, Suche

--Pkorduan 14:33, 12. Aug 2011 (CEST)

Wenn mehrere Grundausstattungen, z.B. von verschiedenen Landkreisen zusammen in eine ALK-Datenbank gelesen werden sollen, kann es vorkommen, dass in den beiden EDBS-Dateien Punkte doppelt vorkommen. Das führt zu Fehlern beim Einlesen mit dem EDBS2WKT-Konverter. Der, bzw. das ALK-Datenbankmodell prüft ob Punkte doppelt vorkommen. Wenn der Fall eintritt wird der Vorgang abgebrochen und man bekommt auch die anderen Daten nicht in die ALK-Datenbank.

Das Problem betrifft sowohl Randpunkte als auch trigonometrische Punkte, welche in den beiden ALK-DB gespeichert sind. Diese Punkte (Folien 50 - 59) landen beim Einlesen in der Tabelle 'alknpunkt', da sie auch im BZSN vorkommen. Tatsächlich ist diese Tabelle (Spalten: objnr,nbz,pat,pnr) aber nicht unbedingt brauchbar. Die Darstellung von Punkten der Punktarten 0 bis 4 erfolgt i.d.R. über die Tabellen 'fp_punkte' und 'fp_punkte2', da hier alle Punktattribute vorhanden sind. Für den Fall, dass zwei neue Grundausstattungen benutzt werden und man bei der Einrichtung der Bezieher auf die Folie 50 - 59 verzichtet, erspart man sich dieses Problem. (von Andreas Wirsing)

Um das Problem zu lösen gibt es 3 Möglichkeiten.

  1. Man könnte sich hinsetzen und alle doppelt vorkommenden in der einen oder anderen Daten raus löschen.
  2. Man kann den Haken in dem EDBS2WKT-Konverter 'mehrfache Punktnummern zulassen' setzen.
  3. Man kann in der Datenbank in der Tabelle alknpunkt den Index ixPUONA löschen, siehe Abbildung.

ixPUONA

Auf diese Möglichkeiten brachte mich Holger Riedel auf Nachfrage in der EBBS2WKT-users liste.

Später, wenn alles eingelesen ist, kann man die Tabelle nach doppelten Einträgen durchsuchen und jeweils die doppelten rauslöschen. Danach kann man den Index wieder anlegen mit nachfolgendem Befehl:

CREATE UNIQUE INDEX "ixPUONA" ON alknpunkt USING btree (nbz, pat, pnr, objnr);

Hier noch ein kurzer Testbericht von Andreas Wirsing:

  • nach Löschen des Index 'ixPUONA' (alknpunkt) konnte eine fremde ALK-Grundausstattung in eine bestehende DB eingelesen werden
  • zwei Festpunktdateien können einfach zusammnenkopiert und dann z.B. mit sort -u die doppelten Zeilen (Punkte) entfernt werden (funkt. nicht 100%ig, wenn die Randpunkte nicht absolut gleich sind z.B. infolge unterschiedlicher Attribute - ZST usw.) das Einlesen erfolgt einfach per SQL-Script, wie hier beschrieben.
  • mit dem Einlesen einer weiteren ALB-Grundausstattung und der eigenen bzw. fremden Fortführungen gab es keine Schwierigkeiten