Metodologia para cartografia de larga escala

Boa noite pessoal!

Hoje vamos falar um pouco sobre a metodologia da SIGMA referente a cartografia de larga escala.

Bem, a definição de larga escala pode variar de projeto para projeto, mas geralmente estamos falando de áreas com milhares de objetos geográficos (ou feições) em uma escala de até 1:10.000.

Vou comentar primeiramente da nossa experiência e logo depois irei comentar das ferramentas que desenvolvemos para auxiliar os analistas de geoprocessamento e a gerência a ter uma visão completa do projeto.

Nossa experiência

A SIGMA Geosistemas já executou diversos projetos que podem ser considerados como cartografia de larga escala. Em uma conta rápida, estimo aproximadamente entre 60 e 70 mil km2 mapeados, utilizando apenas tecnologias livres, distribuídos entre os diversos projetos executados.

Uma breve descrição sobre nosso stack tecnológico:

  • PostgreSQL + PostGIS;
  • pgpool;
  • QGIS (diversas versões);
  • cartobash;
  • X9 (monitor de progresso);

O PostgreSQL com o PostGIS, é sem dúvida, o banco de dados geoespacial mais capaz do mercado. Ele é nossa principal arma para este tipo de projeto, pois é um banco de dados:

  1. Robusto;
  2. Cheio de funcionalidades importantes para análise espacial;
  3. Permite centenas de conexões simultâneas, sem problemas;
  4. Fácil de configurar e manter;

Junto ao PostgreSQL, para ajudar a manter estas centenas de conexões simultâneas (cada usuário pode abrir mais de uma conexão ao banco), usamos o pgpool. Ele é responsável por criar um pool de conexões, sem termos a necessidade de recriamos cada conexão a todo momento. Isto nos traz robustez e aumenta o desempenho.

Em cima disto tudo, a estrela: QGIS, de preferência uma versão recente.

O cartobash e o X9 são ferramentas abertas que a SIGMA desenvolveu para auxiliar nesta tarefa.

O cartobash é uma ferramenta escrita basicamente em shell script, que automatiza diversas partes da construção de novos bancos de dados, configuração de logging, backups e issues.

Além disso, o cartobash gerencia versões padrões de projetos QGIS, permitindo que cada analista gere seu arquivo de projeto, insira rapidamente sua senha e configure as diversas camadas daquele projeto.

O X9 é um experimento escrito em Python e Django para ajudar a monitorar o que está sendo feito pelos analistas, em tempo real.

Ele consulta a base de dados e a base de logs, para determinar qual é o total de edições realizadas naquele dia, qual é a porcentagem de progresso do projeto, entre outras métricas interessantes.

Descrita as ferramentas, passamos para a metodologia!

Metodologia

Em temos gerais, passamos pelas seguintes etapas:

  1. Definição da abrangência geográfica do projeto;
  2. Definição do modelo de dados;
  3. Construção do banco de dados com o cartobash;
  4. Setup de logging, issues, áreas de trabalho e funcionalidades de validação automatizadas;
  5. Construção do projeto padrão QGIS;
  6. Delegação de permissão para os analistas;
  7. Mãos a obra!isto

Para o início de todos os projetos, o primeiro passo é determinar seu modelo de dados e sua abrangência geográfica.

De posse dessas informações, já saberemos o quão complexo será a construção e digitalização dessa base de dados.

Neste ponto, com o modelo de dados principal, tabelas relacionados (ou auxiliares) prontas, configuramos o logging, issues e áreas de trabalho.
isto
Esta etapa é (e deve ser) automatizada. Tudo isto é feito pelo cartobash. Dividimos o projeto em sub-áreas, utilizando algumas funcionalidades do PostGIS e delegamos as mesmas para os analistas.

As issues também são configuradas nesta etapa. As issues ou não-conformidades são dados geográficos que podem ser utilizados pelos analistas e revisores, para marcar áreas que não estejam de acordo com o padrão de qualidade esperado.

Dependendo do tipo de projeto, configuramos as isto validações automatizadas, como regras topológicas, executadas a cada minuto, podendo ser visualizadas pelos analistas em tempo real.

UFA! O cartobash nos ajuda até aí, então é bem fácil de realizar isso tudo. Basta rodar um comando bash e correr para o abraço.

A parte complicada, é construção do projeto do QGIS. O QGIS permite a construção de formulários customizados, com regras avançadas de relacionamento entre tabelas.

Por exemplo, um tipo de feição possui um campo chamado CLASSE, que só pode ter um dos valores: A, B ou C. Usando as ferramentas do QGIS permitem que você configure e limite as opções do analista, apenas a estas três.

Este é um exemplo simples, mas a partir desta configuração, o projeto padrão é disseminado entre os analistas, que inserem seu próprio usuário e senha do banco de dados.

A partir deste momento, devemos por a mão na massa.

Divisão em sub-áreas

Existe um desafio complexo ao trabalhar com projetos massivos como os que trabalhamos. A sensação de progresso experimentada pelos analistas é bastante pequena, quando não delegamos áreas menores para seus trabalhos.

Caso eles tenham liberdade para escolher as áreas de trabalho, sem uma limitação menor, a sensação de avanço do trabalho é pequena e acabam se desmotivando.

O segredo que permitiu aumentar a produtividade e aumentar a sensação de progresso entre os colaboradores foi a divisão do projeto em áreas menores, assinalando as mesmas a cada analista.

Apesar de funcionar, pode trazer alguns problemas, como a eventual correção de divergências entre as grades, mas em nossa experiência, essas correções são pequenas – fazendo esta estratégia valer a pena.

Conclusão

Neste post tentamos trazer para vocês um pouco nossa experiência com projetos de cartografia de larga escala.

Qual é a sua experiência? Comente conosco!

E você? tem algum projeto de cartografia de larga escala e precisa de ajuda? Conte conosco.

Um abraço!

Conexão QGIS – PostGIS

Hoje vamos falar sobre uma ferramenta importante do QGIS, usada para conexão com banco de dados PostgreSQL/PostGIS.

Com esta ferramenta você poderá gerenciar seus bancos de dados, e as principais formas de interação são:

  • Importar Shapefile para o banco de dados;
  • Exportar uma tabela do banco de dados para diversos formatos;
  • Executar queries complexas e carregá-las como camada diretamente no QGIS;

Para criar a conexão devemos acessar o menu Camada > Adicionar Camada > PostGIS.

Será aberta a tela a seguir:

Adicionar Camada Postgis

Ao clicar em Novo será aberta a tela de configuração de conexão onde deverão ser incluídos os dados de conexão. O QGIS suporta a conexão tanto com servidores locais, quanto na rede interna, até mesmo na internet.

Veja abaixo a tela de conexão com o banco de dados.

Configuração de conexão com o banco

Após inserir os dados você poderá clicar em Testar conexão para verificar se os dados inseridos estão corretos e clicar em OK para salvar sua conexão.

Se tudo estiver correto ao clicar no botão Conectar serão listadas todas as tabelas que possuem colunas geométricas.

A partir daí você poderá adicionar as camadas aos seus projetos, porém esta funcionalidade ainda não permite o gerenciamento de Banco de Dados, ela é o primeiro passo para gerenciá-lo.

Lista de Tabelas Postgis

Para acessar a ferramenta de gerenciamento de Banco de dados você deverá acessar o menu Banco de Dados > Gerenciador BD > Gerenciador BD.

Ao clicar você verá a tela abaixo, note que se expandir o menu do PostGIS irá ver a conexão criada.

Tela Gerenciado Banco de Dados

Você poderá navegar entre as tabelas de seu banco de dados, note que no nome de cada tabela existe um ícone mostrando qual é o tipo geométrico da tabela. Caso ela não possa geometria, o QGIS utiliza um outro ícone para renderizá-la.

Nas abas Info, Tabela e Pré-visualizar você poderá ter acesso rápido aos dados do banco sem a necessidade de carregar a camada em seu projeto.

Pré-visualização de camadas

Existem três ferramentas que são muito úteis para a manipulação dos dados no PostGIS.

Ferramentas

São elas:

  • Janela SQL

Janela SQL

Através da Janela SQL você poderá utilizar qualquer query para consultar seu banco de dados, inclusive utilizando funções do Postgis.

SELECT
id,
ST_AsText(geometria) as geometria.
ST_IsValidReason(geometria) as tipo_erro
FROM uso_solo
WHERE ST_IsValid(geometria_ = FALSE)

No exemplo o objetivo é listar os polígonos com geometria invalida para que possam ser corrigidos.

Foram utilizadas as funções:

ST_GeomFromText para retornar as coordenadas em texto;

ST_IsValidReason para mostrar qual o erro que gerou a geometria invalida e

ST_IsValid para listar somente as geometrias inválidas.

Além de listar estes polígonos é possível carregar o resultado como uma camada, basta marcar a opção Carregar como uma nova camada, para isto é necessário que exista no resultado de sua query uma coluna com um valor único e uma coluna com o valor geométrico, selecione os campos e clique no botão Carregar agora!, e uma nova camada será carregada em seu projeto.

Abaixo figura da camada carregada com o erro encontrado:

Camada carregada Qgis

  • Importar Camada/arquivo

Janela de Importação

Esta ferramenta importa um arquivo do tipo shapefile do QGIS diretamente para o PostGIS. Não é necessário criar a tabela previamente, será criada juntamente com as colunas e os tipos definidos no arquivo shapefile.

  • Exportar Camada/arquivo

Exportar Camada

Esta ferramenta faz o oposto da importação, com ela é possível exportar uma tabela do banco de dados para um arquivo shapefile ou em algum dos formatos suportados.

Quem trabalha com com geoprocessamento ou dados geográficos e quer conhecer um pouco mais do PostgreSQL/PostGIS esta é uma ferramenta incrível para começar, pois irá lhe poupar algumas horas de trabalho visualizando os resultados das queries direto no mapa.

Conferência Internacional de QGIS

Bom dia pessoal,

O QGIS, como sempre, vem arrebentando a boca do balão. Em maio, será realizada a 1º (acredito ser a primeira, já que não existe indicação de “versão”) conferência internacional de QGIS, a ser realizada em Copenhagen, na Dinamarca, com o apoio da Universidade de Copenhagen.

Será a primeira conferência a juntar os desenvolvedores, usuários e educadores que trabalham com QGIS! As expectativas são grandes!

A timeline da conferência é a seguinte:

  • Call for presentation – 10 março 2015;
  • Conferência de usuários – 18, 19 maio 2015;
  • Conferência de desenvolvedores – 20, 21 e 22 de maio 2015;

Como sempre, o pessoal precisa de uma força com a organização e registro dos participantes. Caso você seja um possível patrocinador, entre neste link e veja o que você pode ajudar! A Universidade de Copenhagen está fornecendor a infraestrutura e acomodações para os participantes.

Na parte de patrocínio, o evento precisa basicamente de:

  • Grana para rodar um livestream das apresentações e tutoriais;
  • Grana para a tradução simultânea;
  • Grana para tocar o QGIS (desenvolvimento);

É uma ótima oportunidade de conhecer os usuários mais ativos do projeto e desenvolvedores, e claro, quem sabe, contribuir com:

  • tradução;
  • desenvolvimento;
  • testes;
  • triagem de bugs (classificação de severidade, categoria, etc);
  • produção de conhecimento;

Confira o website da conferência!

PS: Quem puder ir e for, dê um alô para nós do Brasil!

QGIS 2.8 lançado

Mal chegou a versão 2.6 do QGIS, já lançaram a versão 2.8 e um ou dois dias depois a 2.8.1 – codename Vienna (Wien, em alemão)! Este lançamento, muito rápido da versão 2.8.1 se deu porque foi descoberto um bug sério no Composer, rapidamente identificado e corrigido, que impedia o usuário de trocar as fontes de textos.

Porque tantas versões? Bem, para começo de conversa, a versão 2.8 é um marco nos lançamentos do QGIS, pois ela representa um versão LTR (Long Term Release) que terá correções de bugs durante um ano, garantidas.

Isso é importante para organizações, como a nossa devido as velocidade das mudanças que o mundo do software livre consegue imprimir em seus lançamentos. Isto significa que podemos contar que a versão 2.8.1 irá funcionar, sem alterações, apenas com correções de bugs, durante no mínimo, 1 ano completo.

A versão 2.6, trouxe avanços muito importantes para a ferramenta, como pode ser visto no changelog. Funcionalidades como:

  • Novos Widgets de edição;
  • Criação de campos virtuais (com a calculadora de campo);
  • Novas expressões para calculadora de campo;
  • Melhorias na legenda;
  • Possibilidade de desligar um ou mais itens classificados de uma camada (ah, quero ver apenas os rios classificados como > 10m), sem a necessidade de aplicar um filtro;
  • Diversas melhorias no Composer para construção de layouts e mapas finais;

Mas não podemos parar por aí, pois estamos entrando na era do LTR. As melhorias da 2.8.1, são ainda melhores, como:

  • Expressões diretamenta na tabela de atributos (basicamente como no Excel);
  • Framework de integração contínua e testes automatizados (através desta funcionalidade, que não aparece para o usuário, o time do QGIS consegue verificar com antecedência, se algum bug está aparecendo ou se alguma funcionalidade está se comportando de forma estranha);
  • Melhorias na caixa de medição;
  • Prefixos para camadas com join;
  • Criação de layers temporários em memória;
  • Integração de novas ferramentas de digitalização, antes só possível através de plugins;
  • Uso de predicados espaciais para consultas de localização;
  • Suporte ao Qt5 (Qt5 é a biblioteca responsável pelas telas e outras coisitas más do QGIS);

Oficialmente, a SIGMA, passará a utilizar o QGIS 2.8.1 em todos os seus ambientes, pelos motivos já expostos acima:

  • Mais bugs corrigidos;
  • Mais funcionalidades;
  • Long Term Release;

Sugiro aos usuários que façam o upgrade. O QGIS fica melhor a cada versão, se mostrando um projeto robusto e que não irá sair de cena tão cedo, como os competidores esperam.

Fica aí a dica.

Abraços

Mal chegou a versão 2.6 do QGIS, já lançaram a versão 2.8 e um ou dois dias depois a 2.8.1 – codename Vienna (Wien, em alemão)! Este lançamento, muito rápido da versão 2.8.1 se deu porque foi descoberto um bug sério no Composer, rapidamente identificado e corrigido, que impedia o usuário de trocar as fontes