/* $Id: gdal_datamodel_br.dox $ */ /*! \page gdal_datamodel_br Modelo de Dados de GDAL Este documento descreve o Modelo de Dados implementado pela bilbioteca GDAL, os tipos de informação que GDAL pode conter e a sua semântica.
\section gdal_datamodel_dataset Dataset Um dataset (representado pela classe GDALDataset) é um agrupamento de bandas "raster" e um conjunto de informação comum a estas bandas. Em particular, um dataset possui o conceito de tamanho (em pixels e em linhas) que se aplica à todas as bandas. O Dataset também é reponsável pelas definições de referência geográficas e sistema de coordenadas comum a todas as bandas. O Dataset também pode possuir metadado, representado por uma lista de strings no formato de pares nome=valor. Note que o GDALDataet e o modelo de bandas "raster" em GDAL são ligeiramente baseados na especificação do "Grid Coverage" do OpenGIS (OGC). \subsection gdal_datamodel_dataset_cs Sistema de Coordenadas O sistema de coordenadas de um dataset é representado por uma string no formato "Well Kown Text" que contém:
Xgeo = GT(0) + Xpixel*GT(1) + Yline*GT(2) Ygeo = GT(3) + Xpixel*GT(4) + Yline*GT(5)No caso de imagens orientadas em direção ao norte, os coeficientes GT(2) e GT(4) são igual a zero, o GT(1) é a largura en pixels, e GT(5) é a altura en pixels. A posição (GT(0), GT(3)) é o canto superior esquerdo do pixel no canto superior esquerdo da imagem. Note que a coordenada pixel/linha neste formato se extendem de (0.0, 0.0) no pixel do canto superior esquerdo localizado no canto superior esquerdo da imagem até o canto inferior direito do pixel localizado no canto inferior direito da imagem. Consequentement, a coordenada do pixel no canto superior esquerdo é (0.5, 0.5). \subsection gdal_datamodel_dataset_gcp GCPs Um dataset pode possuir um conjunto de pontos de controle relacionando uma ou mais posições no raster com coordenadas geo-referenciadas. Todos os GCPs compartilham o mesmo sistema de coordanadas (retornado pelo GDALDataset::GetGCPProjection()). Cada GCP (representado pelo classe GDAL_GCP) contén as seguintes estrutura:
typedef struct { char *pszId; char *pszInfo; double dfGCPPixel; double dfGCPLine; double dfGCPX; double dfGCPY; double dfGCPZ; } GDAL_GCP;A string pszId deve conter um único (e geralmente, mas nem sempre, numérico) identificador para cada GCP dentro do conjunto de GCPs do dataset. A string pszInfo é usualmente vazia mas pode conter qualquer texto associado ao GCP que o usuário defina. Potencialmente pszInfo poderá conter informação, decodificável automaticamente, sobre o estado do GCP. O que no entando ainda não tem sido feito até o momento. Os campos (Pixel, Line) contém a localização do GCP no raster. Os campos (X,Y,Z) estão associados com a localixação geo-referenciada sendo que Z é normalmente zero. O modelo de dados de GDAL nao impõe nenhum mecanismo de transformação para que deve ser generado a partir dos GCPs... Isto é deixado para o applicação. No entanto polinomios de primeiro a quinto grau são comument utilizados. Normalmente um dataset ira conter transformações afins (geotransform), GCPs or nenhum dos dois. É incomum encontrar os dois e neste caso não existe uma definição de qual deve ter precedência. \subsection gdal_datamodel_dataset_metadata Metadados O metado do GDAL é um formato auxiliar de dado textual específico para cada aplicação que contém uma lista de pares nome=valor. É requerido que os nomes sejam chaves facilmente distintas (sem espaço e caracteres especiais). O valor pode ser de qualquer tamanho e pode conter qualquer coisa, exceto um caracter núlo (zero ASCII). O sistema de manipulação de metadas não é apropriado para suportar grandes volume de metados. Mais de 100K bytes de metada para um dataset provavelmente causará degradação na performance. Com o tempo espera-se que nomes bem conhecidos sejam identificados e bem estabelicidos semanticamente, no entanto isto ainda não tem ocorrido até o momento. Alguns formatos suportam metados genéricos (definidos pelo usuário), enquanto outros formatos supportam nomes specificos. Por exemplo o TIFF driver retorna algumas de suas "tags" na forma de metadas tais como data e hora:
TIFFTAG_DATETIME=1999:05:11 11:29:56O matado é dividido em grupos chamados domínios (domains). O domínio default tem o nome em branco (NULL ou ""). Existem alguns domínios specificos para propósitos especiais. Note que correntement não existe uma forma de enumerar todos os domínios disponíveis para um dado objeto mas as aplicações podem testar a existência de domínios conhecidos. \subsubsection gdal_datamodel_subdatasets Dominio de SUBDATASETS Os domínios SUBDATASETS podem listar uma hierarquia de datasets filhos. Normalmente isto é usado para prover endereços para várias imagens (ou datasets) internas à um único arquivo de images (como HDF ou NITF). Por exemplo, um arquivo NITF com quatro imagens pode ter a seguinte lista de subdataset:
SUBDATASET_1_NAME=NITF_IM:0:multi_1b.ntf SUBDATASET_1_DESC=Image 1 of multi_1b.ntf SUBDATASET_2_NAME=NITF_IM:1:multi_1b.ntf SUBDATASET_2_DESC=Image 2 of multi_1b.ntf SUBDATASET_3_NAME=NITF_IM:2:multi_1b.ntf SUBDATASET_3_DESC=Image 3 of multi_1b.ntf SUBDATASET_4_NAME=NITF_IM:3:multi_1b.ntf SUBDATASET_4_DESC=Image 4 of multi_1b.ntf SUBDATASET_5_NAME=NITF_IM:4:multi_1b.ntf SUBDATASET_5_DESC=Image 5 of multi_1b.ntfO valor de _NAME é a string que pode ser usada em uma chamada à GDALOpen() para acessar o arquivo. O valor de _DESC tem a intensão de apresentar uma descrição ao usuário no caso da seleção de subdataset. \subsubsection gdal_datamodel_image_structure Dominio IMAGE_STRUCTURE O domínio defult do metadata ("") está relacionado à image e não particularmente a forma como a image é organizada no arquivo. Isto significa que este domínio é apropriado para se copiar junto com o dataset quanto a image é copida para um novo format. Alguma informações pertence somente a um particular format de arquivo e sua forma de armazenamento. Para que esta informação não seja copiada inadvertidamente este tipo de informação é colocado num domínio especial chamado IMAGE_STRUCTURE que não normalmente não deve ser copiado de um formato para outro. Um item que aparece no domínio IMAGE_STRUCTURE é o esquema de compressão usado pelo formato. O nome deste item no metada é COMPRESSION mas o valor dele pode ser específico para cada formato. \subsubsection gdal_datamodel_xml Dominio xml: Qualquer domínio cujo o prefix do nome é "xml:" não é um item de metada normal mas sim um único documento XML armazenado numa string longa. \section gdal_datamodel_rasterband Banda de Imagem Raster Uma banda de image raster é representada em GDAL pela classe GDALRaseterBand. Ela representa uma única banda, canal ou camada. Em GDAL, uma banda não representa necessáriamente uma imagem inteira. Uma imagem 24bit RGB, por exemplo, é normalmente representada por um dataset com três bandas, uma para vermelho, uma pra verde e outra para azul. Um banda raster tem as seguintes propriedades:
typedef struct { /- gray, red, cyan or hue -/ short c1; /- green, magenta, or lightness -/ short c2; /- blue, yellow, or saturation -/ short c3; /- alpha or blackband -/ short c4; } GDALColorEntry;A tabela de cores também possiu um valor de interpretação (GDALPaletteInterp) com um dos seguintes valores, que indica como os valores de c1/c2/c3/c4 dos item da tabela devem ser interpretados.
$Id: gdal_datamodel_br.dox $
\endhtmlonly */