sábado, 22 de janeiro de 2011

Instalando wktraster no ubuntu

Primeiramente, descarregue o postgis 1.5.2 (versão atual do ubuntu maverick) e o wktraster do site do postgis.
Para compilar tudo corretamente são necessárias:
libxml2-dev
postgresql-server-dev-8.4

Descompactando a pasta do postgis-1.5.2 executaremos:

./configure
make

Agora descompactaremos a pasta do wktraster. Nesse passo precisamos dizer para o wktraster onde está aquela pasta que compilamos o postgis.

./configure --with-postgis-sources=/home/mauriciodev/Downloads/carto/postgis-1.5.2
make
sudo make install 

O wktraster já está pronto. Agora falta carregar no banco.

su postgres
createdb wktraster
createlang plpgsql wktraster
psql -d wktraster2 -f /usr/share/postgresql/8.4/contrib/postgis-1.5/postgis.sql
psql -d wktraster2 -f /usr/share/postgresql/8.4/contrib/postgis-1.5/spatial_ref_sys.sql
psql -d wktraster -f /usr/share/postgresql/8.4/contrib/rtpostgis.sql
Pronto. Agora podemos carregar dados com o plugin do Quantum GIS.

Eclipse e Qt

Lembrando que minha IDE preferida é o Eclipse por sua versatilidade, comecei a procurar como fazer integração do Eclipse com a Qt. Essa ferramenta ajuda muito a desenvolver plugins em C++ para o QGIS.

O Eclipse tem uma extensão de integração com a Qt (Qt Eclipse Integration). Este software permite gerenciar o arquivo do qmake dentro do Eclipse.

Para instalar basta mesclar a pasta do Qt Eclipse Integration com a do Eclipse. O software já estará funcionando assim que o Eclipse for reiniciado. Recomenda-se executar o comando "eclipse -clean" para limpar o cache de extensões do Eclipse.

Podemos então criar um projeto indo em "File->New-> Qt Gui project". Esse projeto já é configurado com QMake. Ou seja, o arquivo .pro está lá pronto para ser alterado.

No caso do QGIS foram necessárias algumas alterações no arquivo ".pro".

TEMPLATE = lib
TARGET = QgsImageProcessing
QT += core \
    xml
HEADERS += qgsconvolutionui.h \
    qgsimageprocessingplugin.h
SOURCES += qgsconvolutionui.cpp \
    qgsimageprocessingplugin.cpp
FORMS += qgsconvolutionui.ui
RESOURCES += 
INCLUDEPATH += /usr/include/qgis
DEFINES += GUI_EXPORT= \
    CORE_EXPORT=

Na imagem a seguir fica clara a integração do Eclipse ao editar um arquivo ".ui" (muito parecido com o QtDesigner).

segunda-feira, 17 de janeiro de 2011

Viajando pelo Brasil com QGIS

Seu Software de SIG preferido agora também te ajuda nas viagens! Neste post mostro como traçar uma rota das rodovias brasileiras no QGIS e navegar utilizando imagens de satélite do GoogleMaps.
Primeiramente, vamos aos requisitos:
Dados: Banco Contínuo de 1:1.000.000 (disponivel no IBGE)
Softwares: Quantum GIS 1.6+ RoadGraph Plugin (disponivel em win32 e linux) + OpenLayers Plugin (disponivel através do repositório de plugins python)

Obs.: Vale lembrar que o RoadGraph Plugin será incluído no QGIS oficial na versão 1.7

Primeiramente, carregamos nossos dados. A camada de rodovias é chamada ST_Rodovias*. Quando o plugin está instalado (copiando-o para a pasta c:\osgeo4w\apps\qgis\plugins\ no caso do OSGeo4W), já aparece a caixinha de traçado de rotas no canto inferior esquerdo. Clicamos na origem e no destino e o plugin traçará nossa rota conforme a figura.

* Na escala 1.100.000 quase todas as pontes são pontos. Caso quiséssemos contar as pontes também, deveríamos editar a camda ST_Rodovias e incluir os objetos da camada ST_Ponte_Tunel.


Usando o botão direito do mouse sobre a camada "shortest path" podemos exportar para ShapeFile nossa rota. Faremos isso para poder reprojetá-la corretamente.

Agora, podemos carregar o plugin OpenLayers do QGIS.

E o resultado, conforme esperávamos, é uma visualização da rota traçada sobre imagens do Google Maps.

O grande poder desta solução é, por exemplo, descobrir quantos munícipios serão atravessados por estar rotas. Ou quantas cidades passarão a até 100km do percurso. Ou, conforme alguns amigos meus sempre sonharam: Qual é o comprimento total do trecho X ao trecho Y que eles possuem na base deles.
São análises possíveis por estarmos dentro de um software de sig com uma base de dados completa.

quarta-feira, 5 de janeiro de 2011

Postgis Raster Loader no QGIS


Esta semana foi lançada a versão 0.3 do plugin WktRaster para o Quantum GIS. A grande melhoria desta versão é o Loader. É uma interface simples para carregar as imagens no banco baseada no código escrito pelo pessoal do Postgis Raster.








No futuro, com as novas versões da GDAL este loader será incrementado com diversas funcionalidades permitidas pelo Postgis Raster. Por hora o único objetivo é colocar o dado no banco de uma maneira eficiente e simples.
O Paolo Cavalini está ajudando bastante nos testes com as versões recentes da GDAL e estamos observando que o Jorge Arevalo está preparando uma versão muito melhorada a ser publicada na GDAL 1.8.
Estaremos aguardando!

QGIS, Raster e Reprojeção

Reprojetar arquivos matriciais (raster) em tempo de execução (on-the-fly) sempre foi uma tarefa complicada para os desenvolvedores de softwares de SIG. O QuantumGIS, porém, teve uma abordagem diferente. Quando se trata de reprojetar um arquivo matricial ele simplesmente não faz. Isso porque até agora ninguém apontou uma técnica realmente vantajosa de reprojetar raster de maneira eficiente. Então... Como trabalhar?
Entre alguns companheiros temos a seguinte linha: "Nunca se reprojeta o raster on-the-fly". Quem tem muita informação sabe que processar a todo momento alguns gigabytes de memória é perda de tempo. Por isso sempre deixamos os arquivos matriciais já reprojetados para o sistema de referência que será trabalhado.

Se o usuário configurar o Quantum GIS para trabalhar no mesmo sistema de coordenadas que o raster, todos os vetores são reprojetados para este sistema, possibilitando trabalhar com vetores em outros sistemas de coordenadas.Na figura a seguir vemos a transformação "on the fly" habilitada e o projeto (Configurações -> Propriedades do Projeto) configurado para exibir informações em WGS 84 Latitude e Longitude.


 Como este é o mesmo sistema de coordenadas utilizado pelo arquivo raster do SRTM utilizado como exemplo, o software reprojetou os vetores (que estavam em EPSG: 900913 Google Mercator) para o sistema do projeto. Sendo este sistema o mesmo que o do raster, o raster é visualizado. Caso não seja o arquivo simplesmente não será exibido.
Na figura abaixo vemos o resultado da sobreposição quando o arquivo raster e o projeto estão no mesmo sistema de coordenadas mas os vetores não.