Funções personalizadas QGIS não exibidas na calculadora de campo

10

Estou usando Essen e estou tentando seguir o maravilhoso tutorial de Anita Graser, Iluminado, contornos . Eu criei a azimuthfunção e a carreguei, mas não há nada aparecendo na guia expressão - nem mesmo Personalizado com a função padrão! A expressão existe como azimuth.pyem C :\Users\Max\.qgis2\python\expressionscom o .pycarquivo associado . Reiniciar o QGIS não faz nenhuma diferença

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Máx.
fonte
2
Presumo que você se lembrou de apertar o botão 'Carregar'? Também encontrei alguns scripts mais antigos que causavam problemas quando tentei realocá-los para um novo grupo - não obtive erros de sintaxe, mas a correção manual da indentação usando o TAB para 4 espaços corrigiu isso. Vale a pena conferir, especialmente se você colou o código? (Vejo que você está usando 2 espaços para recuar). O marcador de dobra (o sinal de menos após o número da linha) parece estar bem ...
Steven Kay
@StevenKay Obrigado Steven pela primeira vez, eu tenho um erro no código e isso é relacionado à indentação. Eu não estava ciente disso e sim, havia colado o código. Apenas para confirmar, sempre deve haver 4 espaços no início de uma linha - percebo que o editor de funções faz algum recuo automático?
Max
@ Max - eu sugeriria fortemente o uso de um editor de texto para corrigir seu recuo e colá-lo na janela de expressão. Vários desses editores destacarão se seu recuo está errado. Existem muitos editores de texto por aí, por exemplo, eu adoro usar o Sublime ;) #
Joseph
1
@Joseph Graças eu vou fazer - realmente aprecio todo o apoio
Max
@ Max Você já resolveu isso? Eu experimento o mesmo. Minhas funções personalizadas não são carregadas quando o qgis é iniciado, então eu tenho que entrar na guia do editor de funções e pressionar "carregar" antes que as funções personalizadas apareçam na guia do editor de expressões.
joskal

Respostas:

11

Não chame a função, azimuthpois já existe uma função matemática chamada isso.

Em vez disso, dê outro nome como azi():

Script de exemplo

E agora você deve poder chamá-lo:

Expressão personalizada

Joseph
fonte
obrigado por isso, eu não estava ciente da função matemática. No entanto, ele ainda não aparece na guia Expressões, uma vez criado e carregado. Como eu disse anteriormente, não há nenhum cabeçalho chamado "Custom". Portanto, para a próxima etapa do tutorial, estou um pouco empolgado (esta é a primeira vez que uso expressões e funções no QGIS ... talvez seja a última, se puder " t terminar este tutorial)!
Max
@ Max - Qual versão do QGIS você está usando? Você já pensou em atualizar para a versão mais recente? Eu testei isso no QGIS 2.14.3-Essen e ele carregou bem.
Joseph
Eu tentei no 2.14.8 Essen e no 2.16.3. Acho que vou desinstalar e reinstalar - uso o OSGeo para instalação e me pergunto se talvez algo tenha estragado algum lugar.
Max
@ Max - poderia ser. Antes de reinstalar, tente excluir a C:/Users/You/.qgis2/python/expressionspasta (ou faça backup dos scripts que você usou).
Joseph