Speichern der im QGIS-Feldrechner verwendeten Gleichungen?

9

Ich versuche, bestimmte Werte eines neu berechneten Punktes zu berechnen. Also benutze ich den Feldrechner, um eine Gleichung zu schreiben, um die Werte zu bestimmen.

Gibt es eine Möglichkeit, diese Gleichung zu speichern, damit ich sie nicht erneut eingeben muss, wenn ich einen neuen Job beginne?

Ähnlich wie beim Speichern von Stilen und Symbologien für eine Reihe von Punkten.

R Kumar
quelle
Das ist eine gute Feature-Anfrage und lässt sich ganz einfach hinzufügen.
Nathan W

Antworten:

5

QGIS speichert die zuletzt im Feldrechner verwendete Gleichung unter der Registerkarte "Zuletzt verwendet", wo Sie sie durch Doppelklicken wiederverwenden können

Bild des Feldes

LaughU
quelle
Das ist richtig, falls das OP später keine anderen Gleichungen verwendet hat. Aber es wird mit der Zeit verschwinden, wenn das OP neue Gleichungen verwendet. Der RecentContainer ist nur vorübergehend.
Ahmadhanb
5

Sie können Ihre Gleichung in eine neue Funktion schreiben, und dann müssten Sie nur die Funktion aufrufen, um die Berechnung erneut anzuwenden.

Öffnen Sie den Feldrechner, klicken Sie auf die Function EditorRegisterkarte und new filebearbeiten Sie die Funktion. Wählen Sie load. Beachten Sie, dass okdies zu diesem Zeitpunkt nicht verfügbar ist.

Gehen Sie zurück zur ExpressionRegisterkarte, wählen Sie die customFunktionsgruppe aus und doppelklicken Sie auf Ihre Funktion. Wählen Sie das zu aktualisierende Feld aus und klicken Sie auf ok.


Wenn Sie nur Feldwerte und Konstanten verwenden möchten, können Sie die Standardfunktionssignatur bearbeiten, die mit beginnt value1. In meinem Beispiel habe ich es entfernt, aber Sie können diese Felder verwenden, um neue Argumente zu übergeben.

Sie können dann auf die Feature-Feldwerte zugreifen, indem Sie feature["fieldName"]... diese Funktion nur auf Ebenen aufrufen, die diese Felder enthalten!

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

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

JGH
quelle
3

Zusätzlich zur Lösung von @LaughU können Sie eine beliebige Feldrechneroperation in ein grafisches Modell integrieren und das Modell dann speichern und ausführen. Dies setzt jedoch voraus, dass Ihre Spaltennamen immer gleich sind.

Erik
quelle
2

Wenn Sie einer vorhandenen Ebene einen neuen Punkt hinzufügen und für diesen Punkt dieselbe Berechnung wie für alle anderen Punkte ausführen möchten, sind hier zwei nützliche Funktionen aufgeführt:

Virtuelles Feld

Ein virtuelles Feld berechnet automatisch einen Ausdruck für jedes neue Attribut. Es wird auch regelmäßig aktualisiert. So können Sie beispielsweise für ein virtuelles Feld namens "Breitengrad" den Ausdruck verwenden $y.

Vor- und Nachteile virtueller Felder:

  • Wenn Sie einen neuen Punkt hinzufügen, wird automatisch die Ausgabe des Ausdrucks zu diesem Feld hinzugefügt.
  • Wird automatisch aktualisiert, wenn sich der Ausdruck ändert. Wenn Sie also den Punkt im Beispiel verschieben, ändert sich der "Breitengrad" -Wert automatisch.
  • Sie können einen virtuellen Feldwert nicht bearbeiten.
  • Virtuelle Felder werden als Teil der QGIS-Projektdatei gespeichert, nicht als Teil des Shapefiles (oder in welchem ​​Format auch immer Ihre Ebene ist). Wenn Sie die Ebene in einem anderen Projekt öffnen, werden die virtuellen Felder nicht angezeigt.

Normales Feld mit einem Standardfeldwert

Sie können ein Feld so einrichten, dass es einen Standardwert basierend auf einem Ausdruck enthält. Wenn Sie einen neuen Punkt erstellen, wird dessen Attribut automatisch mit dem Standardwert gefüllt. Sie können den Attributwert ändern. Es wird nicht automatisch aktualisiert. *

Vor- und Nachteile von Standardfeldwerten:

  • Wenn Sie einen neuen Punkt hinzufügen, wird automatisch die Ausgabe des Ausdrucks zu diesem Feld hinzugefügt.
  • Nicht automatisch aktualisiert. Im Beispiel bedeutet dies, dass beim Verschieben eines vorhandenen Punkts dessen "Breitengrad" -Wert nicht aktualisiert wird.
  • Sie können den Wert dieses Feldes ändern.
  • Als Teil des Shapefiles gespeichert. Wenn Sie die Ebene in einem anderen Projekt öffnen, wird dieses Feld in der Attributtabelle angezeigt.

* In QGIS 3.2 können Standardfeldwerte (optional) auf "Standardwert bei Aktualisierung anwenden" festgelegt werden. Wenn Sie mit dieser Option einen Punkt verschieben, an dem der Standardwert $yder aktuelle Wert ist, wird der aktuelle Wert durch die neue y-Koordinate ersetzt.

csk
quelle
Ich denke, der Standardfeldwert kann in QGIS 3.2 auf automatische Aktualisierung eingestellt werden.
she_weeds
@she_weeds Vielen Dank, dass Sie darauf hingewiesen haben. Ich werde meine Antwort aktualisieren, um diese Informationen aufzunehmen.
csk