Đang tải geotiff vào PostGIS bằng raster2pgsql


8

Tôi gặp vấn đề với việc tải một số dữ liệu raster Khảo sát bản đồ vào PostGIS. Tôi đã sử dụng lệnh raster2pgsql sau đây để tải một tif mà tôi đã đặt trong thư mục C: \ Program Files \ PostgreQuery \ 9.1 \ bin vào PostGIS:

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

Sau đó tôi thực hiện lệnh pswing follwing:

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

Điều này hoạt động tốt nhưng khi tôi cố gắng xem dữ liệu trong QGIS, tôi chỉ có thể thấy bảng raster_columns trong hộp lựa chọn khi cố gắng thêm một lớp PostGIS.

Tôi đã thử sử dụng plugin Load raster để PostGIS thay thế. Điều này hoạt động nhưng hình ảnh raster của tôi không có màu. Sau đó tôi thấy bài này . Tôi đã sử dụng kỹ thuật Raster> Convert> PCT sang RGB để chuyển đổi một tif đơn thành geotif.

Thật không may, mặc dù khi chạy lệnh psql ở trên, tôi nhận được thông báo lỗi này:

C: \ Chương trình tập tin \ PostgreSQL \ 9.1 \ bin> psql -h localhost -U postgres -d raster_test -f os_strview.sql BEGIN psql: os_strview.sql: 2: THÔNG BÁO: CREATE TABLE sẽ tạo ra chuỗi ẩn "sx03 nw đối với cột nối tiếp "sx03nw-Geo.rid" psql: os_strview.sql: 2: THÔNG BÁO: CREATE TABLE / PRIMARY KEY sẽ tạo chỉ mục ngầm định "sx03nw-Geo_pkey" cho bảng "sx03nw-Geo" CREATE TABLE psql : ERROR: không thể tải thư viện "C: / Tệp chương trình / PostgreS QL / 9.1 / lib / rtpostgis-2.0.dll": Truy cập không hợp lệ vào vị trí bộ nhớ.

LINE 1: XÁC NHẬN VÀO "sx03nw-Geo" ("rast") GIÁ TRỊ ('01000003000000000 ... ^ ROLLBACK

Tôi nghĩ nó có liên quan đến kích thước của trình duyệt địa lý mà tôi đang cố tải vào PostGIS - tức là 71 MB!

Có phương pháp nào khác tôi nên thử không? Giới hạn về kích thước của một hình ảnh duy nhất bạn có thể tải vào PostGIS là gì?


"Có phương pháp nào khác tôi nên thử không" Bạn có quyền truy cập vào FME Desktop không? FME 2013 có một người viết cho PostGIS 2.0 Raster
Mapperz

Không có quyền truy cập. Giới hạn về quỹ nên cố gắng sử dụng nguồn mở. Đã nghe những điều tốt về FME mặc dù vậy có thể đáng để đầu tư.
Matt T

Câu trả lời:


3

Không có giới hạn về kích thước của một hình ảnh trong raster PostGIS nhưng bạn sẽ bị giới hạn bởi các yếu tố khác, chẳng hạn như bạn có bao nhiêu bộ nhớ trong máy tính. PostgreSQL áp đặt giới hạn 1GB cho bất kỳ một giới hạn nào của PostgreSQL .

Nếu bạn có gdalinfo tiện ích GDAL, bạn có thể chạy gdalinfo trên một trong các tệp gtiff của mình và đăng kết quả đầu ra ở đây không? Hoặc nếu dữ liệu có sẵn công khai (tôi giả sử dữ liệu Khảo sát Pháp lệnh là), bạn có thể cung cấp một con trỏ mà bạn đang cố tải để tôi có thể kiểm tra nó không?

gdalinfo MYGEOTIFF.tiff

Kích thước tệp 71MB rất nhỏ và không phải là vấn đề. Tôi hiện đang tải bộ dữ liệu độ cao 10m (~ 500MB và 10812x10812 mỗi bộ) và hình ảnh trên không 1m (~ 170MB và 5820x7575 mỗi bộ) mà không gặp sự cố nào.


Cảm ơn bụi. Tôi đã thử tải geotiff từ máy tính ở nhà của tôi và nó hoạt động tốt. Tôi sẽ phải kiểm tra bộ nhớ tôi có trong công việc. Tôi đã quản lý để tải geotiff bây giờ nhưng có một vấn đề với văn bản bản đồ bây giờ. Nó không rõ ràng như trong origianl tif. Bây giờ tôi có thể chỉ giữ các raster bên ngoài PostGIS.
Matt T

1

Tôi cũng gặp vấn đề tương tự khi nhập dữ liệu qua Geotiff. Gợi ý của tôi cho bạn là, dịch tập tin thành tập tin Erdas Imagine và nó sẽ hoạt động. (tạo lại tập lệnh nhập, chạy nó như bạn đã làm)


Cảm ơn lời khuyên của U2ros. Tuy nhiên, raster tôi tạo ra có màu xám khi được xem trong QGIS.
Matt T

Vâng, với định dạng erdas, bạn có thể (thường) áp dụng bảng màu / độ dốc tùy chỉnh. Trong trường hợp của bạn, tôi nghĩ rằng thang độ xám mặc định đã được chọn.
U2ros

0

1) Như đã nêu trong PostGIS Raster Câu hỏi thường gặp , raster2pgsql "rtpostgis.so/dll được xây dựng với sự phụ thuộc vào libgdal.dll / vì vậy. Hãy chắc chắn rằng Windows bạn có libgdal-1.dll trong thư mục bin của bản cài đặt PostgreQuery của bạn. libgdal phải nằm trong thư mục bin hoặc đường dẫn của bạn " .

2) Mặt khác, trong một vé lỗi liên quan đến cùng một lỗi xuất hiện, họ nói rằng "Mọi thứ raster2psql sử dụng các chức năng đều cung cấp rt_api, trong đó tất cả các chức năng hoạt động trong bộ nhớ. Trình tải này phụ thuộc vào bộ nhớ có sẵn trên một máy móc".

Điều đó có nghĩa là sử dụng một máy khác, khi hoạt động với các raster lớn trong cơ sở dữ liệu với raster2pgsql, có thể giải quyết vấn đề. Hoặc, cố gắng sử dụng các raster nhỏ hơn.

Trong trường hợp của tôi, một raster 35 MB đã thất bại trên máy tính xách tay có RAM 4GB và HĐH 32 bit. Chuyển sang máy RAM 16 GB với hệ điều hành 64 bit đã làm tốt công việc.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.