Guardar ecuaciones utilizadas en la calculadora de campo QGIS?

9

Estoy tratando de calcular ciertos valores de un punto recién calculado. Entonces uso la calculadora de campo para escribir una ecuación para determinar los valores.

¿Hay alguna manera de guardar esa ecuación, de modo que si y cuando empiezo un nuevo trabajo, no tenga que volver a escribirlo?

Algo similar a cómo guarda estilos y simbología para una variedad de puntos.

R Kumar
fuente
Esa es una buena solicitud de características y sería bastante fácil de agregar.
Nathan W

Respuestas:

5

QGIS guarda la última ecuación utilizada en la calculadora de campo en la pestaña "Reciente" donde puede reutilizarla haciendo doble clic en ella

img de campo calc

LaughU
fuente
Eso es correcto en caso de que el OP no haya usado otras ecuaciones más tarde. Pero desaparecerá con el tiempo cuando el OP use nuevas ecuaciones. El Recentcontenedor es solo temporalmente.
ahmadhanb
5

Puede escribir su ecuación en una nueva función, y luego solo tendría que llamar a la función para volver a aplicar el cálculo.

Abra la calculadora de campo, haga clic en la Function Editorpestaña y new fileluego edite la función. Seleccionar load. Tenga en cuenta que okno estará disponible en este momento.

Vuelva a la Expressionpestaña, seleccione el customgrupo de funciones y haga doble clic en su función. Seleccione el campo a actualizar y presione ok.


Si solo desea usar valores de campo y constantes, puede editar la firma de función predeterminada, que comienza con value1. En mi ejemplo, lo he eliminado, pero podría usar este campo (s) para pasar nuevos argumentos.

A continuación, puede acceder a los valores del campo de función utilizando feature["fieldName"]... ¡tenga cuidado de llamar a esta función solo en capas que contienen dichos campos!

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

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

JGH
fuente
3

Además de la solución de @LaughU, puede incorporar cualquier operación de calculadora de campo en un modelo gráfico y luego guardar y ejecutar el modelo. Esto pero requiere que los nombres de sus columnas sean siempre los mismos.

Erik
fuente
2

Si está agregando un nuevo punto a una capa existente y desea ejecutar el mismo cálculo para ese punto que para todos los demás puntos, aquí hay dos características útiles:

Campo virtual

Un campo virtual calcula automáticamente una expresión para cada nuevo atributo. También se actualiza regularmente. Entonces, por ejemplo, para un campo virtual llamado "latitud", podría usar la expresión $y.

Pros y contras de los campos virtuales:

  • Cada vez que agregue un nuevo punto, automáticamente se agregará la salida de la expresión a este campo.
  • Se actualiza automáticamente cada vez que la expresión pone cambios. Entonces, si mueve el punto en el ejemplo, el valor de "latitud" cambiará automáticamente.
  • No puede editar un valor de campo virtual.
  • Los campos virtuales se guardan como parte del archivo de proyecto QGIS, no como parte del archivo de forma (o del formato en que se encuentre su capa). Entonces, si abre la capa en un proyecto diferente, no tendrá sus campos virtuales.

Campo regular con un valor de campo predeterminado

Puede configurar un campo para que tenga un valor predeterminado basado en una expresión. Cuando crea un nuevo punto, su atributo se rellenará automáticamente con el valor predeterminado. Puede cambiar el valor del atributo. No se actualiza automáticamente. *

Pros y contras de los valores de campo predeterminados:

  • Cada vez que agregue un nuevo punto, automáticamente se agregará la salida de la expresión a este campo.
  • No se actualiza automáticamente. En el ejemplo, esto significa que si movió un punto existente, su valor de "latitud" no se actualizaría.
  • Puede cambiar el valor de este campo.
  • Guardado como parte del archivo de forma. Entonces, si abre la capa en un proyecto diferente, tendrá este campo en su tabla de atributos.

* En QGIS 3.2, los valores de campo predeterminados pueden (opcionalmente) configurarse para "aplicar el valor predeterminado en la actualización". Con esta opción, si mueve un punto donde el valor predeterminado es $yel valor actual, será reemplazado por la nueva coordenada y.

csk
fuente
Creo que el valor del campo predeterminado se puede configurar para actualizarse automáticamente en QGIS 3.2.
she_weeds
@she_weeds Gracias por señalarlo. Actualizaré mi respuesta para incluir esa información.
csk