Paulo Collares

Meu blog pessoal. Tem de tudo um pouco…


Por Paulo Collares Em 15/março/2012 Nenhum comentário


No ano de 2009, como projeto de conclusão do curso em Bacharel em Sistemas de Informações pela Unigranrio, eu e Gustavo Matos, apresentamos este projeto.

Para que sirva de inspiração e fonte para trabalhos semelhantes, compartilho abaixo, todo o projeto.

Resumo

A partir da necessidade de controle de dados georreferenciados construir-se-á um aplicativo para atender as funcionalidades de um sistema SIG para Java desktop, ou seja, um aplicativo para leitura e manipulação de dados geográficos. Será possível o acesso a shapefiles ou a bancos de dados, pois o aplicativo oferece essas duas funcionalidades. O aplicativo desenvolvido disponibiliza um conjunto de ferramentas que auxilia na manipulação dos mapas. De acordo com os objetivos do atual projeto, conclui-se que o aplicativo será de grande utilidade na manipulação de dados geográficos.

Apresentação

Destaques do projeto


Clique aqui para baixar o pdf completo do projeto

Introdução

GIS (Geographic Information Systems ou Sistemas de Informações Geográficas) são aplicativos que tratam de informações com representação no espaço geográfico dispostas em camadas (“layers”), as quais são combinadas para a criação de mapas. Uma camada contém várias feições espaciais (entidades que representam pontos, linhas ou polígonos).

Este projeto descreve o desenvolvimento de um software desktop GIS que viabilize a utilização de shapefiles para a manipulação de dados georreferenciados.

A partir do que foi exposto, o principal objetivo deste trabalho é estudar o desenvolvimento de uma aplicação SIG com enfoque na disponibilização de dados, sendo desenvolvida através da linguagem de programação Java com o auxílio da biblioteca GeoTools.

É importante ressaltar a utilização de tecnologias livres, programas com código fonte aberto, representa uma grande vantagem no desenvolvimento de uma aplicação SIG, pois possibilita a redução do valor final do aplicativo.

No mundo tecnológico atual, a aquisição de equipamentos, tais como computadores, PDAs, notebooks, e GPS estão ao alcance de qualquer ser humano que busca conhecimentos científicos para seu crescimento profissional. Sendo assim, com um pequeno investimento, o pesquisador desta área poderá se beneficiar com a facilidade e comodidade que o geoprocessamento oferece ao seu usuário.

Shapefiles

De acordo com as especificações do shapefile da ESRI (1998), um shapefile é um formato de armazenamento digital para dados georreferenciados, voltado para utilização em softwares de sistemas de informações geográficas e atributos associados. Foi desenvolvido pela empresa ESRI, especializada em tecnologia GIS, sendo introduzido no mercado na década de 90 com o ArcView GIS. Hoje, o arquivo shapefile está mais popular, e já é possível ler e escrever este arquivo através de uma variedade de programas.

Shapefiles espacialmente representam geometrias: pontos, linhas, polígonos abertos e polígonos fechados. Um ponto, por exemplo, poderia representar poços de água, um polígono aberto poderia representar rios e lagos, respectivamente.

Estas representações geométricas são de uso limitado, sem atributos que especifiquem o que elas representam. Portanto, uma tabela de registros fará o armazenamento de suas propriedades, atributos para cada formato primitivo no shapefile. Os shapes (formas geométricas), unidos a esses atributos geram uma grande quantidade de representações em dados geográficos. Representações que possibilitam cálculos de precisão.

Na sua forma mais simples um shapefile é composto de três arquivos individuais obrigatórios para o armazenamento de dados que compreende um shapefile, são as extensões .shp, .shx e .dbf, que serão mencionados adiante. Existem mais oito arquivos opcionais, principalmente voltados para um melhor desempenho.

Os arquivos obrigatórios são:

  • Shp: Os principais dados estão armazenados nesse arquivo, ou seja, os dados de referências geográficas.
  • Shx: É um arquivo de índice utilizado para percorrer os pontos do shapefile.
  • Dbf: Onde são registrados os atributos para cada forma, sendo armazenados no formato dBase, ou o opcional xBase que é variação do formato original dBase.

Opcionais:

  • Sbn: Este é um arquivo binário de índice espacial de formato não documentado, sendo somente utilizado pelo software da ESRI. Uma vez que o arquivo shp contém todas as informações que necessita para a análise de dados, o arquivo sbn não é necessário.
  • Prj: Utiliza um arquivo texto para descrever as projeções usadas. Esse texto é fundamental para entender as informações contidas no shp.
  • Fbn: Índice espacial, unicamente de leitura de recursos para shapefile.
  • Ain: Tabela de atributos de um tema ou índice de atributo para um campo ativo na tabela.
  • Ixs: Índice de geocodificação para leitura e escrita de shapefile.
  • Mxs: Índice de geocodificação para leitura e escrita de shapefile no formato Odb.
  • Atx: Índice de atributo para o arquivo dbf na forma de shapefile.
  • Cpg: Especifica páginas de código dbf, identificando a codificação de caracteres a se utilizado. Os arquivos obrigatórios (.shp,.shx,.dbf), seguem uma sequência, isto é, o primeiro arquivo shp, corresponde ao primeiro registro no shx e no dbf e assim por diante.

Geotools – Como Surgiu

Segundo Hall (2008), GeoTools é uma biblioteca open source codificada em Java. Essa biblioteca fornece métodos para manipulação de dados geoespaciais, que são utilizados na implementação de Sistemas de Informação Geográfica (SIG).

A Sun lançou a primeira versão pública de Java em 1995 (HALL,2008), no mesmo ano em que o desenvolvedor do GeoTools, James Macgill, iniciou seu mestrado em SIG na Universidade de Leeds, no Reino Unido. Em 1996, tornou-se evidente que a libertação do Java, estava vindo para mudar a face da navegação na Web. Contudo, a plataforma também estava sendo utilizado por Macgill para visualizar resultados na detecção de cluster espacial. Com um crescente número de projetos no Centro de recém-formados pela Center for Computational Geography (CCG) da Universidade de Leeds, tornou-se necessário o mapeamento, o espectador Macgill, que simplesmente o havia construído visando o sucesso na conclusão de seu doutoramento, a pesquisa foi ampliada e o projeto GeoTools nasceu.

Uma das áreas de interesse inicial na investigação do CCG foi a detecção de cluster espacial. Este é o processo onde um programa é executado para determinar se a contaminação de uma forma específica de câncer, por exemplo, se é agrupado no espaço ou não. No início foram utilizados métodos como a máquina de análise geográfica (GAM). Eram relativamente fáceis de usar, os métodos mais complexos com base em flocagem boids estavam sendo investigadas. Isso levou Macgill a desenvolver um sistema de mapeamento básico em Java que pode ler e exibir shapefiles representados geograficamente, e ao mesmo tempo ser capaz de mover representações geométricas sobre a superfície do mapa com rapidez e facilidade.

Desde o início do projeto GeoTools, os desenvolvedores consideraram a fonte do código, algo que deve ser desenvolvido e compartilhado abertamente. O GeoTools nasceu em um ambiente universitário, e como as universidades da Grã-Bretanha na década de 1990 focaram-se estreitamente nas comercializações de pesquisas, o licenciamento de software real teve inúmeras implicações legais e administrativas. Assim, foi decidido dar ao GeoTools uma comunidade de desenvolvimento livre, permitindo-lhe atingir seu potencial sem ser envolvido em burocracia.

O interesse principal foi, e continua a sendo, produzir resultados consideráveis. Isto era extremamente difícil de conseguir no campo emergente da ciência computacional, na geografia geral e computacionais, em particular durante a década de 1990. GeoTools foi escrito em parte para evitar este problema, permitindo que todos baseiem suas experiências no mesmo código.

Código fonte

Construímos uma aplicação de exemplo utilizando a IDE Eclipse, baixe aqui os fontes.

A aplicação desenvolvida baseia-se em exibir mapas carregados tanto de um shapefile quanto de um banco de dados PostGIS. Foi utilizada a biblioteca do GeoTools para fazer a manipulação dos dados geográficos.

Conclusão

Desde o início deste projeto, nossa vontade era abordar um tema atual para que pudéssemos aplicar de forma prática os conhecimentos adquiridos neste curso, então a partir de pesquisas para a escolha do tema, nos deparamos como o geoprocessamento, tecnologia que vem trazendo comodidade ao nosso dia-a-dia, optamos, então, pelo desenvolvimento de um aplicativo em Java, já que a intenção inicial e a única certeza, mesmo quando o tema do projeto ainda não estava definido, era a de trabalhar no desenvolvimento de um projeto que envolvesse esta linguagem de programação. Então, surgira a oportunidade de envolver o geoprocessamento no projeto que manteria o objetivo inicial de trabalhar na área de desenvolvimento e ao mesmo tempo abordar este assunto , que  tem grande destaque neste projeto, já que a mesclagem dos dois assuntos originariam num SIG.

Aplicam-se os conceitos introdutórios de geoprocessamento, para os assuntos que envolvem a utilização do mesmo, como cartografia, posicionamento global, datuns entre outros, o que aborda informações geográficas para facilidade na manipulação de dados geográficos. Também aborda o GeoTools, complemento a linguagem de programação Java, além de shapefiles e PostGIS, tecnologias que armazenam dados georreferenciados.

Observados todos os assuntos e tecnologias apresentadas, conclui-se que o aplicativo desenvolvido atinge os objetivos para o qual foi projetado e abre margens para implantação de projetos mais sofisticados na área de Tecnologia da Informação, visando maior aplicabilidade na representação e manipulação de dados geográficos.

Tópicos Abordados

  • 1 – Introdução.
  • 1.1 – Motivação.
  • 1.2 – Objetivos e escopo do trabalho.
  • 1.3 – Organização do Trabalho.
  • 2 – Conceitos Introdutórios de Geoprocessamento.
  • 2.1 – Cartografia.
  • 2.1.1 – Elipsóide.
  • 2.2 – Coordenadas geográficas.
  • 2.3 – Datum.
  • 3 – Geoprocessamento.
  • 3.1 – Histórico.
  • 3.2 – Definição.
  • 3.3 – SIG.
  • 4 – Shapefiles.
  • 5 – PostGIS.
  • 5.1 – Instalação.
  • 5.2 – Geração de scripts SQL para carga de dados presentes nos Shapefiles.
  • 5.3 – Criando um novo banco para armazenar dados geográficos.
  • 5.4 – Função AddGeometryColumn.
  • 6 – GeoTools.
  • 6.1 – Como surgiu.
  • 6.2 – Código aberto.
  • 6.2.1 – Open Standards.
  • 6.2.2 – Open Source.
  • 6.2.3 – Open Science.
  • 6.3 – OGC.
  • 7 – Exemplo de implementação com GeoTools.
  • 7.1 – Dependências.
  • 7.1.1 – GeoTools.
  • 7.1.2 – JAI.
  • 7.1.3 – PostGIS.
  • 7.2 – MapContex.
  • 7.3 – FeatureSource.
  • 7.3.1 – Importando de um Shapefile.
  • 7.3.2 – Importando do Banco de dados.
  • 7.4 – CQL.
  • 7.5 – Style.
  • 7.6 – JMapFrame.
  • 8 – Conclusão.
  • 8.1 – Trabalhos Futuros.

 

 

 


Categorias: Java, Programação | Tags: , , , , ,  | Autor: Paulo Collares | Data da Postagem: 15/março/2012 | Nenhum comentário

Deixe seu comentário