Outdated version of the documentation. Find the latest one here.

` `

Oracle Spatial GeoRaster Plugin

In Oracle databases, raster data can be stored in SDO_GEORASTER objects available with the Oracle Spatial extension. In QGIS, the oracleRaster Oracle Spatial GeoRaster plugin is supported by GDAL and depends on Oracle’s database product being installed and working on your machine. While Oracle is proprietary software, they provide their software free for development and testing purposes. Here is one simple example of how to load raster images to GeoRaster:

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

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

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

Firstly, the Oracle GeoRaster Plugin must be enabled using the Plugin Manager (see The Plugins Dialog). The first time you load a GeoRaster in QGIS, you must create a connection to the Oracle database that contains the data. To do this, begin by clicking on the oracleRaster Add Oracle GeoRaster Layer toolbar button – this will open the Select Oracle Spatial GeoRaster dialog window. Click on [New] to open the dialog window, and specify the connection parameters (See Figure_oracle_raster_connection):

  • Name: Enter a name for the database connection.
  • Database instance: Enter the name of the database that you will connect to.
  • Username: Specify your own username that you will use to access the database.
  • Password: Provide the password associated with your username that is required to access the database.
../../../_images/oracle_create_dialog.png

Диалоговое окно «Создать соединение Oracle»

Now, back on the main Oracle Spatial GeoRaster dialog window (see Figure_oracle_raster_selection), use the drop-down list to choose one connection, and use the [Connect] button to establish a connection. You may also [Edit] the connection by opening the previous dialog and making changes to the connection information, or use the [Delete] button to remove the connection from the drop-down list.

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

Once a connection has been established, the subdatasets window will show the names of all the tables that contain GeoRaster columns in that database in the format of a GDAL subdataset name.

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

Click on one of the listed subdatasets and then click on [Select] to choose one of the table/column combinations. The dialog will now show all the rows that contain GeoRaster objects. Note that the subdataset list will now show the Raster Data Table and Raster Id pairs.

At any time, the selection entry can be edited in order to go directly to a known GeoRaster or to go back to the beginning and select another table name.

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

Диалоговое окно «Выберите Oracle Spatial GeoRaster»

The selection data entry can also be used to enter a WHERE clause at the end of the identification string (e.g., geor:scott/tiger@orcl,gdal_import,raster,geoid=). See http://www.gdal.org/frmt_georaster.html for more information.

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

Finally, by selecting a GeoRaster from the list of Raster Data Tables and Raster Ids, the raster image will be loaded into QGIS.

The Select Oracle Spatial GeoRaster dialog can be closed now and the next time it opens, it will keep the same connection and will show the same previous list of subdatasets, making it very easy to open up another image from the same context.

Примечание

GeoRasters that contain pyramids will display much faster, but the pyramids need to be generated outside of QGIS using Oracle PL/SQL or gdaladdo.

The following is an example using 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;