Salvando Equações usadas na Calculadora de Campo QGIS?

9

Estou tentando calcular certos valores de um ponto recém-calculado. Então, eu uso a calculadora de campo para escrever uma equação para determinar os valores.

Existe uma maneira de salvar essa equação, para que, se e quando eu iniciar um novo trabalho, não precisar digitá-lo novamente?

Algo semelhante a como você salva estilos e simbologia para uma variedade de pontos.

R Kumar
fonte
Essa é uma boa solicitação de recurso e seria muito fácil de adicionar.
27718 Nathan W

Respostas:

5

O QGIS salva a última equação usada na calculadora de campo na guia "Recente", onde você pode reutilizá-la clicando duas vezes nela

img de campo calc

LaughU
fonte
É isso mesmo, caso o OP não use outras equações posteriormente. Mas desaparecerá com o tempo quando o OP usar novas equações. O Recentcontêiner é apenas temporariamente.
ahmadhanb 25/09
5

Você pode escrever sua equação em uma nova função e só precisará chamar a função para reaplicar o cálculo.

Abra a calculadora de campo, clique na Function Editorguia new filee edite a função. Selecione load. Observe que oknão estará disponível neste momento.

Volte para a Expressionguia, selecione o customgrupo de funções e clique duas vezes na sua função. Selecione o campo a ser atualizado e pressione ok.


Se você deseja usar apenas valores e constantes de campo, é possível editar a assinatura da função padrão, que começa com value1. No meu exemplo, eu o removi, mas você pode usar esses campos para passar novos argumentos.

Você pode acessar os valores dos campos de recurso usando feature["fieldName"].... cuidado para chamar essa função apenas nas camadas que contêm os campos mencionados!

@qgsfunction(args='auto', group='Custom')
def funcTestCalc( feature, parent):
    return feature["fieldA"]+feature["fieldB"];

insira a descrição da imagem aqui insira a descrição da imagem aqui

JGH
fonte
3

Além da solução do @LaughU, você pode incorporar qualquer operação da calculadora de campo em um modelo gráfico e, em seguida, salvar e executar o modelo. Isso, mas exige que os nomes das colunas sejam sempre os mesmos.

Erik
fonte
2

Se você estiver adicionando um novo ponto a uma camada existente e desejar executar o mesmo cálculo para esse ponto e para todos os outros pontos, aqui estão dois recursos úteis:

Campo Virtual

Um campo virtual calcula automaticamente uma expressão para cada novo atributo. Também é atualizado regularmente. Assim, por exemplo, para um campo virtual chamado "latitude" você poderia usar a expressão $y.

Prós e contras dos campos virtuais:

  • Sempre que você adiciona um novo ponto, ele automaticamente adiciona a saída da expressão a este campo.
  • Atualizada automaticamente sempre que a expressão lança alterações. Portanto, se você mover o ponto no exemplo, o valor "latitude" mudará automaticamente.
  • Você não pode editar um valor de campo virtual.
  • Os campos virtuais são salvos como parte do arquivo de projeto do QGIS, não como parte do shapefile (ou em qualquer formato em que sua camada esteja). Portanto, se você abrir a camada em um projeto diferente, ele não terá seus campos virtuais.

Campo regular com um valor de campo padrão

Você pode configurar um campo para ter um valor padrão com base em uma expressão. Quando você cria um novo ponto, seu atributo é preenchido automaticamente com o valor padrão. Você pode alterar o valor do atributo. Não é atualizado automaticamente. *

Prós e contras dos valores de campo padrão:

  • Sempre que você adiciona um novo ponto, ele automaticamente adiciona a saída da expressão a este campo.
  • Não atualizado automaticamente. No exemplo, isso significa que, se você mover um ponto existente, seu valor de "latitude" não será atualizado.
  • Você pode alterar o valor desse campo.
  • Salvo como parte do shapefile. Portanto, se você abrir a camada em um projeto diferente, ele terá esse campo em sua tabela de atributos.

* No QGIS 3.2, os valores padrão dos campos podem (opcionalmente) ser definidos como "aplicar o valor padrão na atualização". Com esta opção, se você mover um ponto em que o valor padrão é $yo valor atual, será substituído pela nova coordenada y.

csk
fonte
Eu acho que o valor do campo padrão pode ser definido para atualização automática no QGIS 3.2.
she_weeds
@she_weeds Obrigado por apontar isso. Vou atualizar minha resposta para incluir essas informações.
CSK