Visualizar dados dos Censos 2011 com o QGIS
Felizmente parece que algumas coisas vão mudando no nosso país no
que toca ao acesso a dados. A Base Geográfica de Referenciação da
Informação (BGRI), que outrora foi paga (e bem paga), está
agora disponível a todos até ao nível da subsecção estatística e com um
total de 122 variáveis dos censos 2011 (organizados por população
residente, população presente, famílias, alojamento e edifícios). A página para download, permite descarregar os dados totais para Portugal, ou por regiões e concelhos.
O zip descarregado contém diversos ficheiros, nomeadamente um shapefile (shp, shx e dbf) com os poligonos das subsecções estatísticas e um ficheiro de texto (csv) contendo os valores das variáveis dos censos 2011 (assim como uma nota explicativa das mesmas).
A página de ajuda refere que é possível abrir estes dados recorrendo a software open source, como o QGIS ou gvSIG, mas não exemplifica como fazê-lo. A tarefa, embora não seja difícil, obriga a uns quanto passos. Vamos ver quais são.
Preparar o CSV
Por alguma razão (provavelmente para, ao abrir como folha de cálculo, impor o tipo string), no ficheiros csv, todos os valores do campo GEO_COD contêm um apóstrofo (‘) no início, que impossibilitam a ligação aos dados geográficos, sendo necessário eliminá-los. Para este tipo de tarefas uso geralmente o editor de texto Geany, mas pode ser feito em qualquer editor de texto através da funcionalidade “substituir”, deixando o campo “substituir por” vazio. Felizmente só este campo contém apóstrofos, sendo portanto possível eliminá-los de uma só vez em todo o documento.
Por defeito, o QGIS (através do OGR) lê todos os campos do csv como sendo do tipo texto (string). No entanto, se quisermos definir explicitamente o tipo de dados de cada campo, podemos usar uma técnica que aprendi com o Hugo Martins. Na mesma pasta, basta criar um ficheiro de texto com o mesmo nome que o csv, mas com a extensão .csvt, e numa só linha, separado por virgulas e dentro de aspas, especificamos cada um dos tipos de dados dos campos (Integer, Real, String, Date (YYYY-MM-DD), Time (HH:MM:SS+nn) e DateTime (YYYY-MM-DD HH:MM:SS+nn)).
Para o caso dos ficheiros da BGRI2011, o ficheiro .csvt será qualquer coisa assim.
Abrir os ficheiros no QGIS
A abertura dos ficheiros no QGIS pode ser feita usando o botão ”Adicionar nova camada vectorial”. Para evitar problemas com acentos e cedilhas devemos escolher a codificação “latin1″. Através do botão exibir, chegamos a outro menu onde podemos indicar a localização dos ficheiros. Depois de escolher como tipo de ficheiro “Todos os ficheiros”, podemos seleccionar o ‘shp’ e o ‘csv’ ao mesmo tempo (pressionando o Ctrl) e terminando por clicar em “Abrir” nos dois menus.
Depois de abertos os ficheiros, há que definir o sistema de coordenadas de referência correcto para a camada dos dados geográficos, que, tal como podemos ver pelos metadados, para portugal continental é o ETRS89/PT-TM06 (EPSG:3763). Isso é feito clicando com botão direito sobre a camada e escolhendo “Set Layer CRS”. A forma mais fácil de encontrar o sistema desejado é introduzir o seu código EPSG no campo do filtro.
Se abrirmos a tabela de atributos da camada de polígonos, podemos verificar que contém todas as variáveis dos censos 2011, que podemos usar para produzir mapas temáticos.
Nota: “bgri11″ é o campo que detém o código da subsecção estatistica, mas poderia usar-se outro nível de informação desde que combinasse os campos e se dissolvesse os polígonos de antemão.
O zip descarregado contém diversos ficheiros, nomeadamente um shapefile (shp, shx e dbf) com os poligonos das subsecções estatísticas e um ficheiro de texto (csv) contendo os valores das variáveis dos censos 2011 (assim como uma nota explicativa das mesmas).
A página de ajuda refere que é possível abrir estes dados recorrendo a software open source, como o QGIS ou gvSIG, mas não exemplifica como fazê-lo. A tarefa, embora não seja difícil, obriga a uns quanto passos. Vamos ver quais são.
Preparar o CSV
Por alguma razão (provavelmente para, ao abrir como folha de cálculo, impor o tipo string), no ficheiros csv, todos os valores do campo GEO_COD contêm um apóstrofo (‘) no início, que impossibilitam a ligação aos dados geográficos, sendo necessário eliminá-los. Para este tipo de tarefas uso geralmente o editor de texto Geany, mas pode ser feito em qualquer editor de texto através da funcionalidade “substituir”, deixando o campo “substituir por” vazio. Felizmente só este campo contém apóstrofos, sendo portanto possível eliminá-los de uma só vez em todo o documento.
Por defeito, o QGIS (através do OGR) lê todos os campos do csv como sendo do tipo texto (string). No entanto, se quisermos definir explicitamente o tipo de dados de cada campo, podemos usar uma técnica que aprendi com o Hugo Martins. Na mesma pasta, basta criar um ficheiro de texto com o mesmo nome que o csv, mas com a extensão .csvt, e numa só linha, separado por virgulas e dentro de aspas, especificamos cada um dos tipos de dados dos campos (Integer, Real, String, Date (YYYY-MM-DD), Time (HH:MM:SS+nn) e DateTime (YYYY-MM-DD HH:MM:SS+nn)).
Para o caso dos ficheiros da BGRI2011, o ficheiro .csvt será qualquer coisa assim.
1
| "integer","string","string","integer","string","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer","integer" |
A abertura dos ficheiros no QGIS pode ser feita usando o botão ”Adicionar nova camada vectorial”. Para evitar problemas com acentos e cedilhas devemos escolher a codificação “latin1″. Através do botão exibir, chegamos a outro menu onde podemos indicar a localização dos ficheiros. Depois de escolher como tipo de ficheiro “Todos os ficheiros”, podemos seleccionar o ‘shp’ e o ‘csv’ ao mesmo tempo (pressionando o Ctrl) e terminando por clicar em “Abrir” nos dois menus.
Depois de abertos os ficheiros, há que definir o sistema de coordenadas de referência correcto para a camada dos dados geográficos, que, tal como podemos ver pelos metadados, para portugal continental é o ETRS89/PT-TM06 (EPSG:3763). Isso é feito clicando com botão direito sobre a camada e escolhendo “Set Layer CRS”. A forma mais fácil de encontrar o sistema desejado é introduzir o seu código EPSG no campo do filtro.
Unir as tabelas de atributos
Já só falta relacionar as duas camadas. Para isso devemos ir às propriedades da camada dos polígonos (botão direito do rato sobre a camada), e no separador união(joins), adicionar uma nova união. No menu seguinte há que definir como camada a unir a tabela resultante do csv, o campo a unir como “geo_cod” e o campo alvo como “bgri11″ (contém o código da subsecção estatística).Se abrirmos a tabela de atributos da camada de polígonos, podemos verificar que contém todas as variáveis dos censos 2011, que podemos usar para produzir mapas temáticos.
Nota: “bgri11″ é o campo que detém o código da subsecção estatistica, mas poderia usar-se outro nível de informação desde que combinasse os campos e se dissolvesse os polígonos de antemão.
Definir a representação de pixeis sem valor em mosaicos de imagens VRT
Como está muito bem descrito neste artigo do Duarte Carreira, a criação de catálogos virtuais (vrt) e respectivas pirâmides (overviews) usando o GDAL, permite facilitar e melhorar a performance de visualização de mosaicos de imagens.
Usando o comando gdalbuildvrt para criar o catálogo virtual, as áreas sem valor (NoData) são, por defeito, substituídas pelo valor 0. Em certos caso, o efeito pode não ser o mais desejável.
No entanto, através dos parâmetros -hidenodata e -srcnonata, é possível definir outros valores para os pixeis sem valor. Por exemplo, no comando seguinte escolhi os valores RGB [255, 255, 255] (branco). E o resultado foi uma imagem com o “fundo” branco.
Se pretendermos que pixeis sem valor não sejam representados, podemos usar o parâmetro -addalpha, tornando-os transparentes.
Usando o comando gdalbuildvrt para criar o catálogo virtual, as áreas sem valor (NoData) são, por defeito, substituídas pelo valor 0. Em certos caso, o efeito pode não ser o mais desejável.
gdalbuildvrt mosaico1.vrt --optfile listadeimagens.txt
No entanto, através dos parâmetros -hidenodata e -srcnonata, é possível definir outros valores para os pixeis sem valor. Por exemplo, no comando seguinte escolhi os valores RGB [255, 255, 255] (branco). E o resultado foi uma imagem com o “fundo” branco.
gdalbuildvrt mosaico2.vrt -hidenodata -srcnodata "255 255 255" --optfile listadeimagens.txt
Se pretendermos que pixeis sem valor não sejam representados, podemos usar o parâmetro -addalpha, tornando-os transparentes.
gdalbuildvrt mosaico3.vrt -hidenodata -addalpha --optfile listadeimagens.txt
Fonte http://sigsemgrilhetas.wordpress.com/