` `

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

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

Modeler

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

  1. Definição dos dados 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 seleccionando como vão usar esses ficheiros 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 matricial

  • Camada vectorial

  • Cadeia de texto

  • Campo da tabela

  • Tabela

  • Extensão

  • Número

  • Booleano

  • Ficheiro

Faça duplo clique em qualquer um, e será exibida uma janela de 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 utilizador irá ver quando executar o modelo) ou outros mais. Por exemplo, quando adiciona um valor numérico, como aparece na próxima figura, além da descrição do parâmetro é necessário definir o valor por defeito e o intervalo de valores válidos.

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

Model Parameters Definition

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

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

Model Parameters in canvas

Pode também adicionar ficheiros 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.

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

Model Inputs

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.

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

Model Algorithm parameters

Como pode ver, existem algumas diferenças. Em vez da caixa de saída do ficheiro ser usada para configurar o caminho do ficheiro 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 ficheiro 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 ficheiro de saída, que será aquele que o utilizador irá ver quando executar o modelo.

A selecçã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.
  • Numerical values. Literal values can be introduced directly in the text box. But this text box is also a list that can be used to select any of the numerical value inputs of the model. In this case, the parameter will take the value introduced by the user when executing the model.
  • String. As in the case of numerical values, literal strings can be typed, or an input string can be selected.
  • 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 selecção do utilizador cada vez que o modelo é executado. Para definir o valor para este parâmetro, introduza o nome do campo directamente na caixa de texto, ou usa a lista para seleccionar a entrada do campo de tabela que já está adicionada no modelo. A validade de um campo seleccionado irá ser verificado no seu processo de execução.

Em todos os casos, irá encontrar um parâmetro adicional denominado de Algoritmos Parent 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 parent do actual, 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.

Once all the parameters have been assigned valid values, click on [OK] and the algorithm will be added to the canvas. It will be linked to all the other elements in the canvas, whether algorithms or inputs, that provide objects that are used as inputs for that algorithm.

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 actualizados automaticamente. Pode ampliar ou afastar usando a roda do rato.

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.

Guardando e e carregando os modelos

Use the [Save] button to save the current model and the [Open] button to open any model previously saved. Models are saved with the .model extension. If the model has been previously saved from the modeler window, you will not be prompted for a filename. Since there is already a file associated with that model, the same file will be used for any subsequent saves.

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

Os modelos guardados na pasta modelos (a pasta padrão quando é pedido o nome do ficheiro para guardar o modelo) irá aparecer na caixa de ferramentas na ligação correspondente. Quando a caixa de ferramentas é chamada, ele procura na pasta modelos por ficheiros com a extensão :file:`.model`e carrega os modelos guardados. 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 rato num algoritmo na área que representa o modelo, irá ver o menu contexto como é mostrado a seguir:

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

Modeler Right Click

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

../../../_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.

Select the new values and then click on the [OK] button as usual. The connections between the model elements will change accordingly in the modeler canvas.

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.

../../../_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 ficheiros de ajuda do modelo e a meta-informação

You can document your models from the modeler itself. Just click on the [Edit model help] button and a dialog like the one shown next will appear.

../../../_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. Seleccione 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 correcta, 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.

Additionally, you will see some algorithms in the modeler that are not found in the toolbox. These algorithms are meant to be used exclusively as part of a model, and they are of no interest in a different context. The ‘Calculator’ algorithm is an example of that. It is just a simple arithmetic calculator that you can use to modify numerical values (entered by the user or generated by some other algorithm). This tool is really useful within a model, but outside of that context, it doesn’t make too much sense.