Modo de utilização
Janela de configuração

Campos “Camada 1” e “Camada 2”
Os campos “camadas” exibem a lista das camadas carregadas, limitadas às tabelas geopackage. De fato, a versão atual só leva em consideração os dados armazenados em arquivos geopackage (gpkg).
Campos “Campo difuso 1” e “Campo difuso 2”
Depois de selecionar as camadas de entrada, esses menus suspensos exibem todos os campos com o sufixo _fuzzy de cada uma delas.
Tipo de operação espacial
Esta opção permite gerenciar a extensão espacial da camada resultante.

A opção interseção mantém na camada resultante a extensão correspondente à sobreposição das duas camadas de entrada. Para cada interseção, o atributo resultante é calculado a partir da função definida mais adiante. Mas isso implica que, se uma camada não tiver dados para uma área, essa área será ignorada na camada resultante. Em um processo que envolve várias agregações de extensão diferente, a camada resultante será significativamente reduzida. Além disso, a ausência de dados de uma área impedirá sua “recuperação” nas agregações posteriores.
A opção union mantém na camada resultante a extensão correspondente às duas camadas de entrada. Para cada área de sobreposição, o atributo resultante é calculado a partir da função definida mais adiante. Para as áreas em que uma das duas camadas não tem dados, o atributo resultante é calculado a partir da função definida mais adiante, considerando que o valor da camada ausente é “muito ruim”. Em um processo que envolve várias agregações de extensão diferente, a camada resultante não será reduzida. Além disso, a ausência de dados de uma área não impedirá sua “recuperação” nas agregações posteriores.
Nome da camada resultado
Você pode nomear a camada agregada livremente, mas ela terá como sufixo “_agg”.
Histórico das transformações
Sempre que uma transformação ou agregação é realizada pelo plugin, uma linha é adicionada a uma tabela de gerenciamento do histórico, metafuzzy, que é criada e mantida no geopacote de dados.

No caso de agregações difusas, os campos preenchidos são:
- field: o nome do campo agregado
- function: o tipo de operação espacial e a função selecionada com um código numérico representando a resposta a cada uma das três perguntas (1=muito bom, 5=muito ruim)
- params: os detalhes dos parâmetros numéricos usados para a geração das funções não listadas
- source1: o nome da camada fonte 1 e seu atributo
- source2: o nome da camada fonte 2 e seu atributo
Definir a função de agregaçãon

Você deve marcar uma resposta para cada uma das três perguntas.
Se você considerar que a inversão dos dois critérios altera suas respostas (assimetria dos critérios), marque a caixa Verificar simetria. Uma quarta pergunta permitirá que você insira sua resposta.

Procedimento para determinar a operação de agregação.
No caso da agregação de dois objetivos, existe um procedimento simples para determinar o tipo de operação a ser realizada. Consiste em propor ao decisor três situações típicas e pedir-lhe que as avalie. A partir das três respostas dadas, procura-se num catálogo de funções aquela que melhor corresponde aos desejos do decisor.
As três situações típicas (S1, S2, S3) são escolhidas de acordo com os dois critérios (C1, C2) de forma que:
- – S1 seja incompatível (nota E ou 0) com C1, mas totalmente compatível (nota A ou 1) com C2;
- – S2 seja moderadamente compatível (nota C ou 0,5) com os dois objetivos C1 e C2;
- – S3 seja moderadamente compatível (nota C ou 0,5) com C1 e totalmente compatível (nota A ou 1) com C2.
Obtêm-se três respostas (R1, R2, R3) a partir das quais se procura a operação de agregação.
Os três tipos de funções implementadas
Há duas situações a serem estudadas:
a) dois critérios de igual importância;
b) dois critérios de importância desigual
Critérios de igual importância (simétricos)
Dois critérios têm a mesma importância se a função de agregação for simétrica, ou seja, se a resposta às três perguntas de avaliação for a mesma quando se inverte a ordem dos critérios.
Nesse caso, a partir das três respostas (R1, R2, R3), procura-se a operação de agregação na tabela a seguir:

Método de ajuste para critérios assimétricos
Quando um usuário define uma função de agregação difusa a partir de respostas não simétricas (por exemplo, alguns critérios considerados mais importantes do que outros ou combinações consideradas atípicas), o plugin usa um método de aproximação para gerar automaticamente uma função de agregação personalizada.
A função generate_asymmetric_function(code):
- Pontos-chave definidos pelo usuário
- O usuário escolhe quatro valores de agregação correspondentes a situações de referência:
- (1, 0): critério A totalmente verdadeiro, critério B totalmente falso->vA1B0
- (0,5, 0,5): os dois critérios médios->vA05B05
- (0,5, 1): critério A médio, critério B totalmente verdadeiro->vA05B1
- (0, 1): critério A totalmente falso, critério B totalmente verdadeiro->vA0B1
- Esses valores são codificados na forma de um código de 4 dígitos (cada dígito de 0 a 4 corresponde a um grau de satisfação entre 1,0 e 0,0).
- O usuário escolhe quatro valores de agregação correspondentes a situações de referência:
- Construção da função difusa
- Para os quatro pontos-chave, os valores são atribuídos diretamente.
- Para todas as outras combinações (x, y), o valor é calculado por interpolação bilinear ponderada, usando a fórmula:
- vA05B05⋅x⋅y+vA05B1⋅x⋅∣x−y∣+vA0B1⋅(1−x)⋅y
- Esta fórmula permite obter uma superfície contínua que permanece coerente com os pontos-chave definidos.
- Resultado
- A função retornada pode ser aplicada a qualquer par (x, y) de valores difusos.
- Um dicionário de parâmetros também é retornado, documentando o tipo, o código, os pontos
Método de ajuste para critérios simétricos incomuns
Os tripletos apresentados na tabela de funções acima respeitam as seguintes restrições:
1) R3 >= max( R1,R2), a avaliação de uma situação que satisfaz completamente o critério 2 e medianamente o critério 1 deve ser pelo menos igual à melhor avaliação das duas outras situações (R1 e R2), uma das quais não satisfaz de todo o primeiro critério e a outra satisfaz medianamente os dois critérios;
2) R3 >= nota C ou 0,5, a satisfação total do segundo critério não pode fazer com que a satisfação global caia abaixo do nível de satisfação do primeiro critério.
Mas, embora essa lógica seja usada na maioria das aplicações, ela pode não ser adequada em situações muito específicas. Nesse caso, o plugin usa a função generate_fuzzy_function(code) para gerar automaticamente uma função de agregação adequada.
Uma mensagem de aviso indica que se trata de uma combinação incomum de respostas.
- Pontos-chave definidos pelo usuário
- O usuário define três situações de referência, codificadas com três dígitos (de 0 a 4) que representam um grau de agregação entre 1,0 e 0,0:
- (1, 0) ou (0, 1): um critério totalmente verdadeiro, o outro totalmente falso->v1
- (0,5, 0,5): os dois critérios médios->v2
- (0,5, 1) ou (1, 0,5): um critério médio, o outro totalmente verdadeiro->v3
- O usuário define três situações de referência, codificadas com três dígitos (de 0 a 4) que representam um grau de agregação entre 1,0 e 0,0:
- Construção da função difusa simétrica
- Os valores dos três pontos-chave são atribuídos diretamente de acordo com o código fornecido.
- Para todos os outros pares (x, y), o valor é estimado por interpolação contínua com a fórmula:
- v2⋅x⋅y+v3⋅∣x−y∣
- A simetria é respeitada porque a fórmula e os pontos-chave são idênticos se trocarmos x e y.
- Resultado
- A função retornada pode ser aplicada a qualquer par (x, y) de valores difusos.
- Um dicionário de parâmetros também é retornado, documentando o tipo, o código, os pontos-chave e a fórmula de aproximação.