In Oracle databases, raster data can be stored in SDO_GEORASTER objects available with the Oracle Spatial extension. In QGIS, the 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
Isto irá carregar o raster para a tabela padrão GDAL_IMPORT table, como coluna designada de 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 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_1):
Nome: Introduza um nome para a ligação de base de dados.
Instância da Base de Dados: Introduza o nome das bases de dados que se irá ligar.
Nome de Utilizador: Especifique o seu nome de utilizador que irá usar para aceder à base de dados.
Palavra-chave: A palavra-chave associada ao seu nome de utilizador que é requerido ao acesso à base de dados.
Figure Oracle Raster 1:
Agora, volte à janela principal Oracle Spatial GeoRaster (veja Figure_oracle_raster_2), use a lista drop-down para escolher uma ligação, e use o botão [Ligar] para estabelecer a ligação. Pode também [Editar] a ligação, abrindo a janela anterior e efectuar alterações na informação da ligação, ou usar o botão [Apagar] para remover a ligação da lista drop-down.
Uma vez a ligação estar estabelecida, a janela exibirá os nomes dos sub-conjunto de dados de todas as tabelas que contêm as colunas GeoRaster nessa base de dados no formato de um nome do subconjunto de dados GDAL.
Clique num dos subconjuntos de dados listados e de seguida clique em [Seleccionar] para escolher o nome da tabela. Agora, outra lista de subconjunto de dados irá mostrar os nomes das colunas GeoRaster nessa tabela. Geralmente costuma ser uma lista pequena, uma vez que a maioria dos utilizadores não irá ter mais de um ou duas colunas GeoRaster na mesma tabela.
Clique numa dos subconjuntos de dados listados e depois clique em [Seleccionar] para escolher uma das combinações tabela/coluna. A janela irá agora mostrar todas as linhas que contêm os objectos GeoRaster. Repare que essa lista de subconjuntos de dados irá agora aparecer em pares a Tabela de dados e Id’s do Raster.
A qualquer altura a entrada de Selecção pode ser editada de forma a ir directamente a um GeoRaster conhecido ou voltar para o princípio e seleccionar outro nome da tabela.
Figure Oracle Raster 2:
A entrada de Selecção de dados pode ser também usada para introduzir cláusulas WHERE no fim da string de identificação (ex.: geor:scott/tiger@orcl,gdal_import,raster,geoid=). Veja http://www.gdal.org/frmt_georaster.html para mais informação.
Finally, by selecting a GeoRaster from the list of Raster Data Tables and Raster Ids, the raster image will be loaded into QGIS.
A janela Seleccionar Oracle Spatial GeoRaster pode ser agora fechada e na próxima vez que abrir irá manter a mesma ligação, e irá mostrar previamente a mesma lista do subconjunto de dados tornando-se assim mais fácil abrir outra imagem do mesmo contexto.
Note
GeoRasters that contain pyramids will display much faster, but the pyramids need to be generated outside of QGIS using Oracle PL/SQL or gdaladdo.
O seguinte é um exemplo usando gdaladdo:
gdaladdo georaster:scott/tiger@orcl,georaster\_table,georaster,georid=6 -r
nearest 2 4 6 8 16 32
Este é um exemplo usando 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;