Tag bash

Cartobash

Em nosso dia a dia, produzimos muitos dados cartográficos. A SIGMA, apesar de uma pequena empresa, tem contratos de grande volume para produção de dados vetoriais cartográficos, seja através de interpretação de imagens, seja através de técnicas de geoprocessamento.

Como trabalhamos basicamente com tecnologias livres, conseguimos automatizar um pouco o processo, facilitando a criação dos bancos de dados onde estes dados serão armazenados, como a geração de “projetos padrões” que são distribuídos para os colaboradores do projeto.

Para este fim, utilizamos muito SQL e scripts bash. Só para constar, nosso ambiente de produção cartográfica conta com:

  • QGis 2.2 Valmiera;
  • PostgreSQL 9.1 e PostGIS 2.0.1;
  • Django 1.6;
  • Tornado;

Os softwares dispensam muita apresentação, mas o QGis é nossa ferramenta default de geoprocessamento, sendo utilizada pelos gerentes e analistas para produção cartográfica, conectados diretamente no banco de dados PostgreSQL.

Com o Django, criamos uma aplicação Python que consulta diversos logs que geramos durante a digitalização dos dados e os publica com notificações do tipo push para um painel em tempo real, que fica em uma televisão na área de produção – onde todos os analistas e gerentes podem acompanhar o progresso do projeto, minuto a minuto.

Automatizamos diversas tarefas, dentro do escopo de cada projeto, mas basicamente as seguintes estão presentes para todos os projetos de produção:

  • Validação topológica de dados poligonais (sobreposição e vazios);
  • Validação de validade geométrica (somente para dados poligonais, afinal, apenas polígonos podem ser inválidos);
  • Validação topológica de dados lineares, respeitando topologias do tipo arco-nó;
  • Auditoria de transações;
  • Instalação de novos bancos de dados;
  • Realização de backups em nuvem;
  • Acompanhamento de progresso;
  • Relatórios de problemas cartográficos (tickets criados pelos gerentes e analistas, bem como quantos são resolvidos e criados diariamente);
  • Exportação de dados do banco para shapefiles e File Geodatabases;

Para gerenciar tudo isto foi criado o Cartobash. É um repositório (ainda privado – sorry pessoal) no github que contém diversas stored procedures, scripts bash, projetos padrão e funcionalidades diversas para ajudar o gerente de cada projeto a administrá-lo.

Um exemplo legal, é a forma que utilizamos para construção de um novo banco de dados. O Cartobash, nos dá toda a infraestrutura básica, como usuários, permissões, esquemas personalizados, auditoria e tudo mais que é comum entre projetos. O que não é comum entre projetos, é fornecido através de um diretório, informado pelo usuário e o helper faz o restante.

./instalar_banco.sh localhost 5432 teste2 <usuario> <senha> <caminho_scripts_modelo> > ~/Desktop/log.txt

Esta linha de comando dispara a função de instalação do banco, gerando um log correspondete. O procedimento de instalação deixa a critério do usuário os modelos principais e auxiliares, bem como uma lista de camadas e suas validações a serem executadas. Todas as camadas poligonais já são marcadas por padrão para validações topológicas e as lineares são deixadas a cargo do usuário.

Além disso, a própria instalação agenda no crontab do usuário do banco de dados as tarefas periódicas de validação e backup, não sendo necessário refazer isto na mão.

Vocês devem estar se perguntando como exportamos para File Geodatabases no Linux. Bem, acontece que a ESRI lançou uma API para Linux que permite a criação, edição e leitura dos mesmos. A GDAL/OGR usa esta API e permite estas operações em softwares como QGis e demais.

Nossos script de exportação, através da OGR, consegue criar um modelo de geodatabase e o popula através da mesma linha de comando – facilitando ainda mais as entregas para os clientes.

Ficamos por aqui! Caso tenham dúvidas ou queiram saber mais, entrem em contato!

O repositório está disponível aqui: https://gitlab.sigmageosistemas.com.br/cartohelper/cartobash

Um abraço!

Em nosso dia a dia, produzimos muitos dados cartográficos. A SIGMA, apesar de uma pequena empresa, tem contratos de grande volume para produção de dados vetoriais cartográficos, seja através de interpretação de imagens, seja através de técnicas de geoprocessamento. Como trabalhamos basicamente com tecnologias livres, conseguimos automatizar um pouco o processo, facilitando a criação dos