Formato de Dados ASCII-SPRING
Um dos fatores
que reconhecidamente impede uma maior difusão da tecnologia de
Geoprocessamento no Brasil é a falta de padrões nacionalmente
estabelecidos para intercâmbio de dados geográficos. Em um ambiente
de sistemas heterogêneos, com dados espaciais provenientes de
várias fontes e com diferentes formatos digitais, a conversão
destes dados representa um custo apreciável (entre 60% e 80% do
custo total) na implantação de SIGs em organizações. Com este
propósito, foi criado para o SPRING o formato de dados ASCII (sem
formatação) com sintaxe própria, para representar claramente as
principais entidades em geoprocessamento.
A proposta de utilizar o formato ASCII como um padrão no SPRING
e mesmo para outros softwares, visa tornar simples o intercâmbio
de dados cartográficos, permitindo a cada usuário preparar seus
próprios dados neste formato e às empresas representantes dos
diferentes sistemas, escrever rapidamente rotinas de conversão.
As principais características do formato ASCII/INPE são:
- Legibilidade, permitindo acesso
e edição externa.
- Independência da representação interna de cada máquina.
- Flexibilidade, permitindo adição de novos campos em função de necessidades.
Um conjunto de dados geográficos no padrão proposto se
materializa na forma de um conjunto de arquivos codificados em ASCII,
onde cada arquivo armazena um tipo de entidade (pontos,
linhas, linhas 3d, etc). As informações são guardadas de
forma seqüencial e divididas em linhas de tamanho variável,
delimitadas por Carriage Return seguido de Line Feed. Múltiplos
brancos e caracteres especiais com Carriage Return e Tabs são equivalentes
a um único espaço em branco. Não há nenhuma restrição quanto ao
tamanho das linhas. Palavras-Chaves permitem identificar facilmente
diversos tipos de dados e componentes do formato. Utilizou-se, como
palavras-chave, elementos da língua inglesa, que já foram completamente
absorvidos na prática comum, para facilitar a troca de informações
com organismos internacionais.
Cada arquivo ASCII é dividido em 3
seções: Identificação (formado por
uma palavra-chave que identifica um das entidades modeladas pelo
padrão), Informação (seção de tamanho
variável contendo informações relevantes para o usuário dos dados)
e Dados (seção formada pelos dados
e atributos específicos). Veja a seguir cada uma.
Tipos de Dados
Identificação
Esta seção deve estar no início do arquivo, e deve ser formada por uma das palavras-chave que identifica
uma das entidades suportadas pelo padrão. Para esta seção as seguintes palavras-chave são definidas:
- LINES: dados na forma de linhas sem topologia. Estas linhas podem ser utilizadas para formar polígonos
(áreas fechadas como por exemplo mapa de lotes urbanos) ou linhas abertas (um mapa com os rios de uma
região por exemplo);
- POINTS: arquivo de pontos ("label points") utilizados para rotular polígonos ou linhas, no caso um
ponto interno ao polígono ou um ponto qualquer da linha;
- POINT2D: entidade ponto e sua identificação (rótulo, nome e objeto para pontos cadastrais ou classe
para temáticos);
- SAMPLE: amostras de pontos no espaço, utilizados como entrada para modelos numéricos de terreno. Um
arquivo de entidades do tipo SAMPLES pode conter tanto pontos cotados (indicados pela palavra-chave
POINT3D) ou isolinhas (indicadas pela palavra-chave LINE3D);
- GRIDREG: arquivos contendo grades regulares, utilizados como entrada para modelos numéricos do terreno;
- TABLE: arquivos contendo tabelas, utilizados para armazenar atributos descritivos dos objetos
geográficos;
- TEXT: arquivos contendo textos, utilizados para dar toponímia a qualquer modelo de dados do SPRING;
- POLYGONS: arquivo de polígonos onde cada um é exportado como se fossem ilhas. Há duplicidade de linhas
que fazem fronteira entre dois polígonos. Se for importado para o SPRING, deve ser retirada esta
duplicidade;
- NETWORK: arquivo de linhas orientadas do modelo de redes. Cada linha tem um identificador, impedâncias
e demandas;
- NETWORK_OBJECTS: arquivo de pontos ("label points") utilizados para rotular linhas e nós de um PI do
modelo de redes. Para diferenciar a identificação de linhas e nós utiliza-se as palavras-chaves LINES e
NODES respectivamente.
Informação
Localizada após a Identificação do tipo de entidade esta seção é delimitada pelas palavras-chave: INFO e
INFO_END. Esta seção é opcional, mas altamente recomendada nos arquivos, pois contém informações relevantes
para o usuário dos dados e eventualmente para um analista que deseje desenvolver um utilitário para ler
estes dados. Esta seção possue tamanho variável e é composta por linhas, sendo o início de cada linha
identificado por uma das palavras-chave disponíveis para esta seção. Para a seção Informação, as seguintes
palavras-chave são definidas:
- INFO: Indicador de início da seção Informação.
- INFO_END: Indicador de fim da seção Informação.
- DATUM: Modelo da Terra usado na projeção e parâmetros correspondentes, apresentando a seguinte ordem, e
separados por vírgulas: nome, semi-eixo maior ou raio, achatamento, deslocameto do elipsóide nas direções
x, y e z.
- PROJECTION: Projeção dos dados, e parâmetros correspondentes, apresentados na seguinte ordem e
separados por vírgulas: nome da projeção, hemisfério, latitude de origem, longitude de origem, primeiro
paralelo e segundo paralelo. Notar que dependendo da projeção alguns parâmetros não são utilizados, neste
caso estes parâmetros podem ser omitidos, porém devem ser mantidas as vírgulas.
- BOX: Retângulo envolvente do projeto.
- UNITS: Sistema de unidades dos parâmetros e dados.
- SCALE: Escala dos dados.
- GRIDDEF: Parâmetros de definição de uma grade regular.
- SEPARATOR: Opção para controlar a forma de armazenar os dados da entidade TABLE, POINTS ou POINT2D.
- FORMATED: Define a formatação dos campos de uma entidade TABLE (NÃO IMPLEMENTADO).
- UNFORMATED: Opção para controlar a forma de armazenar os dados da entidade TABLE. Está acompanhado do
item SEPARATOR.
- DATABASE: Nome do banco de origem dos dados.
- CATEGORY_OBJ: Nome da categoria de objetos do banco, utilizado para tabelas.
- CATEGORY_NOSPATIAL: Nome da categoria Não-Espacial do banco, utilizado para tabelas descritivas.
- T_KEY: Definição do rótulo do objeto em uma tabela de atributos.
- T_NAME: Definição do nome do objeto em uma tabela de atributos.
Comentários gerais sobre os dados podem ser inseridos nesta seção, bastando inicializar a linha com duas
barras //. Não há limitações quanto ao tamanho do comentário.
Exemplo:
TABLE
INFO
// Tabela de Atributos
// Arquivo ASCII gerado pelo Sistema SPRING
// Projeto: Brasilia - Plano de informação: Mapa_quadras
// Categoria: Cadastro_Urbano - Modelo: CADASTRALMODEL
DATUM SAD69, 6378160.000000, 0.003353, 0.000000, 0.000000, 0.000000
PROJECTION UTM/SAD69, 1, 0.000000, -0.785398, 0.000000, 0.000000
BOX 183557.000000, 8246273.000000, 195009.000000, 8258937.000000
UNITS Metros
SCALE 25000.000000
SEPARATOR ,
UNFORMATED
DATABASE DF
CATEGORY_OBJ Quadras
T_KEY , TEXT , 32 , 0
T_NAME , TEXT , 32 , 0
ASA , TEXT , 7 , 0
USO , TEXT , 15 , 0
NUM_IMOVEI , INTEGER , 10 , 0
POPULACAO , INTEGER , 10 , 0
RENDA , REAL , 17 , 8
INFO_END
SQN-102 , SQN-102 , NORTE , Hotelaria , 12 , 3500 , 17000.000000
SQN-103 , SQN-103 , NORTE , Publico , 15 , 250 , 20000.000000
SQN-104 , SQN-104 , NORTE , Publico , 18 , 300 , 25000.000000
SQN-105 , SQN-105 , NORTE , Publico , 100 , 400 , 30000.000000
END
OBS: Esta seção pode ser formada só de comentários, comentários mais algumas palavras-chave ou comentários
mais todas as palavras-chave disponíveis para esta seção.
Dados
Esta seção começa após a palavra-chave INFO_END e é composta por uma ou mais instâncias da entidade
definida na seção Identificação. Ao término de cada entidade, no caso de linhas ou isolinhas, é delimitado
pela palavra chave END, e o fim dos dados no arquivo pela sequência END END. As demais entidades (pontos,
amostras, grade, tabela e textos) levam apenas um END ao final do arquivo.
Os dados podem ser declarados em coordenadas planas (metros, quilômetros, milímetros, pés ou polegadas),
ou coordenadas geográficas (grau decimal, segundos de grau ou latitude/longitude).
Quando o arquivo está em coordenadas geográficas; latitude e longitude, adota-se as seguintes convenções:
- Na frente dos valores de latitude, aparece uma das seguintes letras S, s, N ou n.
- Na frente dos valores de longitude, aparece uma das seguintes letras O, o, W, w, E ou e.
Ex: s 23 13 38.6 o 45 53 51.0 ou
o 45 53 51.0 s 23 13 38.6
IMPORTANTE: O SPRING exporta em coordenadas geográficas sempre na ordem Longitude / Latitude. Entretanto na
importação o sistema reconhece também o par de coordenadas de forma invertida (Latitude / Longitude) como
no exemplo acima.
Quando o arquivo está em coordenadas geográficas; grau decimal ou segundos de grau, adota-se as seguintes
convenções:
- Na frente dos valores de longitude/latitude (nesta ordem), utilize um sinal negativo ( - ) para
indicar à esquerda do meridiano de grau 0 (zero) e no hemisfário sul.
Ex:
-63.47887039 2.18374274
Para dados alfanuméricos, isto é, tabela de atributos, cada linha representa um registro e cada campo
encontra-se separado pelo caracter definido na seção informação, seguido pela palavra-chave SEPARATOR.
Veja os formatos de cada tipo de arquivo ASCII definidos pela seção indentificação, ou seja; LINES
(linhas sem topologia), POINTS (Identificadores), POINT2D (pontos temáticos ou cadastrais), SAMPLE
(modelos de terreno), GRIDREG (grades regulares), TABLE (tabelas de atributos descritivos), TEXT (textos),
POLYGONS (polígonos como ilhas), NETWORK (linhas orientadas), NETWORK_OBJECTS (identificação de linhas e nós de
redes). Observe que as seções dos arquivos estão sempre na sequência: Identificaçao, Informação, Dados, sendo que
a seção Informação é opcional, na maioria dos arquivos.
Arquivos ASCII e Modelos
Para compreender melhor a utilidade de cada um dos tipos de arquivos ASCII e o modelo de dados a qual
pertencem no SPRING, veja tabela abaixo.
|
Modelo
|
Arquivos / Extensões
|
Observação
|
|
Temático
pontos
|
point2d / *_p2d.spr
|
Representação de pontos (coord.
x/y) e identificação às classes no
mesmo arquivo.
|
|
Temático
linhas e polígonos
|
lines / *_l2d.spr
points / *_lab.spr
polygons / *_pol.spr
|
Para ter um mapa temático no spring
bastam os arquivo lines e points, pois o primeiro representa
as linhas/polígonos e o segundo identificações
à classes temáticas. lembre-se de ajustar
e poligonalizar antes de importar um arquivo points, quando
o mapa tiver polígonos. o arquivo polygons é
criado somente quando exportado, mas caso tenha de ser importado,
recomenda-se eliminar as linhas duplicadas entre polígonos
vizinhos.
|
|
Cadastral
pontos
|
point2d / *_p2d.spr
|
Representação de pontos (coord.
x/y), identificação do objeto (rótulo
e nome) e categoria de objeto correspondente.
|
|
Cadastral
linhas e polígonos
|
lines / *_l2d.spr
points / *_lab.spr
polygons / *_pol.spr
|
Para ter um mapa cadastral no spring bastam
os arquivo lines e points, pois o primeiro representa as
linhas/polígonos e o segundo identificações
à objetos. lembre-se de ajustar e poligonalizar antes
de importar um arquivo points, quando o mapa tiver polígonos.
o arquivo polygons é criado somente quando exportado,
mas caso tenha de ser importado, recomenda-se eliminar as
linhas duplicadas entre polígonos vizinhos.
|
|
Numérico
amostras, grade retangular e linhas de quebra
|
sample / *_l3d.spr
gridreg / *_grr.spr
lines / *_l2d.spr
|
Os arquivos sample e gridreg são
importados e exportados independentemente um do outro. as
linhas que quebra, que são linhas 2d, são
exportadas como lines, caso estejam no mesmo arquivo de
amostras. entretanto, um arquivo lines, somente pode ser
importado para um temático ou cadastral, caso deseja
utilizá-lo como linhas de quebra.
|
|
Redes
linhas e nós
|
network / *_net.spr
network_objects / *_netobj.spr
|
Ambos arquivos sempre devem estar juntos,
mas devem ser importados separadamente.
|
|
Todos
textos
|
text / *_tex.spr
|
Um arquivo tipo text pode ser utilizado
por qualquer modelo de dados no spring, inclusive imagens.
|
|
Objetos
atributos
|
table / *_tab.spr
|
Uma tabela de objetos pode estar associada
a pi's de qualquer categoria cadastral (entidades ponto,
linhas ou polígonos), ou redes (linhas orientadas
e nós). lembre-se que internamente deve haver a palavra-chave
category_obj.
|
|
Não-espacial
atributos
|
table / *.tab.spr
|
Uma tabela de atributos não-espacial
pode existir no banco e a qualquer momento se conectada
a uma de objetos para efeito de consultas. lembre-se que
internamente deve haver a palavra-chave category_nospatial.
|
|