Equazioni di risparmio utilizzate nel calcolatore di campo QGIS?


10

Sto cercando di calcolare determinati valori di un punto appena calcolato. Quindi uso il calcolatore di campo per scrivere un'equazione per determinare i valori.

C'è un modo per salvare quell'equazione, in modo che se e quando inizio un nuovo lavoro, non devo riscriverlo?

Qualcosa di simile a come si salvano gli stili e la simbologia per una serie di punti.


Questa è una buona richiesta di funzionalità e sarebbe abbastanza facile da aggiungere.
Nathan W,

Risposte:


5

QGIS salva l'ultima equazione utilizzata nel calcolatore di campo nella scheda "Recenti" in cui è possibile riutilizzarla facendo doppio clic su di essa

immagine del campo calc


Questo è giusto nel caso in cui l'OP non abbia usato altre equazioni in seguito. Ma scomparirà nel tempo quando l'OP utilizzerà nuove equazioni. Il Recentcontenitore è solo temporaneamente.
ahmadhanb,

5

Puoi scrivere la tua equazione in una nuova funzione, quindi dovrai solo chiamare la funzione per riapplicare il calcolo.

Apri il calcolatore di campo, fai clic sulla Function Editorscheda, new filequindi modifica la funzione. Selezionare load. Si noti che oknon sarà disponibile a questo punto.

Torna alla Expressionscheda, seleziona il customgruppo di funzioni e fai doppio clic sulla tua funzione. Seleziona il campo da aggiornare e premi ok.


Se si desidera utilizzare solo valori di campo e costanti, è possibile modificare la firma della funzione predefinita, che inizia con value1. Nel mio esempio l'ho rimosso, ma potresti usare questo (i) campo (i) per passare nuovi argomenti.

È quindi possibile accedere ai valori dei campi funzione utilizzando feature["fieldName"].... fare attenzione a chiamare questa funzione solo sui livelli contenenti tali campi!

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

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine


3

Oltre alla soluzione di @LaughU, è possibile incorporare qualsiasi operazione di calcolatrice di campo in un modello grafico e quindi salvare ed eseguire il modello. Questo ma richiede che i nomi delle colonne siano sempre gli stessi.


2

Se stai aggiungendo un nuovo punto a un livello esistente e desideri eseguire lo stesso calcolo per quel punto come per tutti gli altri punti, ecco due utili funzioni:

Campo virtuale

Un campo virtuale calcola automaticamente un'espressione per ogni nuovo attributo. Inoltre è aggiornato regolarmente. Ad esempio, per un campo virtuale chiamato "latitudine" è possibile utilizzare l'espressione $y.

Pro e contro dei campi virtuali:

  • Ogni volta che aggiungi un nuovo punto, l'output dell'espressione verrà automaticamente aggiunto a questo campo.
  • Aggiornato automaticamente ogni volta che viene emessa l'espressione. Pertanto, se si sposta il punto nell'esempio, il valore di "latitudine" cambierà automaticamente.
  • Non è possibile modificare un valore di campo virtuale.
  • I campi virtuali vengono salvati come parte del file di progetto QGIS, non come parte del file di forma (o in qualunque formato sia il livello). Quindi, se apri il layer in un altro progetto, non avrà i suoi campi virtuali.

Campo normale con un valore di campo predefinito

È possibile impostare un campo per avere un valore predefinito basato su un'espressione. Quando si crea un nuovo punto, il suo attributo verrà riempito automaticamente con il valore predefinito. È possibile modificare il valore dell'attributo. Non viene aggiornato automaticamente. *

Pro e contro dei valori di campo predefiniti:

  • Ogni volta che aggiungi un nuovo punto, l'output dell'espressione verrà automaticamente aggiunto a questo campo.
  • Non aggiornato automaticamente. Nell'esempio ciò significa che se si spostava un punto esistente, il suo valore di "latitudine" non verrebbe aggiornato.
  • È possibile modificare il valore di questo campo.
  • Salvato come parte del file di forma. Quindi, se apri il layer in un altro progetto, avrà questo campo nella sua tabella degli attributi.

* In QGIS 3.2, i valori di campo predefiniti possono (facoltativamente) essere impostati su "applica il valore predefinito all'aggiornamento". Con questa opzione, se si sposta un punto in cui il valore predefinito è $yil valore corrente verrà sostituito dalla nuova coordinata y.


Penso che il valore di campo predefinito possa essere impostato per l'aggiornamento automatico in QGIS 3.2.
she_weeds,

@she_weeds Grazie per averlo sottolineato. Aggiornerò la mia risposta per includere tali informazioni.
csk,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.