ORACLE GEORASTER André Cavalcante Hora andrech@dcc.ufmg.br Banco de Dados Geográficos Universidade Federal de Minas Gerais
ORACLE GEORASTER Componente pertencente ao Oracle Spatial Permite armazenar, consultar e analisar dados GeoRaster Dados GeoRaster: imagem e dados em grid Áreas de aplicação: monitoramento ambiental, elevação da terra, telecomunicações, transporte, planejamento urbano, entre outras 2
REPRESENTAÇÕES (VETORIAL X RASTER) O mundo real pode ser representado em modelos: Vetorial Raster Modelo Vetorial Objetos (rio, rua, lote, etc.) possuem características geométrica (forma e localização) e um conjunto de atributos SDO_GEOMETRY Modelo Raster (imagem e dados em grid) Associa coleções de pixels (células) a entidades espaciais Usado para modelar dados distribuídos continuamente SDO_GEORASTER 3
REPRESENTAÇÕES (VETORIAL X RASTER) Diferença entre os modelos vetorial e raster 4
IMAGEM X DADOS EM GRID Imagem Tipo especial de dado raster Array em duas dimensões (matriz) de elementos (pixels) regularmente espaçados no espaço Dados em grid Termo geral usado para representar dados raster, tais como: elevação de terreno, utilização dos solos, concentração de poluição, informações geológicas e informações de precipitação 5
TIPO DE DADOS SDO_GEORASTER Na maioria dos dados raster, como uma imagem RGB, as células são endereçadas (linha, coluna, banda) e um valor de intensidade para o pixel (linha, coluna) correspondente é especificado para cada banda O valor das células em um objeto GeoRaster são armazenados em uma tabela de dados raster (raster data table) Um objeto raster pode ser georeferenciado 6
TIPO DE DADOS SDO_GEORASTER Estrutura do SDO_GEORASTER TYPE SDO_GEORASTER AS OBJECT ( rastertype NUMBER, spatialextent MDSYS.SDO_GEOMETRY, rasterdatatable VARCHAR2(32), rasterid NUMBER, metadata SYS.XMLType ) rastertype: Especifica o tipo do objeto raster. É um número na forma [d][b][t]01, onde [d] é o número de dimensões (2); [b] é 0 para banda simples e 1 para mais de uma banda; e [t] especifica se existe dimensão temporal (0, sem uso) 7
TIPO DE DADOS SDO_GEORASTER spatialextent: Objeto do tipo SDO_GEOMETRY que representa o MBR do objeto raster na superfície da terra rasterdatatable: O nome da tabela que armazena as informações da células para o objeto raster. Essa tabela deve ser um object table do tipo SDO_RASTER e deve conter uma linha para cada bloco raster que é amazenado rasterid: Combinado com o rasterdatatable é o identificador único para o objeto raster metadata: Objeto XML definido pelo Oracle com informações sobre os objetos raster (ex: armazena informações sobre conversões de modelos de coordenadas) 8
ARMAZENAMENTO PARA DADOS SDO_GEORASTER Cada objeto SDO_GEORASTER é subdividido em múltiplos blocos, e os valores das células para cada bloco são armazenados como BLOB na tabela de dados raster (raster data table). Podem existir tabelas como a Value-Attribute Table (VAT) que armazena a interpretação para as células 9
TABELA DE DADOS RASTER (SDO_RASTER OBJECT) Estrutura do SDO_RASTER TYPE SDO_RASTER AS OBJECT ( rasterid NUMBER, pyramidlevel NUMBER, bandblocknumber NUMBER, rowblocknumber NUMBER, columnblocknumber NUMBER, blockmbr MDSYS.SDO_GEOMETRY, rasterblock BLOB ) rasterid: O mesmo valor do rasterid do objeto associado pyramidlevel: Utilizado para reduzir a resolução da imagem, o que requer menos espaço de armazenamento. 0 indica o dado raster original. Maior que 0, indica redução da resolução 10
TABELA DE DADOS RASTER (SDO_RASTER OBJECT) bandblocknumber: Identifica o bloco através da banda rowblocknumber: Identifica o bloco através da linha columnblocknumber: Identifica o bloco através da coluna blockmbr: Objeto do tipo SDO_GEOMETRY que representa o MBR para o bloco rasterblock: Armazena os valores das células em cada bloco em um objeto do tipo BLOB 11
TABELA DE DADOS RASTER (SDO_RASTER OBJECT) Armazenamento um objeto raster 16x16 utilizando blocos 4x4 Cada bloco é identificado unicamente pelos campo rowblocknumber e columnblocknumber (e bandblocknumber se existir) 12
POPULANDO COLUNAS SDO_GEORASTER Criar Trigger para a tabela que contém a coluna SDO_GEORASTER call SDO_GEOR_UTL.createDMLTrigger('georaster_table', georaster'); Inicializar a coluna georaster UPDATE georaster_table SET georaster = SDO_GEOR.init('RDT') WHERE georid = 1; 13
POPULANDO COLUNAS SDO_GEORASTER Popular a coluna georaster DECLARE g SDO_GEORASTER; BEGIN SELECT georaster INTO g FROM branches WHERE id = 1 FOR UPDATE; SDO_GEOR.importfrom(g, 'blocksize=(512,512)', 'TIFF', 'file', /usr/rasters/image1.tif'); UPDATE branches SET georaster = g WHERE id = 1; END; Permissões para esquema espacial e MDSYS call dbms_java.grant_permission( ESQUEMA','SYS:java.io.FilePermission','/usr/rasters/image 1.tif', 'read'); 14
MANIPULANDO DADOS OBJETOS RASTER Uma vez que os objetos raster estão armazenados na coluna SDO_GEORASTER de uma tabela, é possível realizar algumas operações sobre esses objetos, tais como: Gerar pirâmides: permite gerar objetos raster em diferentes resoluções Georeferenciar: identificar a imagem por coordenadas Copiar um objeto raster para outro Gerar extensão espacial para uma imagem Compressão e descompressão de imagens 15
PIRÂMIDES Em alguns casos, objetos raster são muito grande e tem alta resolução Solução: reduzir o tamanho da resolução da imagem 16
PIRÂMIDES São geradas através da procedure sdo_geor.generatepyramid rlevel: número de níveis a serem gerados resampling: algoritmo utilizado para gerar a nova pirâmide declare gr sdo_georaster; begin select georaster into gr from branches where georid = 1 for update; end; sdo_geor.generatepyramid(gr, 'rlevel=4'); update branches set georaster = gr where id = 1; 17
GEOREFERENCIAR Associa uma coordenada real ao objeto GeoRaster Consiste do processo de relacionar objetos do sistema de coordenadas do mundo real (x,y) para os objetos no sistema de coordenadas das células (linha x coluna) Função para georeferenciar o objeto: sdo_geor.georeference Função para recuperar informações sobre o georeferenciamento: sdo_geor.getsrs 18
GEOREFERENCIAR Relacionamento entre os modelos 19
REFERÊNCIAS Oracle Spatial 11g GeoRaster - An Oracle Technical White Paper June 2007 Oracle Spatial GeoRaster 10g Release 2 (10.2) B14254-01 Pro Oracle Spatial - Ravi Kothuri, Albert Godfrind, and Euro Beinat 20