Ich habe ein Problem beim Laden einiger Ordnance Survey-Rasterdaten in PostGIS. Ich habe den folgenden Befehl raster2pgsql verwendet, um ein TIF, das ich in meinem Ordner C: \ Programme \ PostgreSQL \ 9.1 \ bin abgelegt habe, in PostGIS zu laden:
raster2pgsql -s 27700 -t 5000x5000 -I -C -M *.tif > os_strview.sql
Ich führe dann den folgenden psql-Befehl aus:
psql -h localhost -U postgres -d raster_test -f os_strview.sql
Dies funktioniert einwandfrei, aber als ich versuchte, die Daten in QGIS anzuzeigen, konnte ich die Tabelle raster_columns im Auswahlfeld nur sehen, wenn ich versuchte, eine PostGIS-Ebene hinzuzufügen.
Ich habe stattdessen versucht, das Plugin Load Raster to PostGIS zu verwenden. Dies funktioniert, aber mein Rasterbild hatte keine Farbe. Ich habe dann diesen Beitrag gesehen . Ich habe die Technik Raster> Konvertieren> PCT in RGB verwendet, um ein einzelnes TIF in ein Geotif zu konvertieren.
Leider erhalte ich beim Ausführen des obigen Befehls psql die folgende Fehlermeldung:
C: \ Programme \ PostgreSQL \ 9.1 \ bin> psql -h localhost -U postgres -d raster_test -f os_strview.sql BEGIN psql: os_strview.sql: 2: HINWEIS: CREATE TABLE erstellt die implizite Sequenz "sx03 nw-geo_rid_seq" für die serielle Spalte "sx03nw-geo.rid" psql: os_strview.sql: 2: HINWEIS: CREATE TABLE / PRIMARY KEY erstellt den impliziten Index "sx03nw-geo_pkey" für die Tabelle "sx03nw-geo" CREATE TABLE psql: os_strview.sl : FEHLER: Bibliothek "C: / Programme / PostgreS QL / 9.1 / lib / rtpostgis-2.0.dll" konnte nicht geladen werden: Ungültiger Zugriff auf Speicherort.
Zeile 1: INSERT IN "sx03nw-geo" ("rast") VALUES ('01000003000000000 ... ^ ROLLBACK
Ich nehme an, das hat etwas mit der Größe des Geotiffs zu tun, das ich in PostGIS laden möchte - das sind 71 MB!
Gibt es eine andere Methode, die ich ausprobieren sollte? Was ist die Grenze für die Größe eines einzelnen Bildes, das Sie in PostGIS laden können?
quelle
Antworten:
Die Größe eines einzelnen Bildes im PostGIS-Raster ist unbegrenzt. Sie werden jedoch durch andere Faktoren eingeschränkt, z. B. über den Arbeitsspeicher Ihres Computers. PostgreSQL legt für ein Feld ein PostgreSQL-Limit von 1 GB fest .
Wenn Sie das GDAL-Dienstprogramm gdalinfo haben, können Sie gdalinfo für eine Ihrer gtiff-Dateien ausführen und die Ausgabe hier veröffentlichen? Oder können Sie, wenn die Daten öffentlich verfügbar sind (ich gehe davon aus, dass es sich um Verordnungsumfragedaten handelt), einen Zeiger darauf geben, welche TIFs Sie laden möchten, damit ich sie testen kann?
Die Dateigröße 71 MB ist winzig und sollte kein Problem sein. Derzeit lade ich 10-m-Höhendatensätze (jeweils ~ 500 MB und 10812 x 10812) und 1-m-Luftbilder (jeweils ~ 170 MB und 5820 x 7575) ohne Probleme.
quelle
Ich hatte auch ähnliche Probleme beim Importieren von Daten über Geotiff. Mein Vorschlag an Sie ist, die Datei in die Erdas Imagine-Datei zu übersetzen, und sie sollte funktionieren. (Erstellen Sie das Importskript neu und führen Sie es wie zuvor aus.)
quelle
1) Wie in den häufig gestellten Fragen zu PostGIS Raster angegeben , wird
raster2pgsql
"rtpostgis.so/dll in Abhängigkeit von libgdal.dll / so erstellt. Stellen Sie für Windows sicher, dass sich libgdal-1.dll im bin-Ordner Ihrer PostgreSQL-Installation befindet. Für Linux libgdal muss sich in Ihrem Pfad oder Bin-Ordner befinden " .2) Auf der anderen Seite, in einem Bug-Ticket , das sich auf denselben Fehler bezieht, heißt es: "Alles
raster2psql
nutzt die Funktionen, die inrt_api
bereitgestellt werden, wo alle Funktionen im Speicher arbeiten. Dieser Loader ist abhängig von dem auf einem verfügbaren Speicher Maschine".Das bedeutet, dass die Verwendung eines anderen Computers beim Betrieb mit großen Rastern in der Datenbank mit raster2pgsql das Problem lösen könnte. Oder versuchen Sie, kleinere Raster zu verwenden.
In meinem Fall ist ein 35-MB-Raster auf einem Laptop mit 4 GB RAM und 32-Bit-Betriebssystem fehlgeschlagen. Der Wechsel zu einem 16-GB-RAM-Computer mit einem 64-Bit-Betriebssystem war in Ordnung.
quelle