Teilweiser Import vom Shape-Dateien

Probleme, Fragen die mit der Installation und Anwendung der PostGIS-Erweiterung zu tun haben.
Pegasus0211
Benutzer
Beiträge: 53
Registriert: Di 5. Sep 2006, 13:21
Wohnort: Scheeßel

Teilweiser Import vom Shape-Dateien

Beitrag von Pegasus0211 » Di 24. Okt 2006, 09:21

Guten Morgen,

habe mal wieder ein Problem:

Mit dem Tool shp2pgsql importierten wir eine ESRI-Shapedate in eine Postgis-Tabelle.

Bei Darstellung dieser Tabelle mit QGIS stellten wir fest, dass in dieser keinerlei Beschriftung der Fundstellen enthalten war.

In der Shapedatei ist die Beschriftung ok; Beschriftung und Grafiken der Fundstellen befinden sich auf einem Layer.

Wo könnte der Fehler liegen? Danke für Eure Ideen :)

LG Bernd

fristo
Erfahrener Benutzer
Beiträge: 670
Registriert: Do 8. Dez 2005, 12:30
Wohnort: Raum Frankfurt/Main

Beitrag von fristo » Di 24. Okt 2006, 15:41

Hallo Bernd,

steht in der Spalte "Beschriftung der Fundstellen" der Default-Wert oder ein anderer Wert. Ich hoffe das Du die Spalte mit dem Default-Wert NULL initialisiert hast. Zumindest kann man so feststellen, ob shp2pgsql den Wert auch eingelesen hat.

PS: ich kenne shp2pgsql nicht, ist nur so eine Idee.



mfg

fristo

Pegasus0211
Benutzer
Beiträge: 53
Registriert: Di 5. Sep 2006, 13:21
Wohnort: Scheeßel

Beitrag von Pegasus0211 » Mi 25. Okt 2006, 07:54

Guten Morgen, fristo,

die von Dir genannte Spalte ist initialisiert; sie hat aber momentan auch nichts mit der Beschriftung zu tun.

Wir mussten etwas inprovisieren:

Die Fundstellen wurden in Coreldraw erfasst (=gezeichnet) und auch dort eindeutig mit Ziffern beschriftet.

Als das fertig war, haben wir die Schriften in Kurven umgewandelt und das Ganze als DXF-File (Autocad) exportiert. Aus diesem File haben wir dann per Delphi die Splines herausgefiltert.

Danach haben wir mit dem Tool "dfx2shp" das DXF-File in einen ESRI-Shape konvertiert.

Wenn ich mir das Shapefile ansehe, ist dort die Beschriftung rund um die Fundstellen ordnungsgemäß vorhanden.
Nach dem Import mit shp2pgsql sind leider die Zahlen verschwunden, d.h. sie werden mit dem Tool QGIS beim Auslesen der Postgis-Tabelle nicht dargestellt; außerdem dauert das Lesen der ca. 1,5 Millionen Datensätze ca. 2,5 - 3 Stunden.


Gruß Bernd ;)

Maik
Benutzer
Beiträge: 74
Registriert: Do 20. Jul 2006, 09:09

Beitrag von Maik » Mi 25. Okt 2006, 09:38

Nur nochmal zum Verständnis:
Die Schriften sind als Geometrie abgespeichert? Oder habe ich das falsch Verstanden?

Sie werden in QGIS nicht angezeigt. Sind die Daten in der PostGIS-Tabelle? Oder fehlen die Daten dort auch?

Pegasus0211
Benutzer
Beiträge: 53
Registriert: Di 5. Sep 2006, 13:21
Wohnort: Scheeßel

Beitrag von Pegasus0211 » Mi 25. Okt 2006, 09:58

Hallo Maik,

das hast Du richtig verstanden; die Schriften wurden schon in Corel in Kurven umgewandelt; sie sind im Shapefile noch vorhanden, aber leider in der Postgis-Datenbank nach dem Import nicht mehr.

Das heißt, ich gehe davon aus, dass sie nicht vorhanden sind, da QGIS sie nicht darstellt.

Gruß Bernd

Maik
Benutzer
Beiträge: 74
Registriert: Do 20. Jul 2006, 09:09

Beitrag von Maik » Mi 25. Okt 2006, 11:56

Hallo Pegasus.

Das solltest du vielleicht als erstes mal überprüfen. Ich hatte nämlich schonmal ein folgende Fälle.

1. Die Daten wurden erst garnicht importiert.
2. Die Daten wurden importiert, waren aber beschädigt.

Gibt es in dem Shapefile nur eine Spalte des Types Geometry oder mehrere?

Maik

fristo
Erfahrener Benutzer
Beiträge: 670
Registriert: Do 8. Dez 2005, 12:30
Wohnort: Raum Frankfurt/Main

Beitrag von fristo » Mi 25. Okt 2006, 12:46

Hallo Bernd,

ich habe zwar den Spaltennamen genannt, mir ging es aber darum ob die Daten überhaupt importiert wurden. Das kann man doch ganz einfach mit PgAdmin überprüfen!


Pegasus0211 hat geschrieben:außerdem dauert das Lesen der ca. 1,5 Millionen Datensätze ca. 2,5 - 3 Stunden

Ich kann mir nicht vorstellen, dass das an PostgreSQL liegt. Um eine Zeit für das Lesen der Daten von PostgreSQL zu erhalten solltest Du auf dem Server mit PgAdmin ein SELECT * auf die Tabelle ausführen (vorher aber die Option LIMIT ändern). Unten rechts steht eine Zeit, die PgAdmin zum Lesen braucht. Die restliche Zeit wird dann an anderer Stelle verbraucht. Ist Dein SELECT komplexer, solltest Du ihn mal mit EXPLAIN untersuchen.


mfg

fristo

Maik
Benutzer
Beiträge: 74
Registriert: Do 20. Jul 2006, 09:09

Beitrag von Maik » Mi 25. Okt 2006, 13:38

Vielleicht hilft ja ein VACUUM ANALYZE.

Edit: Also für das Leseproblem.

Pegasus0211
Benutzer
Beiträge: 53
Registriert: Di 5. Sep 2006, 13:21
Wohnort: Scheeßel

Beitrag von Pegasus0211 » Mi 25. Okt 2006, 22:25

fristo hat geschrieben:Ich kann mir nicht vorstellen, dass das an PostgreSQL liegt. Um eine Zeit für das Lesen der Daten von PostgreSQL zu erhalten solltest Du auf dem Server mit PgAdmin ein SELECT * auf die Tabelle ausführen (vorher aber die Option LIMIT ändern). Unten rechts steht eine Zeit, die PgAdmin zum Lesen braucht.


Hallo fristo,

100 Datensätze werden in 172869 ms gelesen...mein System ist noch viel langsamer geworden.

Ursache Virenscanner, Firewall oder Windoof XP....ich glaub, ich steige komplett auf Linux um :(

Gruß Bernd

fristo
Erfahrener Benutzer
Beiträge: 670
Registriert: Do 8. Dez 2005, 12:30
Wohnort: Raum Frankfurt/Main

Beitrag von fristo » Do 26. Okt 2006, 00:16

Hallo Bernd,

Pegasus0211 hat geschrieben:100 Datensätze werden in 172869 ms gelesen...mein System ist noch viel langsamer geworden.

Der Wert ist wirklich einsame Spitze!


Pegasus0211 hat geschrieben:Ursache Virenscanner, Firewall oder Windoof XP....ich glaub, ich steige komplett auf Linux um :(

Ich behaupte mal Windoof! Ist ein bekannte Tatsache. Auch eigene Erfahrung. Suche mal im Internet nach "Windows langsam" (ohne "-Zeichen).

Platte voll? Defragmentierung! Dienste abschalten! Vor allem der Index-Dienst ist ein großer Zeitfresser! Virenscanner sind Zeitfresser. Firewall ja, wenn Du nicht lokal arbeitest. Temp- + Internet-Temp-Verzeichnisse leeren. Im Taskmanager mal die Prozesse beobachten! Kann aber auch ein RAM-Problem sein, so das immer viel in die Auslagerungsdatei geschrieben wird.

Aber auch UNIX-Profis wissen warum sie nur eine Datenbank auf einem Server laufen lassen und alle nicht notwendigen Prozesse abschalten (Dies ist keine Werbung für Windoof)!



mfg

fristo

Antworten