Wednesday, January 8, 2014

Import dữ liệu Raster vào Oracle


Quách Đồng Thắng 
Trung tâm Ứng dụng GIS Tp.HCM

1.  GIỚI THIỆU

Tiếp theo loạt bài về vấn đề quản lý dữ liệu không gian trong Oracle (Tham khảo thêm Import Shapefile vào Oracle), bài viết trình bày cách import dữ liệu raster vào CSDL Oracle (Enterprise Edition).


2.  THỬ NGHIỆM

Oracle Express Editon (XE) là bản miễn phí nên có những hạn chế sau:
  • Dữ liệu không vượt quá 4 GB.
  • Mỗi máy tính chỉ host được một instance của Oracle XE.
  • Oracle XE có thể được cài đặt trên máy có nhiều CPU, nhưng cùng lúc chỉ có thể chạy trên một CPU, hoặc chỉ chạy trên một nhân đối với bộ xử lý đa nhân (do đó không khai thác hết sức mạnh của CPU).
  • Oracle XE có thể được cài đặt trên server với bộ nhớ rất lớn, nhưng chỉ sử dụng tối đa 1GB bộ nhớ RAM.

Ngoài ra, Oracle XE không hỗ trợ GeoRaster nên bài viết sử dụng Oracle phiên bản Enterprise để thử nghiệm.

Để quản lý dữ liệu vector, Oracle sử dụng kiểu dữ liệu SDO_GEOMETRY. Đối với dữ liệu raster, Oracle sử dụng kiểu dữ liệu SDO_GEORASTER. Cấu trúc của đối tượng SDO_GEORASTER được thể hiện trong hình sau:


Chúng ta có thể tạo table lưu trữ theo cấu trúc trên, sử dụng chức năng import raster sẵn có của Oracle để đưa dữ liệu raster (ảnh viễn thám, ảnh hàng không,…) vào quản lý trong CSDL (tham khảo thêm tại gis4free). Tuy nhiên, để đơn giản hóa công đoạn import dữ liệu, bài viết giới thiệu cách tiếp cận sử dụng tiện ích của bên thứ 3 là gdal_translate, một trong những công cụ mạnh mẽ của bộ thư viện xử lý dữ liệu raster mã nguồn mở GDAL.

Để thuận tiện, có thể download GDAL thông qua OSGeo4W. Ở giao diện cài đặt OSGeo4W, chọn Advance Install. Sau đó search “gdal” để cài đặt gói thư viện gdal.

 

Sau khi cài đặt thành công, chạy OSGeo4W Shell để sử dụng công cụ gdal_translate ở giao diện dòng lệnh. Có thể gõ lệnh gdal_translate để xem các tham số khác của công cụ. Trong trường hợp này, ta nhập các tham số như hệ tham chiếu EPSG:32648, đường dẫn đến file ảnh geotif và tham số kết nối đến Oracle server (trong trường hợp này bdkh là tên database, hr là username và password.).

gdal_translate -a_srs EPSG:32648 -of georaster f:/oracle/q1_B1.tif geor:hr/hr@localhost/bdkh

Sau khi import thành công, hai bảng được tạo ra là GDAL_IMPORT (tương ứng với “Table With GeoRaster Column” trong hình trên) và GDAL_RDT (tương ứng với “Raster Data Table”) – là bảng thực sự chứa dữ liệu raster được chia thành từng block và lưu trữ ở định dạng BLOB (Binary Large Object).


Để hiển thị ảnh, chúng ta có thể sử dụng GeoRasterViewer (sẵn có trong Oracle example - lưu ý chọn “See All” để có thể download và cài đặt Oracle example). Sau khi cài đặt thành công, có thể xem ảnh bằng công cụ GeoRasterViewer.bat (Trong trường hợp này nằm ở đường dẫn C:\oracle\product\11.2.0\dbhome_1\md\demo\georaster\java):


Đơn giản hơn, chúng ta có thể xem ảnh Georaster từ QGIS: chọn công cụ Add Oracle Georaster layer , nhập các thông số kết nối:


Kết quả:



3.  KẾT LUẬN

Bài viết đã trình bày cách import dữ liệu raster, cụ thể là ảnh hàng không độ phân giải 25cm khu vực quận 1, Tp.HCM vào CSDL Oracle. Đây là những bước tiếp cận cơ bản ban đầu mang tính giới thiệu. Để hiểu rõ và làm việc hiệu quả với dữ liệu raster trong Oracle, cần nghiên cứu các tài liệu kỹ thuật của Oracle, đặc biệt là quyển Pro Oracle Spatial for Oracle Database 11g  (như tạo Pyramids để tăng tốc hiển thị, trích lọc ảnh, chuyển đổi ảnh, nén ảnh, …).

TÀI LIỆU THAM KHẢO
Ravikanth V. Kothuri, A. G. (2007). Pro Oracle Spatial for Oracle Database 11g . Apress.

No comments:

Post a Comment