Importando/Exportando dados vetoriais ao PostGIS

Tendo ensinando no artigo anterior a importar dados matriciais ao banco de dados PostGIS, dou continuidade apresentando o mesmo procedimento para/com dados vetoriais.

Os dados vetoriais, assim como os dados matriciais, fazem parte do universo de representação¹, onde define-se as possíveis estruturas de representação das classes modeladas conceitualmente do mundo real.

Acredito que os dados vetoriais são os mais utilizados nos Sistemas de Informações Geográficas e em projetos de geoprocessamento. Afinal, mesmo que se trabalhe essencialmente com sensoriamento Remoto, os dados vetoriais acabam sendo utilizados, ao menos, na elaboração de mapas finais e nas complementações de layout.

Caso precisem informações sobre o que são os dados vetoriais e suas diferenças entre esses sugiro as publicações do INPE. No livro Introdução à ciência da Geoinformação, o capítulo 2 a presenta uma boa abordagem sobre o assunto a partir da página 16.

INTRODUÇÃO

A ideia é fazer o processo de importação dos dados por linhas de comando, através do terminal, para que todos se apropriem da linguagem e os parâmetros de importação de tais dados dados. Apesar de parecer um tanto confuso no início, poderão ver que estes não são “bichos de sete cabeças”. Além disso, usar banco de dados Geográficos e ter conhecimento sobre as linhas de comando, permitem automatizar alguns procedimentos ou, até mesmo, criar aplicativos de web tornando os mais acessíveis aos demais colaboradores do projeto em questão. Dessa forma, são a chave para para um projeto independente e flexível.

Assim como realizado para a importação de dados matriciais primeiro utilizaremos a ferramenta para converter o dado que está em formato “.shp” (shapefile) para “.sql”, apresentando alguns parâmetros fundamentais e específicos dos dados vetoriais. Para este caso, ao invés de utilizar a ferramenta “raster2pgsql” utilizada na antigo anterior, própria para dados matriciais, utilizaremos “shp2pgsql”, específico para dados vetoriais em formato shapefile.

Posteriormente, acessaremos o banco de dados como administradores para, então executarmos o sql criado importando os dados vetoriais.

Para exemplo, farei um passo-a-passo com a malha digital dos setores censitários do IBGE de 2010, que pode ser adquirido no ftp do IBGE.

Ao finalizar o download dos dados escolhidos, perceberás que o pacote possui, na verdade quatro arquivos vetoriais diferentes em formato shapefile, com as seguintes nomenclaturas:
MUE – Limites municipais;
DSE – Limites distritais;
SDE – Limites subdistritais;
SEE – Limites dos setores censitarios;

Para exemplo, utilizaremos o arquivo vetorial de limite dos setores censitários do Rio de Janeiro, ou “33SEEGC250SIR.shp”. Os dados baixados, independente dos estado escolhido, estão em coordenadas geográficas (GC) e datum SIRGAS 2000 (SIR), conforme indicado em seu nome.

CONVERTENDO .SHP EM .SQL COM A FERRAMENTA SHP2PGSQL

Assim como o processo de importação de dados matriciais, há que se definir alguns parâmetros para garantir a consistência do dado importado. Alguns desses parâmetros são similares aos utilizados na ferramenta raster2pgsql como, por exemplo, os parâmetros que definem a forma de importação do dado à tabela, que especificam o SRID do dados a ser importado, etc.

Porém, assim como há parâmetros específicos para a importação de dados matriciais como, por exemplo, os parâmetros que definem a banda a ser importada, o tamanho do “tile” (tile size), etc., há parâmetros específicos para os dados vetoriais.

Como exemplo de parâmetros específicos de dados vetoriais temos, dentre outros:
-W , através do qual se especifica o sistema de codificação textual da tabelas de atributos do arquivo vetorial (Latin1, UTF8, etc);
-t , onde se define a dimensionalidade do dado (“2D”, “3DZ”, “3DM” e “4D” );

É sempre importante saber quais parâmetros são pertinentes aos dados vetoriais. Para isso, sugiro usar a pagina da Refractions, já recomendada anteriormente.

Tendo isso em mente, seguimos o mesmo padrão da ferramenta “raster2pgsql” para a ferramenta “shp2pgsql”:

shp2pgsql opcoes_vetor arquivovetor.shp nome_schema.nome_tabela>nome_arquivo.sql

No terminal e dentro da pasta que armazena o arquivo .shp, executa-se:

shp2pgsql -s 4674 -W LATIN1 33SEE250GC_SIR.shp public.SEE>see.sql

Neste exemplo, estamos convertendo um dados vetorial (shp2pgsql), com sistema de coordenadas geográficas e datum SAD69 (-s 4674) e sistema de codificação -encoding- da tabela de atributos Latin1(-W LATIN1).

EXECUÇÃO (IMPORTAÇÃO) DO ARQUIVO .SQL

Tendo convertido o arquivo vetoriais para um arquivo .sql, basta acessar o banco de dados como super-usuário e executar o arquivo.sql.

sudo su
su postgres
psql -d cncflora -f see.sql

Assim como no processo de importação de dados matriciais, os dois procedimentos aqui apresentados (conversão do dado vetorial em sql e importação para o banco de dados) podem ser realizados de uma só vez:

shp2pgsql -s 4674 -W LATIN1 33SEE250GC_SIR.shp public.SEE|psql -d geodb

EXPORTANDO DADOS VETORIAIS DO POSTGIS PARA SHAPEFILE

Para realizar o processo inverso, basta utilizar a ferramenta “pgsql2shp”. Porém, como estaremos extraindo dados de um servidor de banco de dados, precisaremos inserir alguns parâmetros na linha de comando que identificam tal servidor e dão as informações necessárias para acessá-lo. Assim, o comando deverá ser construído da seguinte forma:

pgsql2shp nome_arquivo.shp info_servidor "query_select_dosdados_geograficos"

Dos parâmetros existentes, os seguintes são pertinentes à ferramenta “pgsql2shp”:
-f: Especificar o nome a ser dado ao arquivo .shp após a exportação;
-h: Especificar o servidor do banco de dados. O padrão é “localhost”;
-p: Especificar a porta de conexão ao servidor;
-P: Especificar a senha a ser utilizada na conexão ao servidor;
-u: Nome de usuário para conexão ao banco de dados;
-g: Especificar o nome da coluna com a geometria do dado. A ser utilizada quando o dado vetorial possui mais de uma coluna de geometria

Como exemplo, exportarei a malha de setores censitários que acabamos de importar ao PostGIS, com o seguinte comando:

pgsql2shp -f see_pg -h localhost -u usuario -P senha banco_dados "SELECT * from see"

Ao término do processo, basta acessar a pasta de onde se executou tal comando para encontrar o arquivo em formato shapefile.

Como os dados vetoriais são se resumem exclusivamente ao formato shapefile, no próximo artigo, publicarei o  mesmo processo para dados vetoriais em diferentes formatos, utilizando a ferramenta OGR.

Até sintam-se a vontade em comentar!

¹ Câmara, G.; Monteiro A.M.V. Conceitos Básicos em Ciência da Geoinformação.São José dos Campos: Instituto Nacional de Pesquisas Espaciais, Ministério da Ciência e Tecnologia, 2001, 36p.

Anúncios

Sobre Felipe Barros

Geógrafo formado pela PUC-Rio, é mestre em Biodiversidade pelo Jardim Botânico do Rio de Janeiro e especialista em analise ambiental e gestão do território pela ENCE/IBGE. Trabalha com softwares livres de análise espacial, banco de dados e sensoriamento remoto.
Esse post foi publicado em Banco de Dados Geográficos e marcado , , , , , , , , . Guardar link permanente.

Uma resposta para Importando/Exportando dados vetoriais ao PostGIS

  1. Pingback: Instalar PostGIS no Linux Debian | Blog do Albuquerque

Os comentários estão encerrados.