O modelador gráfico

The graphical modeler allows you to create complex models using a simple and easy-to-use interface. When working with a GIS, most analysis operations are not isolated, but rather part of a chain of operations instead. Using the graphical modeler, that chain of processes can be wrapped into a single process, so it is as more convenient to execute as a single process later on a different set of inputs. No matter how many steps and different algorithms it involves, a model is executed as a single algorithm, thus saving time and effort, especially for larger models.

O modelador pode ser aberto a partir do menu processamento.

O modelador tem uma área de trabalho onde a estrutura do modelo e o sue fluxo de trabalho são representados como está exibido. Na parte esquerda da janela, um painel com dois separadores podem ser usados para adicionar novos elementos ao modelo.

Figure Processing 17:

../../../_images/modeler_canvas.png

Modeler

A criação de um modelo envolve dois passos:

  1. Definição dos dados de entrada necessários. Estes dados de entrada serão adicionados na janela de parâmetros, para que o utilizador possa configurar os seus valores quando executa o modelo. O modelo por si é um algoritmo, portanto os parâmetros da janela é gerado automaticamente como acontece em todos os algoritmos disponíveis na infraestrutura de processamento.

  2. Definição do fluxo de trabalho. Usando os dados de entrada do modelo, o fluxo de trabalho é definido adicionando algoritmos e selecionando como vão usar esses arquivos de entrada ou de saída gerados por outros algoritmos que já existem no modelo

Definição das entradas

O primeiro passo para criar um modelo é definir as entradas que necessita. Os seguintes elementos são encontrados no separador Entradas no lado esquerdo da janela do modelador:

  • Camada raster

  • Camada vetorial

  • Cadeia de texto

  • Campo da tabela

  • Tabela

  • Extensão

  • Número

  • Booleano

  • Arquivo

Faça duplo clique em qualquer um, e será exibido um diálogo para definir as suas características. Dependendo do parâmetro, o diálogo irá conter apenas um elemento básico (a descrição, que será o que o usuário irá ver quando executar o modelo) ou outros. Por exemplo, quando quer adicionar um valor numérico, como aparece na próxima figura, além da descrição do parâmetro tem um conjunto de valor por defeito e um intervalo de valores válidos.

Figure Processing 18:

../../../_images/models_parameters.png

Model Parameters

Para cada entrada adicionada, um novo elemento é adicionado ao enquadramento do modelador.

Figure Processing 19:

../../../_images/models_parameters2.png

Model Parameters

Pode também adicionar arquivos de entrada arrastando o tipo de entrada a partir de uma lista e largar no enquadramento do modelador, na posição onde quer que fique.

Definição do fluxo de trabalho

Uma vez as entradas definidas, é tempo de definir os algoritmos que vamos aplicar. Os algoritmos podem ser encontrados no separador Algoritmos, agrupados na mesma forma que estão na caixa de ferramentas.

Figure Processing 20:

../../../_images/models_parameters3.png

Model Parameters

To add an algorithm to a model, double-click on its name or drag and drop it, just like it was done when adding inputs. An execution dialog will appear, with a content similar to the one found in the execution panel that is shown when executing the algorithm from the toolbox. The one shown next corresponds to the SAGA ‘Convergence index’ algorithm.

Figure Processing 21:

../../../_images/models_parameters4.png

Model Parameters

Como pode ver, existem algumas diferenças. Em vez da caixa de saída do arquivo ser usada para configurar o caminho do arquivo para as camadas e tabelas de saída, é usado apenas uma caixa de texto simples. Se a camada gerada pelo algoritmo é apenas um resultado temporário, este será usado como o arquivo de entrada de outro algoritmo e não será mantido como resultado final, mas não edite essa caixa de texto. Introduzindo alguma coisa nela, significa que o resultado é final, e o texto que forneceu será a descrição para o arquivo de saída, que será aquele que o usuário irá ver quando executar o modelo.

A seleção do valor para cada parâmetro é também um pouco diferente, uma vez que existem diferenças importantes entre o contexto do modelador e a caixa de ferramentas. Vamos ver como é introduzido os valores para cada tipo de parâmetro.

  • Layers (raster and vector) and tables. These are selected from a list, but in this case, the possible values are not the layers or tables currently loaded in QGIS, but the list of model inputs of the corresponding type, or other layers or tables generated by algorithms already added to the model.
  • Valores numéricos. Valores literais podem ser introduzidos diretamente na caixa de texto. Mas esta caixa de texto é também uma lista que pode ser usada para selecionar qualquer valor numérico de entrada do modelo. Nesse caso, o parâmetro irá tomar o valor introduzido pelo utilizador quando executado o modelo.

  • Cadeia de texto. Como no caso dos valores numéricos, as cadeias de texto podem ser introduzidas, ou uma cadeia de texto de entrada pode ser selecionada.

  • Campo da Tabela. Os campos de uma tabela origem ou camada não podem ser conhecidas na altura do seu desenho, uma vez que dependem da seleção do usuário cada vez que o modelo é executado. Para definir o valor para este parâmetro, introduza o nome do campo diretamente na caixa de texto, ou usa a lista para selecionar a entrada do campo de tabela que já está adicionada no modelo. A validade de um campo selecionado irá ser verificado no seu processo de execução.

Em todos os casos, irá encontrar um parâmetro adicional denominado de Algoritmos Parentes que não está disponível quando é chamado o algoritmo a partir da caixa de ferramentas. Este parâmetro permite que possa definir a ordem de como os algoritmos são executados, definindo explicitamente um algoritmo como parente do atual, que irá força-lo a executá-lo antes.

When you use the output of a previous algorithm as the input of your algorithm, that implicitly sets the previous algorithm as parent of the current one (and places the corresponding arrow in the modeler canvas). However, in some cases an algorithm might depend on another one even if it does not use any output object from it (for instance, an algorithm that executes a SQL sentence on a PostGIS database and another one that imports a layer into that same database). In that case, just select the previous algorithm in the Parent algorithms parameter and the two steps will be executed in the correct order.

Uma vez todos os parâmetros estiver relacionados a valores válidos, clique no botão [OK] e o algoritmo irá ser adicionado ao enquadramento. Será ligado a todos os outros elementos do enquadramento, sejam eles algoritmos ou arquivos de entrada, o que irá fornecer objetos que foram usados como arquivos de entrada para esse algoritmo.

Os elementos podem ser arrastados para diferentes posições dentro do enquadramento, para alterar a forma como é exibida a estrutura do módulo e tornar mais claro e intuitivo. As ligações entre os elementos são atualizadas automaticamente. Pode ampliar ou afastar usando a roda do mouse.

You can run your algorithm any time by clicking on the [Run] button. However, in order to use the algorithm from the toolbox, it has to be saved and the modeler dialog closed, to allow the toolbox to refresh its contents.

Salvando e carregando os modelos

Use o botão [Salvar] para salvar o modelo atual e o [Abrir] para abrir qualquer modelo anteriormente salvo. Os modelos são salvos com a extensão .model. Se o modelo for previamente salvo da janela do modelador, não lhe irá ser solicitado por um nome de arquivo, uma vez que já existe um arquivo associado ao modelo, e será usado.

Antes de salvar o modelo, necessita de introduzir o nome e o grupo do modelo, usando as caixas de texto para parte superior da janela.

Os modelos salvos na pasta modelos (a pasta padrão quando é pedido o nome do arquivo para salvar o modelo) irá aparecer na caixa de ferramentas na ligação correspondente. Quando a caixa de ferramentas é chamada, ele procura na pasta modelos por arquivos com a extensão .model e carrega os modelos salvos. Uma vez que o modelo é um próprio algoritmo, este pode ser adicionado na caixa de ferramentas como qualquer outro algoritmo.

The models folder can be set from the Processing configuration dialog, under the Modeler group.

Os modelos carregados a partir da pasta modelos aparecem na caixa de ferramentas, mas também na árvore de algoritmos do separador Algoritmos da janela do modelador. Isto significa que pode incorporar o modelo como parte de um modelo maior, tal como adiciona qualquer outro algoritmo.

Editando um modelo

Pode editar o modelo que criou, redefinindo o fluxo de trabalho e as relações entre os algoritmos e os dados de entrada que defeniu no modelo.

Se clicar com o direito do mouse num algoritmo na área que representa o modelo, irá ver o menu contexto como é mostrado a seguir:

Figure Processing 22:

../../../_images/modeler_right_click.png

Modeler Right Click

Selecionando a opção Remover irá fazer com que o algoritmo seja removido. Um algoritmo só pode ser removido apenas se existir outros algoritmos dependentes dele. Isto é, se não estiver sendo usado num arquivo de saída de um algoritmo usado como arquivo de entrada diferente. Se tentar remover um algoritmo que tenha outros que dependam dele, uma mensagem de aviso igual à que vê aqui em baixo:

Figure Processing 23:

../../../_images/cannot_delete_alg.png

Cannot Delete Algorithm

Selecting the Edit option will show the parameters dialog of the algorithm, so you can change the inputs and parameter values. Not all input elements available in the model will appear in this case as available inputs. Layers or values generated at a more advanced step in the workflow defined by the model will not be available if they cause circular dependencies.

Selecione novos valores e de seguida clique no botão [OK] como comum. As ligações entre os elementos do modelo irão alterar de acordo com o enquadramento do modelador.

A model can be run partially, by deactivating some of its algorithms. To do it, select the Deactivate option in the context menu that appears when right-clicking on an algorithm element. The selected algorithm, and all the ones in the model that depend on it will be displayed in grey and will not be executed as part of the model.

Figure Processing 24:

../../../_images/deactivated.png

Model With Deactivated Algorithms

When right-clicking on an algorithm that is not active, you will instead see a Activate menu option that you can use to activate it back.

Editando os arquivos de ajuda do modelo e a meta-informação

Pode documentar os seus modelos a partir do próprio modelador. Basta apenas clicar no botão [Editar ajuda do modelo] e o diálogo como aquele que irá aparecer.

Figure Processing 25:

../../../_images/help_edition.png

Help Edition

No lado direito irá ver uma página simples HTML, criada usando a descrição dos parâmetros de entrada e de saída do algoritmo, juntamente com itens adicionais como uma descrição geral do modelo ou o seu autor. A primeira vez que abre o editor da ajuda, todas as ajudas estão vazias, mas pode editá-los usando os elementos do lado esquerdo do diálogo. Selecione um elemento na parte superior e escreva a descrição na caixa de texto em baixo.

Model help is saved as part of the model itself.

Exporting a model as a Python script

As we will see in a later chapter, Processing algorithms can be called from the QGIS Python console, and new Processing algorithms can be created as well using Python. A quick way of creating such a Python script is to create a model and then to export is as a Python file.

To do so, click on the Export as Python script button. Select the output file in the file chooser dialog, and Processing will write in it the Python commands that perform the same operations defined in the current model.

Sobre os algoritmos disponíveis

Poderá notar que alguns algoritmos podem ser executados a partir da caixa de ferramentas mas não aparecem na lista de algoritmos disponíveis quando está a desenhar o modelo. Para ser incluído no modelo, o algoritmo deve ter uma semântica correta, assim como ligações apropriadas a outros fluxos de trabalho. Se um algoritmo não tiver uma boa semântica bem definida (por exemplo, se o número de camadas de saída não são conhecidas), portanto não é possível usá-lo dentro do modelo, e não aparece na lista na janela do diálogo do modelador.

Adicionalmente, irá ver algoritmos no modelador que não se encontram na caixa de ferramentas. Esses algoritmos são para ser usados exclusivamente como parte do modelo, e eles não têm interesse em outro contexto diferente. O algoritmo ‘Calculadora’ é um exemplo disso. É apenas uma simples calculadora aritmética que pode usar para modificar valores numéricos (introduzidos pelo utilizador ou gerados por outro tipo de algoritmo). Estas ferramentas são realmente úteis dentro do modelo, mas fora do contexto, não fazem sentido.