Docgen

Olá pessoal, boa tarde!

Estamos prestando uma consultoria à um órgão governamental que possui um banco de dados em PostgreSQL bastante extenso. Uma de nossas tarefas era documentar o banco de dados todo, incluindo a criação de um dicionário de dados compreensivo, com informações sobre as tabelas, views, procedures, etc.

Como o banco é grande, possuindo muitos objetos, decidimos criar uma solução simples em Python que conecta-se ao banco de dados e utilizando um template, escreve o dicionário para nós, baseados nos comentários existentes para cada objeto.

No PostgreSQL, acredito que quase todos os objetos do banco possuem um campo de comentário, ou seja, ao invés da documentação ficar somente no papel, ela fica diretamente armazenada no campo de comentário de cada objeto, podendo ser consultada por quem já tem permissão aquele determinado objeto. É uma ideia simples, mas funcional.

Para inserir os comentários em lote, geramos um arquivo .yaml estruturado, onde as descrições podem ser preenchidas e posteriormente sincronizadas com o banco de dados. Outro utilitário, gera a documentação no formato de um template, podendo o mesmo ser customizado.

Ainda precisa de algumas mudanças e criação de testes para ficar um pouco mais modular, mas basicamente conseguimos ler todo o catálogo do PostgreSQL e gerar esta documentação em pouquíssimo tempo.

Outras funcionalidades veem a mente:

  • Geração de diagramas de forma automatizada;
  • Geração de relatórios de problemas comuns de banco de dados (ex: chave única em que é permitido valor nulo, etc);
  • Refatoração do código para funcionar com outros bancos de dados;

O docgen foi um projeto interessante de ser feito. Todo escrito em Python e agilizou bastante nossa vida. Fiquem a vontade para conhecê-lo no Github.

10 anos de OpenStreetMaps

Olá pessoal,

O OpenStreetMaps é uma excelente plataforma com dados abertos (licença específica da fundação do OSM) que cobre, literalmente o planeta todo.

Preparando para o aniversário de 10 anos do OSM (já passou, Agosto de 2014) o MapBox fez um mapa muito legal mostrando a evolução da digitalização dos dados e importações.

Algumas coisas interessantes:

  • No Brasil o grosso das informações surgiu após 2008;
  • Estados Unidos foram mapeados muito rapidamente, principalmente pela existência do dataset TIGER – uma base gratuita de ruas;
  • Os mapas nunca param de evoluir. Se vocês prestarem atenção, mesmo depois de um grande número de vias estarem digitalizados, mudanças e refinamentos sempre estão rolando.

Deêm uma conferida no mapa aqui

Abraços!

CAD gratuito para manipulação de dados Geográficos

Para quem trabalha com Sistemas de Informações Geográficas e necessita manipular arquivos em formato CAD, sabe das limitações que existiam no mercado na dependência de utilização de software proprietário – seja para conversão ou edição destes arquivos. Hoje vamos falar de uma solução eficiente e fácil manipulação, e melhor de tudo, gratuito (sem essa de ficar com keygen, crack e coisas do tipo).

O Draftsight é um sistema desenvolvido pela Dassault Systèmes e pode ser usado por profissionais, empresas e estudantes para criar, editar e visualizar arquivos DWG, DXF, DWS e DWT. Pode ser instalado nos sistemas Windows, Linux e MAC, de maneira rápida e fácil.

Para aqueles com dificuldades no idioma inglês, o programa possui a tradução para o Português/BR, o que pode facilitar se você nunca utilizou o programa da AUTODESK. Caso já seja um usuário com certa experiência e vivência na plataforma em inglês, terá que se adequar caso sua instalação seja feita em português. Por exemplo: copiar feições e colar na posição original (mantendo as coordenadas de origem) será feito com o seguinte comando: colar@posiçãoorigem. Outros comandos também sofrerão alteração na maneira de “chama-los” pela linha de comando, mas nada que uma leitura rápida no manual do usuário e sites da web possa auxiliar.

Utilização:

1) Caso necessite apenas visualizar arquivos DWG e salvar como DXF para importar em programas de SIG, faça de maneira rápida e fácil (Abrir e Salvar Como..)

2) Agora se você é daquelas pessoas que gosta de organizar os dados(muitos dos desenhos em CAD sempre estão com feições em diversas camadas e sem nenhuma organização), deixando o desenho mais “limpo” e de fácil manipulação em ambiente SIG, edite os dados pelo programa e depois salve como DXF para utilizar nos principais programas de SIG que suportam esta extensão.
Para manipulação dos dados o Draft Sight possui uma ferramenta essencial (seleção inteligente), que o pessoal de SIG já está bem acostumado, que é a seleção de feições baseada consultas. Por exemplo, selecionar todas a feições que estão na camada QUADRAS; ou então selecionar todas as feições que possuem geometria polígono; selecionar todas as feições que possuem a cor azul.. e assim por diante… Essa ferramenta auxilia para organizar feições da base de dados que foram desenhadas sem nenhuma organização estruturada de camadas, utilizando estilos de linha e geometria para diferenciar as feições no desenho… Caso esta seja sua realidade, esta ferramenta de seleção inteligente será muito útil, pois seus dados serão importados no ambiente SIG de forma limpa…

Caso você seja um profissional que utiliza a plataforma CAD para manipulação de seus mapas e desenhos (principalmente pessoal da topografia, arquitetura e engenharia) o programa possui uma ferramenta interessante para exportar os desenhos que estão nas abas de layout para PDF, com um módulo específico para essa ação, sem necessidade de instalar uma impressora PDF no computador. E ainda, é possível exportar todas abas de Layout configuradas no desenho de uma única vez, acelerando o processo de impressão…

A utilização deste programa como auxilio para manipulação de arquivos geográficos em ambiente CAD deixará seu ambiente de trabalho mais completo, e melhor de tudo, de forma livre…

Em buscas pela web é fácil encontrar material sobre o Draftsight..

Site para Download do programa Draftsight.

Após a instalação, cadastre um email pra ativar o produto (mesmo na versão livre).

Traduzindo a documentação do PostGIS

Olá pessoal,

Existe um tremendo esforço atualmente para realizar a tradução da documentação do PostGIS. Anteriormente, este era um processo muito chato, que envolvia copiar arquivos, traduzir enormes parágrafos sem referências em um formato que não é muito familiar para muitas pessoas, o xml.

Em discussão com o time do PostGIS, conseguimos ajustar uma conta em um site especializado para isto, o Transifex. Dentro do Transifex, qualquer um pode criar uma conta pessoal ou de um projeto (nosso caso) e importar os arquivos brutos de documentação. O Transifex é inteligente, separando o que deve e o que não deve ser traduzido, permitindo a criação de múltiplas línguas “alvo” para a tradução.

Através dele, é possível administrar quais são os colaboradores, qual linguagem ele tem permissão para traduzir e estabelece processos formais de revisão, string por string.

Atualmente, temos as seguintes línguas e as porcentagens de tradução de cada uma:

  • Inglês – 100% (original);
  • Italiano – 36%;
  • Francês – 28%;
  • Espanhol – 26%;
  • Português Brasil – 17%;
  • Coreano – 6%;
  • Polonês – 8%;

Existem ainda mais umas dez línguas, mas sem nenhuma tradução.

Precisamos aumentar a margem de tradução para o Português. Embora nós, aqui na SIGMA, tenhamos traduzido um pouco por dia, o esforço é muito grande.

Ajude-nos! Crie uma conta no Transifex e solicite um login na página de tradução do PostGIS. Logo que possível, autorizo a tradução e basta mandar brasa.

Lembro ainda, que ajudar na tradução da documentação é uma boa fonte de aprendizado, já que você acaba se obrigando a ler toda a documentação que for traduzir. Existem coisas que eu mesmo nem sabia que existiam que aprendi através da tradução direta dos documentos.

Converter dados do PostGIS para File Geodatabase

Boa tarde pessoal,

Hoje iremos falar sobre como exportar os dados do PostGIS diretamente para um FileGDB utilizando nada mais do que a OGR, a ferramenta mais capaz de conversão de formatos que existe.

Independente se no linux ou Windows, você pode testar o suporte para a FileGDB API, usando:

ogrinfo --formats
Supported Formats:
 -> "ESRI Shapefile" (read/write)
     -> "MapInfo File" (read/write)
     -> "UK .NTF" (readonly)
     -> "SDTS" (readonly)
     -> "TIGER" (read/write)
     -> continua

Se a FileGDB, estiver disponível, você não precisa instalá-la.

Existem alguns passos importantes para que você consiga realizar esta exportação, principalmente no caso de sistemas operacionais Linux. Como a biblioteca FileGDB API, é proprietária da ESRI, ela não pode ser incluída na distribuição normal da GDAL/OGR, ou seja, precisamos instalar ela, antes de compilar nossa GDAL.

Vamos ao passo a passo:

  1. Faça download da API no site da ESRI;
  2. Descompacte-a no caminho /usr/local/lib/;
  3. Compile a GDAL, especificando o caminho da pasta no momento da compilação, através da flag –with-fgdb=/usr/local/lib/FileGDB_API
  4. Rode o comando “ogrinfo –formats” novamente para ver se o suporte está disponível;

Para utilizar a OGR para exportar os dados do PostGIS para um file geodatabase, você pode usar o comando ogr2ogr, com algumas opções. Vou dar um exemplo e explicar o que cada flag significa:

ogr2ogr -overwrite -nlt <LAYER_TYPE> -nln <NOME_TABELA_NOVA> -sql "SELECT * FROM <NOME_TABELA_BANCO>" -f "FileGDB" <CAMINHO_SAIDA.gdb> PG:"host=<SERVIDOR> port=<PORTA> dbname='<BANCO_DADOS>' user='<USUARIO>' password='<SENHA>'"

As opções:

  • -overwrite significa sobrescrever o File Geodatabase. Caso você exporte a mesma tabela duas vezes, ela será sobrescrita. Caso exporte duas tabelas diferentes, a ogr2ogr irá adicionar as Feature Classes ao mesmo geodatabase;
  • -nlt LAYER_TYPE: é o tipo da geometria;
  • -nçn NOME_TABELA_NOVA: é o nome que a tabela terá no File Geodatabase;
  • -sql: indica que você quer exportar os resultados de uma consulta SQL. Você pode ser criativo e criar consulta bem complexa antes da exportação;
  • -f “FileGDB”: formato de saída, FileGDB;
  • <CAMINHO_SAIDA.gdb>: caminho completo do FileGeodatabase de saída;
  • as outras opções são de conexão ao banco de dados do PostgreSQL;
  • lembrem-se, as variáveis estão listadas entre <>, que não devem aparecer na chamada;

Atualmente estamos usando esta solução para exportar dados para um ciente em FileGeodatabase, sem a necessidade de termos uma licença (bem cara) do ArcGIS Desktop (ou qual seja o nome que deram agora).

Uma outra boa notícia, é que estão desenvolvendo a Open FileGDB API. É uma implementação open-source, disponível também para a GDAL/OGR, mas que pelo momento é somente leitura. A API proprietária da ESRI suporta leitura e escrita.

Comentem no Facebook os exemplos de uso que vocês tem para a GDAL/OGR, uma ferramenta porreta.