Модуль «Oracle Spatial GeoRaster»

В базах данных Oracle растровые слои могут храниться в объектах SDO_GEORASTER, доступных через расширение «Oracle Spatial». В QGIS модуль oracle_raster Oracle Spatial GeoRaster поддерживается библиотекой GDAL и зависит от установленной на вашем компьютере базы данных Oracle. В то время как Oracle является коммерческим ПО, для разработки и тестирования оно поставляется бесплатно. Вот один простой пример того, как загрузить растровые изображения в GeoRaster:

$ gdal_translate -of georaster input_file.tif geor:scott/tiger@orcl

Эта команда загрузит растр в таблицу GDAL_IMPORT по умолчанию, в качестве столбца под названием RASTER.

Управление соединениями

Сначала, модуль Oracle GeoRaster должен быть активирован посредством Менеджера модулей (см. раздел Загрузка основных модулей QGIS). В первый раз, когда модуль GeoRaster загружается в QGIS, требуется создание соединения с базой данных Oracle, в которой содержатся данные. Для этого сначала нужно нажать кнопку oracle_raster Выбрать Oracle GeoRaster на панели иструментов, откроется диалоговое окно Выберите Oracle Spatial GeoRaster. Затем нужно нажать кнопку [Создать] для того, чтобы открылось диалоговое окно и ввести параметры подключения (cм. рисунок Figure_oracle_raster_1):

  • Имя: Ввести название для подключения к базе данных

  • Экземпляр СУБД: Ввести название базы данных, к которой совершается подключение

  • Пользователь: Ввести имя пользователя, имеющего доступ к базе данных

  • Пароль: Ввести пароль пользователя

Figure Oracle Raster 1:

../../../_images/oracle_create_dialog.png

Create Oracle connection dialog

Теперь, в диалоговом окне Выберите Oracle Spatial GeoRaster (см. рисунок Figure_oracle_raster_2), нужно выбрать подключение из выпадающего списка и использовать кнопку [Подключиться] для установки соединения. Также существует возможность править параметры подключения посредством кнопки [Правка] или использовать кнопку [Удалить] для удаления соединения из списка.

Выбор растровых данных

После того, как произойдет подключение, в окне блока Подчиненные наборы данных появятся названия всех таблиц, содержащих столбцы растровых данных в формате подчиненных наборов данных GDAL.

Выбрав один из таких наборов данных и нажав кнопку [ОК], можно выбрать название таблицы. Теперь будет показан другой список подчиненных наборов данных, содержащий названия колонок растровых данных из этой таблицы. Обычно это короткий список, так как большинство пользователей не держит больше 1-2 столбцов в одной таблице.

Выбрав один из приведенных наборов данных и затем нажав [ОК], можно выбрать одну из комбинаций таблица/столбец. Диалоговое окно теперь покажет все строки, содержащие объекты растровых данных. Заметьте, что теперь в списке подчиненных наборов данных отображаются пары (таблица растровых данных:идентификатор растрового изображения).

В любой момент времени можно изменить содержимое строки в блоке Выделение для того, чтобы перейти непосредственно к нужному растровому изображению или вернуться к началу и выбрать другое название таблицы.

Figure Oracle Raster 2:

../../../_images/oracle_select_dialog.png

Select Oracle GeoRaster dialog

Строка ввода блока Выделение также может использоваться для ввода условия WHERE в конце идентификационной строки, к примеру geor:scott/tiger@orcl,gdal_import,raster,geoid=. Смотрите http://www.gdal.org/frmt_georaster.html для более детальной информации.

Отображение растровых данных

И напоследок, выбрав растровое изображение из списка «Таблица растровых данных:идентификатор растрового изображения», в QGIS будет загружено растровое изображение.

Теперь диалоговое окно Выбрать Oracle Spatial GeoRaster может быть закрыто, и в следующий раз при его вызове в нем будет отображаться то же соединение, с тем же списком подчиненных наборов данных, что облегчит открытие другого изображения из того же окружения.

Примечание

Растровые изображения, содержащие пирамиды, будут отображаться быстрее, однако пирамиды должны быть созданы вне QGIS, с применением Oracle PL/SQL или gdaladdo.

Вот пример использования gdaladdo:

gdaladdo georaster:scott/tiger@orcl,georaster\_table,georaster,georid=6 \
-r nearest 2 4 6 8 16 32

А это пример для PL/SQL:

$ sqlplus scott/tiger
SQL> DECLARE
 gr sdo_georaster;
BEGIN
    SELECT image INTO gr FROM cities WHERE id = 1 FOR UPDATE;
    sdo_geor.generatePyramid(gr, 'rLevel=5, resampling=NN');
    UPDATE cities SET image = gr WHERE id = 1;
    COMMIT;
END;