Article image
Fernando Araujo
Fernando Araujo28/09/2023 13:59
Compartilhe

Bancos de Dados Espaciais - POSTGIS

  • #Banco de dados relacional

Olá, dev!     

 

Atualmente, o uso de dados georreferenciados em sistemas e aplicativos virou uma característica essencial para oferecer serviços aos usuários baseados nas suas localizações.

É o caso de aplicativos que necessitam da localização dos usuários, como Uber, Waze e Google Maps e de outros de comércio eletrônico, que podem oferecer produtos e serviços personalizados aos seus usuários, dependendo da sua localização.

Este artigo vai tratar do uso de bancos de dados espaciais, adequados para realizar o armazenamento, manipulação e visualização de dados georreferenciados.

 

Sumário:

1.   Introdução 

2.   Dados espaciais

3.   Bancos de dados espaciais – POSTGIS

4.   Consultando dados espaciais (com Pytthon)

5.   Visualizando dados espaciais - QGIS

6.   Considerações finais 

7.   Referências 

 

1 – Introdução

 

No início da era dos computador, ele foi aplicado para automatizar diversas atividades, começando com o uso comercial e científico, processando dados financeiros e de cálculos numéricos complexos.

 

Aos poucos, outras atividades foram beneficiadas pelo uso do computador, como o setor administrativo, uso pessoal, e o setor de entretenimento.

Muitas tarefas antes feitas com o uso de documentos impressos foram automatizadas com dados digitais, processados pelos computadores.

A crescente quantidade de dados usados nestas atividades exigia um melhor controle e gerenciamento. Portanto, foram criados os bancos de dados, que armazenavam um grande volume de dados, com manipulação segura.

Usados inicialmente para armazenar dados alfa numéricos de aplicações comerciais e científicas, os SGBDs (Sistemas de Gerenciamento de Bancos de Dados) iam sendo aplicados em outras atividades.

OBS: um banco de dados é um conjunto de dados organizados, armazenados em um SGBD, que é o sistema que executa esta tarefa. Um SGBD pode ter vários bancos de dados diferentes armazenados nele.

Uma destas atividades foi a análise de mapas, necessárias amem várias áreas, como rodovias, redes de energia, gás, censo, controle de doenças entre outras.

A análise de mapas impressos, muitas vezes representando grandezas diversas, era trabalhosa e demorada. Por isso, suas informações foram integradas aos sistemas computacionais dando início aos sistemas de SIG - Sistemas de Informações Geográficas – do original GIS (Geographic Information Systems).

Estes sistemas tinham como característica a associação de uma determinada grandeza com a sua localização geográfica no globo terrestre.

Desta forma, o usuário poderia cadastrar as localizações e associá-las a diversas grandezas, que poderiam ser visualizadas em camadas diferentes, cada uma podendo ser ligada ou desligada, dependendo da utilização (ver

figura)

image

Os sistemas geográficos tratam de informações de localização (latitude e longitude) e sua visualização se dá por meio destes dados.

 

Este artigo vai tratar dos sistemas de banco de dados espaciais, adequados para o armazenamento e uso de dados geográficos.

 

2 – Dados espaciais

 image

Como foi dito, a necessidade de se analisarem mapas impressos que tratavam de diversas grandezas levou ao surgimento dos sistemas de informações geográficas (SIG).

Os SGBDs adequados para armazenarem e manipularem estes tipos de dados deveriam ser preparados para armazenar e manipular dados geográficos. 

Os dados espaciais podem ser de vários tipos:

  • Localização (latitude e longitude);
  • Figuras geométricas para representar localizações como aeroportos, rodovias, ferrovias, quadras, edifícios, etc.
  • Grandezas associadas aos locais representados, como temperatura, vegetação, relevo, lojas, hospitais, etc.

 

 

Além disso, a visualização destes dados deve ser feita por meio de mapas, com a facilidade de se fazer aproximação/afastamento (zoom in/out), movimentação lateral (translação), ativação/desativação de camadas (layers) de temas diferentes, etc.

 

Os dados espaciais podem envolver formas geométricas, como contornos de regiões (cidades, países, açudes, etc.), rodovias, ferrovias, rios, açudes, redes de gás , energia e água, que devem ser representadas como grandezas vetoriais, para não perderem qualidade quando ampliadas em operações de aproximação (zoom in).

 

Tornando mais complexos os dados espaciais, muitas aplicações, como o Google Maps, oferecem meios para se visualizar as construções presentes nas ruas e rodovias dos mapas apresentados, em formato 3D.

 

Portanto, os SGBDs precisam tratar de modelagem, perspectivas e cobertura de um prédio pode sofrer com outro em frente, desta forma se transformando em verdadeiros sistemas de computação gráfica ou de jogos eletrônicos.

 

Além disso, os dados podem incluir grandezas matriciais (raster), como imagens de satélite ou de aerofotogrametria, que devem ser associadas corretamente com a superfície da Terra.

 

Atualmente, é muito comum que aplicativos e sistemas solicitem (ou capturem) a localização dos usuários para lhe oferecerem produtos e serviços mais personalizados, como Uber, Waze, Google Maps e outros, além daqueles de comércio eletrônico.

 

É claro que as empresas gigantes já descobriram esse filão e até têm disputado bravamente pela escolha dos usuários.

 

Segundo artigo da Infomoney [1], o caso mais visível desta competição foi uma declaração de Tim Cook, CEO da Apple, que admitiu publicamente, em 2012, ter feito um aplicativo realmente ruim de mapas (o Maps), que substituiu o aplicativo da concorrente Google (o Google Maps) nos aparelhos da empresa.

 

Ele se desculpou pela frustração dos usuários da Apple com a troca e por ter quebrado o compromisso de sempre oferecer produtos de primeira linha.

 

O aplicativo Maps, da Apple, foi um tremendo fracasso e, segundo a matéria, ele aprasentou erros históricos:

  • Digitando Londres, o usuário era direcionado a uma cidade no Canadá;
  • Um parque na Irlanda era apontado como um aeroporto;
  • O obelisco de Washington estava localizado do lado errado da rua.

O resultado é que o executivo responsável foi demitido e eles tiveram que refazer um novo aplicativo de mapas do zero!

 

           Os dados espaciais precisam de sistemas para serem armazenados, acessados e visualizados. Para isso existem os bancos de dados espaciais, como você verá a seguir.

 

 

3 – Bancos de Dados Espaciais - POSTGIS

 image

Um sistema de banco de dados espaciais deve permitir o armazenamento, manipulação, pesquisas e visualização dos dados georreferenciados. Um dos SGBDs mais comuns é o PostgreSQL, com a sua extensão POSTGIS.

 

Segundo artigo da AWS [2], o PostgreSQL é um SGBD objeto-relacional, de código aberto, avançado e de classe empresarial, com suporte a SQL e JSON. O PostgreSQL tem mais de 20 anos de história e usado como fonte primária de armazenamento em aplicações web, mobile, geoespacial e analíticas, inclusive pela AWS.

Ele oferece suporte a tipos de dados avançados e oferece desempenho observados nos concorrentes Oracle e SQL Server.

 

Matéria da [3] descreve o POSTGIS como uma extensão do SGBD PostgreSQL, que adiciona suporte a objetos geográficos ao SGBD, permitindo consultas por localização feitas na linguagem SQL.

 

Além de oferecer dados de geolocalização (latitude, longitude e altitude), o POSTGIS também oferece suporte a dados geométricos, 2D e 3D. Estas primitivas permitem desenhar os símbolos nos mapas relacionados a locais como aeroportos, rodovias, ferrovias, hospitais, escolas, etc.

 

O POSTGIS também permite a criação de camadas (layers) de dados diferentes, como uma camada de rodovias, outra de hidrografia, mais uma de construções, etc. cada camada pode ser ativada (habilitada) ou desativada (desabilitada), permitindo sua visualização ou não no mapa, bem como pesquisas que associem os dados de uma camada com outra.

 

Segundo Regina, [4], as pesquisas sobre os dados armazenados no PostgreSQL, com sua extensão POSTGIS, podem ser feitas em SQL diretamente no SGBD, mas também podem ser realizadas por linguagens externas, como Python, Java, R, Julia, Javascript, etc.

 

Já a visualização dos dados pode ser feita pelo aplicativo QGIS, que permite visualizar dados geográficos, símbolos, construções 3D e representar grandezas como temperaturas, vegetações, etc. de forma realista.

 

4 – Consultas aos Dados Espaciais (com SQL e Python)

 

Os dados armazenados em um SGBD espacial podem ser consultados diretamente por meio da linguagem SQL, como pode ser visto no exemplo a seguir:

 

 

Já uma consulta por uma linguagem externa, como Python, pode ser feita a partir de uma linguagem do próprio SGBD chamada Procedural Language (PL), específica para cada linguagem (PL/Python, para Python), que poderia usar diretamente os comandos e funções do PostgreSQL.

 

Um exemplo de consulta feita em Python é visto a seguir:

 image

 

 

5 – Visualizando dados espaciais - QGIS

Segundos o manual em [5], o QGIS é um sistema de Informações geográficas de código aberto, iniciado em 2002, e que pode ser executado nas plataformas Windows, Unix e Mac.

Ele pode ler arquivos de dados geoespaciais de vários sistemas conhecidos do mercado e pode visualizar dados vetoriais, raster, permite fazer análises nos dados, fornecendo algoritmos e processamento destes dados.

Ele é utilizado para visualização de dados geoespeciais armazenados em outros SGBDs, como POstgreSQL com extensão POSTGIS.

 

Exemplos de visualização de dados desta forma são mostrados a seguir:

 image

image

 

5 - Considerações finais

 

O uso de dados georreferenciados atualmente tem sido essencial para alguns aplicativos como Uber e Google Maps. Além disso, a geolocalização também tem sido usada para oferecer produtos e serviços especializados para os usuários do comércio eletrônico.

 

Este artigo apresentou os dados espaciais, suas características e sistemas para armazená-los (PostgreSQL com a extensão POSTGIS), para realizar consultas (SQL ou PL/Python) e também para visualização de dados (QGIS).

 

O uso de dados georreferenciados vai continuar aumentando, pois os sistemas precisam oferecer produtos e serviços aos seus usuários de acordo com a sua localização.

 

A visualização deste tipo de dados está aproximando os sistemas SIG a verdadeiras plataformas de computação gráfica, gerando imagens realistas do nosso mundo real.

 

 

6 – Referências

 

[1] – Infomoney, A guerra dos mapas: por que esses apps são a nova frente de batalha das gigantes de tecnologia. Disponível em: <https://www.infomoney.com.br/negocios/a-guerra-dos-mapas-por-que-esses-apps-sao-a-nova-frente-de-batalha-das-gigantes-de-tecnologia/>. Acesso em: 27/09/2023.

 

[2] – AWS, What is PostgreSQL?. Disponível em: <https://aws.amazon.com/pt/rds/postgresql/what-is-postgresql/>. Acesso em: 27/09/20223.

 

[3] Towards data Science, Spatial data Science. Disponível em: <https://towardsdatascience.com/spatial-data-science-with-postgresql-postgis-2f941c8c367a>. Acesso em: 28/09/2023.

 

[4] Obe, Regina, POSTGIS in Action, 3rd Edition, Manning, 2021, New York.

 

[5] QGIS, Manual do Usuário. Disponível em: <https://docs.qgis.org/3.28/pt_BR/docs/user_manual/preamble/foreword.html>. Acesso em: 28/09/2023.

Compartilhe
Comentários (5)
Fernando Araujo
Fernando Araujo - 04/10/2023 08:47

Obrigado, Lígia!

O assunto é realmente fascinante!

A ideia do artiogo foi dar uma visão geral sobre os SGBDs espaciais, mas o tema merece outros artigos mais detalhados e específicos.

Já virou motivação para eu escrever mais um!

Lígia Garcia
Lígia Garcia - 03/10/2023 23:35

Eu simplesmente amei o artigo! Sou formada em Eng Florestal e ja trabalhei com ferramentas de SIG como Arcgis e Qgis, mas estou iniciando no mundo da ciência de dados e achei muito interessante como posso aplicar ambas as áreas em conjunto. Obrigada pelo conteúdo!

Fernando Araujo
Fernando Araujo - 28/09/2023 16:39

Obrigado a vocês, Luiz e Gabriel!

Eu andei um pouco fora das compertições de artigos, mas estou voltando agora.

Passei um período de correria com uns projetos novos e grandes que estão iniciando no meu trabalho.

Eu ainda tenho uns 5 artigos incompletos para concluir e publicar aqui, fora das competições.

Vou concluindo aos poucos, um de cada vez.

Quero completar 50 artigos publicados para fazer um resumo dessa trajetória aqui na DIO.

Aguardem novos artigos em breve!




Luiz Café
Luiz Café - 28/09/2023 14:09

Parabéns pelo seu artigo Fernando. É um assunto novo para mim que foi explicado de maneira brilhante mais uma vez. De fato o uso de Banco de Dados espaciais é uma alternativa importante para empresas como a Uber.

Gabriel Gregorio
Gabriel Gregorio - 28/09/2023 16:09

Que artigo top Fernando! Estávamos sentindo sua falta por aqui, fazia tempo que não via seus artigos.

Parabéns pelo artigo e por compartilhar sua experiência conosco *-*