Memuat geotiff ke dalam PostGIS menggunakan raster2pgsql

8

Saya memiliki masalah dengan memuat beberapa data raster Survei persenjataan ke PostGIS. Saya telah menggunakan perintah raster2pgsql berikut untuk memuat tif yang telah saya tempatkan di folder C: \ Program Files \ PostgreSQL \ 9.1 \ bin ke dalam PostGIS:

raster2pgsql -s 27700 -t 5000x5000 -I -C -M  *.tif  > os_strview.sql

Saya kemudian menjalankan perintah psql follwing:

psql -h localhost -U postgres -d raster_test -f os_strview.sql

Ini berfungsi dengan baik tetapi ketika saya mencoba untuk melihat data di QGIS saya hanya bisa melihat tabel raster_columns dalam kotak pilihan ketika mencoba menambahkan lapisan PostGIS.

Saya mencoba menggunakan plugin Load raster to PostGIS. Ini berfungsi tetapi gambar raster saya tidak memiliki warna. Saya kemudian melihat posting ini . Saya menggunakan teknik Raster> Convert> PCT ke RGB untuk mengubah satu tif menjadi geotif.

Sayangnya saat menjalankan perintah psql di atas saya mendapatkan pesan kesalahan ini:

C: \ Program Files \ PostgreSQL \ 9.1 \ bin> psql -h localhost -U postgres -d raster_test -f os_strview.sql BEGIN psql: os_strview.sql: 2: PEMBERITAHUAN: CREATE TABLE akan membuat urutan implisit "sx03 nw-geo_rid_seq" untuk kolom seri "sx03nw-geo.rid" psql: os_strview.sql: 2: PEMBERITAHUAN: CREATE TABLE / PRIMARY KEY akan membuat indeks implisit "sx03nw-geo_pkey" untuk tabel "sx03nw-geo" CREATE TABLE psql: os_strviewsq : ERROR: tidak dapat memuat pustaka "C: / Program Files / PostgreS QL / 9.1 / lib / rtpostgis-2.0.dll": Akses ke lokasi memori tidak valid.

LINE 1: Masukkan ke dalam "sx03nw-geo" ("rast") VALUES ('01000003000000000 ... ^ ROLLBACK

Saya kira ini ada hubungannya dengan ukuran geotiff yang saya coba muat ke PostGIS - yaitu 71 MB!

Apakah ada metode lain yang harus saya coba? Berapa batas ukuran gambar tunggal yang dapat Anda muat ke PostGIS?

Matt T
sumber
"Apakah ada metode lain yang harus saya coba" Apakah Anda memiliki akses ke Desktop FME? FME 2013 memiliki penulis untuk PostGIS 2.0 Raster
Mapperz
Tidak, tidak memiliki akses. Terbatas pada dana jadi coba gunakan open source. Telah mendengar hal-hal baik tentang FME jadi mungkin bernilai investasi.
Matt T

Jawaban:

3

Tidak ada batasan ukuran gambar tunggal dalam raster PostGIS tetapi Anda akan dibatasi oleh faktor-faktor lain, seperti berapa banyak memori yang Anda miliki di komputer Anda. PostgreSQL tidak memaksakan batas 1GB pada bidang apa pun . Batas PostgreSQL .

Jika Anda memiliki gdalinfo utilitas GDAL, dapatkah Anda menjalankan gdalinfo di salah satu file gtiff Anda dan memposting hasilnya di sini? Atau jika data tersedia untuk umum (saya anggap data Survei Ordonansi), dapatkah Anda memberikan pointer ke mana Anda mencoba memuat agar saya dapat mengujinya?

gdalinfo MYGEOTIFF.tiff

Ukuran file 71MB kecil dan seharusnya tidak menjadi masalah. Saat ini saya memuat dataset ketinggian 10m (masing-masing ~ 500MB dan 10812x10812) dan citra udara 1m (~ masing-masing 170MB dan 5820x7575) tanpa masalah.

dustymugs
sumber
Terima kasih dustymugs. Saya mencoba memuat geotiff dari pc rumah saya dan itu bekerja dengan baik. Saya harus memeriksa memori apa yang saya miliki di tempat kerja. Saya telah berhasil memuat geotiff sekarang tetapi ada masalah dengan teks kartografi sekarang. Tidak sejelas di origianl tif. Saya mungkin tetap mempertahankan raster di luar PostGIS untuk saat ini.
Matt T
1

Saya juga memiliki masalah yang sama ketika mengimpor data melalui Geotiff. Saran saya kepada Anda adalah, terjemahkan file tersebut ke file Erdas Imagine, dan itu akan berfungsi. (buat ulang skrip impor, jalankan seperti yang sudah Anda lakukan)

U2ros
sumber
Terima kasih atas saran U2ros. Namun raster yang saya buat berwarna abu-abu saat dilihat di QGIS.
Matt T
Nah, dengan format erdas Anda dapat (biasanya) menerapkan palet warna kustom / gradien. Dalam kasus Anda grayscale standar dipilih saya pikir.
U2ros
0

1) Seperti yang dinyatakan dalam Pertanyaan yang Sering Diajukan di PostGIS Raster , raster2pgsql "rtpostgis.so/dll dibangun dengan ketergantungan pada libgdal.dll / jadi. Pastikan untuk Windows Anda memiliki libgdal-1.dll di folder tempat Anda menginstal PostgreSQL. Untuk Linux libgdal harus ada di path atau folder bin Anda " .

2) Di sisi lain, dalam tiket bug yang terkait dengan kesalahan yang sama muncul, mereka mengatakan bahwa "Segala sesuatu raster2psql menggunakan fungsi menyediakan rt_api, di mana semua fungsi beroperasi dalam memori. Pemuat ini tergantung pada memori yang tersedia pada satu mesin".

Itu berarti menggunakan mesin lain, ketika beroperasi dengan raster besar dalam database dengan raster2pgsql, bisa menyelesaikan masalah. Atau, coba gunakan raster yang lebih kecil.

Dalam kasus saya, raster 35 MB gagal pada laptop dengan 4GB RAM dan 32 bit OS. Beralih ke mesin RAM 16 GB dengan OS 64 bit berhasil dengan baik.

Sorin Călinică
sumber