Mehrere Grundausstattungen mit doppelten Punktnummern: Unterschied zwischen den Versionen
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
+ | --[[Benutzer:Pkorduan|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. | 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. | Um das Problem zu lösen gibt es 3 Möglichkeiten. | ||
Zeile 7: | Zeile 11: | ||
[[Bild:ixPUONA.PNG|ixPUONA]] | [[Bild:ixPUONA.PNG|ixPUONA]] | ||
− | Auf diese Möglichkeiten brachte mich Holger | + | Auf diese Möglichkeiten brachte mich Holger Riedel auf [http://sourceforge.net/mailarchive/message.php?msg_id=27920728 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 |
Aktuelle Version vom 12. August 2011, 13:33 Uhr
--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.
- Man könnte sich hinsetzen und alle doppelt vorkommenden in der einen oder anderen Daten raus löschen.
- Man kann den Haken in dem EDBS2WKT-Konverter 'mehrfache Punktnummern zulassen' setzen.
- Man kann in der Datenbank in der Tabelle alknpunkt den Index ixPUONA löschen, siehe Abbildung.
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