Caros Utilizadores, graças a interoperabilidade do QGIS actualmente podemos associar o QGIS com o software estatístico open source R. O R é muito versátil e é expansível para outras linguagens sendo normalmente utilizado em estatística e análise de dados (data mining).
O objectivo deste artigo é explicar a sua instalação, configuração com o QGIS, compreensão da nomenclatura e a demonstração de um pequeno exemplo. Espero que seja útil para a vossa rotina diária.
Este artigo foi elaborado tendo como base o SO Windows 7 64-bits com o Instalador OSGeo4W 32-bits QGIS Chugiak 2.4 e o software R 3.1.1.
Instalação
Para começarmos a usar o R com o QGIS é necessário fazer a sua transferência. Pode efectuá-la através de um dos vários mirrors (servidores) disponíveis do projecto. Para este artigo, usámos o servidor da Faculdade de Ciências da Universidade do Porto. Estando neste página escolha o link que diz Download for Windows (a opção base). Em seguida, use o link base e transfira o R clicando no link Download R 3.1.1 for Windows (Figura 1).
Configuração com o QGIS
Após a instalação do R no seu computador, é necessário que indique ao QGIS onde é o directório do R. Para isso, tem de ir ao menu Processamento > Opções e configuração (Figura 2).
Aparecerá uma janela de diálogo denominada de opções de processamento, onde deverá expandir a opção de Fornecedores, e em seguida as opções do separador R scripts (Figura 3).
O caminho padrão usado normalmente é o C:\Program Files\R\R-3.1.1\
Após inserir o directório poderá dizer ao QGIS se pretende ou não usar a versão de 64 bits. Para finalizar clique na opção Activate. No caso do R scripts folder (pasta dos seus scripts R) deixe o directório padrão.
Concluída esta configuração, conseguirá ver no menu processamento as ferramentas relacionadas com o R. Dentro dessas ferramentas existem alguns scripts criados por utilizadores e que vêm por defeito na instalação do QGIS. Para criar o seu próprio script R, vá a R Scripts, clique em Tools e Create New Script R (Figura 4).
Ao clicar na ferramenta Create New Script R, aparecerá uma janela de diálogo onde poderá começar a escrever o seu código. Na figura 5, é apresentada a janela de diálogo do script e os seus respectivos botões.
Uma das coisas interessantes deste menu processamento, é a possibilidade de criarmos um separador ajuda que vai acompanhado com o script depois de ser guardado. Isto permite aos outros utilizadores perceberem qual a finalidade do script (Figura 6).
Criar a ponte entre o QGIS e o Script R
Actualmente existe um conjunto de código base para que os scripts sejam interpretados no QGIS e no menu Processamento, e que iremos descrever a seguir:
- # → Serve para declarar um comentário (útil para programadores que querem perceber o código)
- ## → Declara uma variável (todas as linhas começam com duplo cardinal)
- ##QGIS-PT=group → Declaração do grupo onde se insere o algoritmo
- ##nome_variavel=vector → Declaração de uma variável tipo vector, se no seu caso for um raster basta substituir vector por raster
- ##atributo_da_tabela=Field Layer → Declaração de uma variável que usa um atributo de uma camada
Podemos também indicar que tipo de variável esperamos:
- ##nome_variavel=string → Declaração da variável como sendo uma cadeia de texto
- ##nome_variavel=number → Declaração da variável como sendo do tipo número
- ##nome_variavel=boolean → Declaração da variável como sendo do tipo booleano
- library(‘gdal’) → Declara que packages R são necessários para correr o script R. Nota: se um pacote exigido pelo scriptnão estiver instalado na directoria do R, o QGIS vai automaticamente descarregá-lo à internet (através do software R). Se não tiver permissões de administrador na pasta do R ou não tiver uma ligação à internet poderá não conseguir instalar os pacotes necessários e ocorrerá um erro de escução do script, podendo resultar em saídas em branco.
Agora é necessário definir que tipo de ficheiro de saída que desejamos:
- ##showplots → Esta declaração permite gerar gráficos recorrendo às funções R (ex.: plot(), hist(), etc…)
- ##ficheiro_saida=output vector → Esta declaração permite que o ficheiro de saída seja uma camada vectorial, poderá também alterar o vector por raster se desejar que a saída seja uma camada raster
Após estas declarações definidas poderá inserir o seu código R, com as suas respectivas variáveis e poderá guardar o seu script. Resumidamente, o script tem o seguinte corpo:
##nome_grupo_algoritmos= group ##nome_variavel = vector ou raster library('pacote R a ser usado para correr o script') Código do Script R ##showplots ##ficheiro_saida= ouput vector
Exemplo de criação de um script
Foi criado um simples script R para que os utilizadores tenham uma ideia do fluxo de trabalho. Para este exemplo foram usadas as Áreas Ardidas no período de 2000 a 2008 disponibilizadas pelo ICNF em formato shapefile.
##QGIS_PT=group ##camada= vector ##showplots ##ano= field camada ##hectares= field camada plot(camada[[ano]], camada[[hectares]], main="Areas Ardidas",xlab="Ano",ylab="hectares")
Outro aspecto interessante, é a possibilidade de integrar os nossos scripts R no modelador gráfico e criar uma cadeia de algoritmos com os scripts previamente criados (Figura 8).
Podemos ainda, utilizar o nosso script R para o processamento em lote, como é mostrado na figura 8.
Notas finais
É preciso perceber que este artigo é meramente um simples exemplo da potencialidade da integração do R com o QGIS.
Existem alguns bugs conhecidos para a versão 32-bits e 64-bits no Windows, nomeadamente o R Output em branco (mas geram os resultados correctos se forem guardados na pasta de destino). Os bugs podem ser seguidos em http://hub.qgis.org/issues/7643 e em http://hub.qgis.org/issues/9203.
Verifque se os pacotes do R estão no directório apropriado, pois se isso não acontecer (ex.: permissão de pasta), o QGIS não vai conseguir executar scripts de R e notificá-lo-á como estando em falta.
Fontes consultadas
[1] https://conservationecology.wordpress.com/2013/08/14/port-your-r-scripts-to-qgis-using-sextante/
[2] http://www.geotribu.net/node/719
[3] http://www.r-bloggers.com/getting-raster-histogram-in-qgis-using-sextante-and-r/
[4] http://cran.r-project.org/doc/manuals/r-release/R-intro.html
[5] http://www.icnf.pt/portal/florestas/dfci/Resource/doc/cart/ar-ard-00-08