QGIS-Funciones personalizadas que no se muestran en la Calculadora de campo

10

Estoy usando Essen e intento seguir el maravilloso tutorial de Anita Graser Contornos iluminados . Creé la azimuthfunción y la cargué, pero no se muestra nada en la pestaña de expresión, ¡ni siquiera personalizada con la función predeterminada! La expresión existe como azimuth.pyen C :\Users\Max\.qgis2\python\expressionscon el .pycarchivo asociado . Reiniciar QGIS no hace ninguna diferencia

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Max
fuente
2
¿Supongo que te acordaste de presionar el botón 'Cargar'? También descubrí que algunos scripts antiguos causaron problemas cuando intenté reasignarlos a un nuevo grupo; no obtuve errores de sintaxis, pero la corrección de la sangría manualmente al usar TAB a 4 espacios solucionó esto. Vale la pena comprobar esto, especialmente si pegó el código. (Veo que estás usando 2 espacios para la sangría). Sin embargo, el marcador de pliegue (el signo menos después del número de línea) se ve bien ...
Steven Kay
@StevenKay Gracias Steven por primera vez, tengo un error en el código y tiene que ver con la sangría. No estaba al tanto de esto y sí, había pegado el código. Solo para confirmar, siempre debería haber 4 espacios al comienzo de una línea. ¿Noté que el editor de funciones realiza alguna sangría automática?
Max
@Max: sugeriría encarecidamente utilizar un editor de texto para corregir su sangrado y luego pegarlo en la ventana de expresión. Varios de estos editores resaltarán si su sangría es incorrecta. Hay muchos editores de texto, por ejemplo, me encanta usar Sublime ;)
Joseph
1
@Joseph Gracias lo haré - realmente aprecio toda la ayuda
Max
@Max ¿Alguna vez resolviste esto? Yo experimento lo mismo. Mis funciones personalizadas no se cargan cuando se inicia qgis, por lo que debo ingresar a la pestaña del editor de funciones y presionar "cargar" antes de que las funciones personalizadas aparezcan en la pestaña del editor de expresiones.
joskal

Respuestas:

11

No llame a la función azimuthya que ya existe una función matemática llamada esto.

En cambio, dale otro nombre como azi():

Script de ejemplo

Y ahora deberías poder llamarlo:

Expresión personalizada

Joseph
fuente
gracias por eso, no estaba al tanto de la función matemática. Sin embargo, todavía no se muestra en la pestaña de expresiones una vez creado y cargado. Como dije anteriormente, no hay ningún encabezado llamado "Personalizado", así que para el siguiente paso en el tutorial estoy un poco lleno (esta es la primera vez que uso expresiones y funciones en QGIS ... tal vez la última si puedo ' ¡Termine este tutorial!)
Max
@Max - ¿Qué versión de QGIS estás usando? ¿Has considerado actualizar a la versión más reciente? Probé esto en QGIS 2.14.3-Essen y se cargó bien.
Joseph
Lo probé en 2.14.8 Essen y 2.16.3. Creo que lo desinstalaré y volveré a instalar. Utilizo OSGeo para la instalación y me pregunto si quizás algo se ha estropeado en alguna parte.
Max
@Max - Podría ser. Antes de reinstalar, intente eliminar la C:/Users/You/.qgis2/python/expressionscarpeta (o haga una copia de seguridad de los scripts que utilizó).
Joseph
1
Continuemos esta discusión en el chat .
Max