Les fonctions QGIS-Custom n'apparaissent pas dans la calculatrice de champ

10

J'utilise Essen et j'essaie de suivre le merveilleux tutoriel des contours lumineux d' Anita Graser . J'ai créé la azimuthfonction et l' ai chargée, mais rien n'apparaît dans l'onglet d'expression - pas même personnalisé avec le func par défaut! L'expression existe comme azimuth.pyen C :\Users\Max\.qgis2\python\expressionsavec le .pycfichier associé . Le redémarrage de QGIS ne fait aucune différence

entrez la description de l'image ici

entrez la description de l'image ici

Max
la source
2
Je suppose que vous vous êtes souvenu d'appuyer sur le bouton «Charger»? J'ai également constaté que certains scripts plus anciens causaient des problèmes lorsque j'essayais de les réaffecter à un nouveau groupe - je n'ai eu aucune erreur de syntaxe, mais la correction manuelle de l'indentation à l'aide de TAB sur 4 espaces a résolu ce problème. Cela pourrait être utile de vérifier, surtout si vous avez collé le code? (Je vois que vous utilisez 2 espaces pour le retrait). Le marqueur de pli (le signe moins après le numéro de ligne) semble correct ...
Steven Kay
@StevenKay Merci Steven pour la première fois j'ai une erreur sur le code et c'est à cause de l'indentation. Je n'étais pas au courant de cela et oui, j'avais collé le code .. Juste pour confirmer, il devrait toujours y avoir 4 espaces au début d'une ligne - je remarque que l'éditeur de fonction fait une indentation automatique?
Max
@Max - Je suggérerais fortement d'utiliser un éditeur de texte pour corriger votre indentation, puis le coller dans la fenêtre d'expression. Un certain nombre de ces éditeurs mettront en évidence si votre indentation est erronée. Il existe de nombreux éditeurs de texte, par exemple, j'aime utiliser Sublime ;)
Joseph
1
@Joseph Merci, je le ferai - j'apprécie vraiment toute l'aide
Max
@Max Avez-vous déjà résolu ce problème? J'expérimente la même chose. Mes fonctions personnalisées ne se chargent pas au démarrage de qgis, je dois donc accéder à l'onglet de l'éditeur de fonctions et appuyer sur "charger" avant que les fonctions personnalisées n'apparaissent dans l'onglet de l'éditeur d'expressions.
joskal

Réponses:

11

N'appelez pas la fonction azimuthcar il existe déjà une fonction Math existante appelée ceci.

Donnez-lui plutôt un autre nom comme azi():

Exemple de script

Et maintenant, vous devriez pouvoir l'appeler:

Expression personnalisée

Joseph
la source
merci pour cela, je n'étais pas au courant de la fonction mathématique. Cependant, il n'apparaît toujours pas dans l'onglet des expressions une fois créé et chargé. Comme je l'ai dit précédemment, il n'y a pas de titre appelé "Personnalisé" du tout, donc pour la prochaine étape du tutoriel, je suis un peu bourré (c'est la première fois que j'utilise des expressions et des fonctions dans QGIS ... peut-être mon dernier si je peux ' t terminer ce tutoriel!)
Max
@Max - Quelle version de QGIS utilisez-vous? Avez-vous envisagé de passer à la dernière version? J'ai testé cela sur QGIS 2.14.3-Essen et il s'est bien chargé.
Joseph
Je l'ai essayé sur 2.14.8 Essen et 2.16.3.Je pense que je vais désinstaller et réinstaller - j'utilise OSGeo pour l'installation et je me demande si quelque chose a peut-être foiré quelque part?
Max
@Max - Peut-être. Avant de réinstaller, essayez de supprimer le C:/Users/You/.qgis2/python/expressionsdossier (ou sauvegardez tous les scripts que vous avez utilisés).
Joseph
1
Continuons cette discussion dans le chat .
Max