Tôi đang cố làm theo các hướng dẫn ở đây để tải raster vào cơ sở dữ liệu PostGIS:
python raster2pgsql.py -s 4269 -I -r *.tif -F myschema.demelevation -o elev.sql
Tôi hiểu rằng tôi thay thế *
bằng đường dẫn đến raster của tôi, nhưng tôi không hiểu phần myschema.demelevation
hay elev.sql
. Tôi có nên có lược đồ riêng cho tệp này không? Và elev.sql
phần này có nghĩa là gì?
Tôi cũng đọc qua trình điều khiển raster PostGIS để thử và hiểu điều này với nhiều ví dụ hơn. Tương tự, họ đề nghị tải rasterkatrina
python raster2pgsql.py -r /path/to/katrina.tif -t katrina -l 1 -k 64x64 -o katrina.sql -s 4326 -I -M
Sử dụng thiết lập hiện tại của tôi, tôi đã thử tải katrina
raster vào:
python2.6 ~/src/postgis-2.0.0SVN/raster/scripts/python/raster2pgsql.py -r ~/tmp/katrina.tif -t katrina -l 1 -k 64x64 -o katrina.sql -s 4326 -I -M
Tuy nhiên, tôi đã nhận được các lỗi sau:
Traceback (most recent call last):
File "/home/src/postgis-2.0.0SVN/raster/scripts/python/raster2pgsql.py", line 34, in <module>
from osgeo import gdal
File "/home/lib/python2.6/GDAL-1.8.1-py2.6-linux-i686.egg/osgeo/__init__.py", line 21, in <module>
_gdal = swig_import_helper()
File "/home/lib/python2.6/GDAL-1.8.1-py2.6-linux-i686.egg/osgeo/__init__.py", line 17, in swig_import_helper
_mod = imp.load_module('_gdal', fp, pathname, description)
ImportError: /home/lib/python2.6/GDAL-1.8.1-py2.6-linux-i686.egg/osgeo/_gdal.so: undefined symbol: GDALSetRasterUnitType
Tôi không hiểu đầy đủ những lỗi này; Khi tôi biên dịch gdal
tôi có nên chỉ định một đối số cho GDALSetRasterUnitType
?
Tổng quát hơn, tôi gặp khó khăn trong việc hiểu tại sao tôi không chỉ định cơ sở dữ liệu mà tôi đang cố tải dữ liệu này vào.
Sau khi làm theo lời khuyên của MerseViking, tôi chạy:
python /usr/lib/postgresql/8.4/bin/raster2pgsql.py -r /home/celenius/Downloads/katrina.tif -t katrina -l 1 -k 64x64 -o katrina.sql -s 4326 -I -M
trả về đầu ra sau:
------------------------------------------------------------
Summary of GDAL to PostGIS Raster processing:
------------------------------------------------------------
Number of processed raster files: 1 (/home/celenius/Downloads/katrina.tif)
List of generated tables (number of tiles):
1 katrina (256)
Rồi tôi chạy:
psql -d test -f katrina.sql - U postgres -W
Trả về như sau:
addrastercolumn
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
public.katrina.rast srid:4326 pixel_types:{8BUI,8BUI,8BUI} out_db:false regular_blocking:true nodata_values:NULL scale_x:'0.029325513196481' scale_y:'-0.029325513196481' blocksize_x:'64' blocksize_y:'64' extent:POLYGON((-100.014662756598 9.98533724340176,-100.014662756598 40.0146627565982,-69.9853372434018 40.0146627565982,-69.9853372434018 9.98533724340176,-100.014662756598 9.98533724340176))
(1 row)
(END)
Thông báo này và một con trỏ nhấp nháy xuất hiện trên màn hình. Tôi giả sử rằng nó đang tải vào cơ sở dữ liệu, nhưng tôi không chắc chắn. Các tif
tập tin là chỉ 3MB - Tôi đã giả định rằng nó sẽ không mất nhiều thời gian để tải một tập tin kích thước này nhưng con trỏ nhấp nháy đã được trên màn hình cho ~ 1 giờ. Điều này đã sụp đổ hay tôi chỉ cần chờ đợi một thời gian dài? Tôi có 4GB RAM và bộ xử lý kép 2,5 GHz.
q
, nó sẽ thực thi lệnh này và chèn dữ liệu vào cơ sở dữ liệutest
. Đây có phải là hành vi bình thường và tôi nên làm điều này?