QGIS E O Software Estatístico R

14 de Agosto, 2014

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).

Área de transferência do software R

Figura 1 - Área de transferência do software R

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).

Menu Processamento

Figura 2 - Menu Processamento

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).

Opções e Configurações do Menu Processamento

Figura 3 - Opções e Configurações do Menu Processamento

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).

Janela de criação do Script R

Figura 4 - Janela de criação do Script R

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.

Janela de diálogo do Script

Figura 5 - Janela de diálogo do Script (1 – Guardar ; 2 – Guardar como; 3 – Editar ajuda do script; 4 – Correr Algoritmo; 5 – Cortar; 6 – Copiar; 7- Botões de Desfazer e Refazer)

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 (Figura6).

Janela Ajuda do Script

Figura 6 - Janela Ajuda do Script

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:

1
2
3
4
5
6
7
8
9
##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.

1
2
3
4
5
6
##QGIS_PT=group
##camada= vector
##showplots
##ano= field camada
##hectares= field camada
plot(camada[[ano]], camada[[hectares]], main="Areas Ardidas",xlab="Ano",ylab="hectares")
Saída Gráfica

Figura 7 - Saída Gráfica

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).

Integração no modelador gráfico do Menu Processamento

Figura 8 - Integração no modelador gráfico do Menu Processamento

Podemos ainda, utilizar o nosso script R para o processamento em lote, como é mostrado na figura 8.

Processamento em Lote

Figura 9 - Processamento em Lote

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 (Um obrigado à Alexandra Glória por ter ajudado na tradução para português)

[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



Categorias: Estatística, R


Blog desenvolvido com Octopress