Wie lautet die Syntax des gestapelten Refactor Fields-Tools "Field Mapping" in QGIS?


10

In QGIS gibt es dieses nette Tool "Refactor Fields" in der Processing Toolbox:

Werkzeug "Refactor Fields"

Die Verwendung auf einer einzelnen Ebene ist ziemlich einfach.

Wenn Sie es jedoch im Stapelmodus verwenden möchten, wird das Textfeld " Feldzuordnung " angezeigt. Ich suche nach einem Beispiel für die dort zu verwendende Syntax . Ich habe noch keine spezifische Dokumentation gefunden.

Refactor chargenweise


Nachdem Sie ein Refactoring über die GUI ausgeführt haben, können Sie den Befehl im Menü Verarbeitung -> Verlauf (Strg + Alt + H)
Kadarivan vom

Antworten:


7

Es ist nicht sehr bequem, aber die folgende Syntax ist für dieses Textfeld erforderlich (ich schreibe es nur der Klarheit halber in mehreren Zeilen):

{'expression': u'type the expression here',
 'length': <type the length>,
 'type': <code of the type>,
 'name': u'type the field name here',
 'precision': <type the precision>}

Zum Beispiel (denken Sie daran, geschweifte Klammern zu verwenden):

{'expression': u'"FLAG1"+"FLAG2"',
 'length': 20, 'type': 6,
 'name': u'FLAG1',
 'precision': 5}

Sie müssen so viele Zeilen wie die obige schreiben, wie die Anzahl der Eingabefelder durch Kommas getrennt ist. Zum Beispiel, wenn Ihre Ebene drei Felder enthält:

{'expression': u'"FLAG1"+"FLAG2"', 'length': 20, 'type': 6, 'name': u'FLAG1', 'precision': 5}, {'expression': u'100*"FLAG2"', 'length': 20, 'type': 6, 'name': u'FLAG2', 'precision': 5}, {'expression': u'"100-"FLAG2"', 'length': 20, 'type': 6, 'name': u'FLAG3', 'precision': 5}

und es sollte funktionieren (es hat bei mir funktioniert).

Bitte beachten Sie, dass Sie diese wörterbuchorientierte Syntax möglicherweise vermeiden und die erforderlichen Werte direkt verwenden können. In Bezug auf das erste Beispiel können Sie beispielsweise einfach Folgendes verwenden:

{u'"FLAG1"+"FLAG2"', 20, 6, u'FLAG1', 5}

Wenn Sie diese Syntax nicht verwenden, wird der folgende Fehler angezeigt:

Fehlender Parameterwert: Feldzuordnung (Zeile 1)


2
Können Sie bitte erklären, was <Code des Typs> bedeutet? Ich habe versucht, 3 zu verwenden, vorausgesetzt, es handelt sich um eine Zeichenfolge (da dies die dritte in den Dropdown-Optionen ist), aber ich habe eine Fehlermeldung erhalten: Das Objekt 'int' hat kein Attribut ' getItem '. Weitere Informationen finden Sie im Protokoll. Der Code, den ich verwendet habe, lautet: {u '"FLAG"', 0, 3, u'FLAG ', 0} für eine meiner Ebenen, wobei {' expression ': u' "FLAG" ',' length ': 0,' Typ ': 3,' Name ': u'FLAG', 'Genauigkeit': 0}.
JAT86

@ JAT86 Dies ist die Nummer, die den Datentyp identifiziert (dh int, string usw.). Leider habe ich keine Referenz für sie gefunden, aber ich sollte mich an die Werte für die am häufigsten verwendeten Typen erinnern: 2 für int, 6 für double und 10 für string. Darüber hinaus sollten Sie möglicherweise nicht 0(zumindest 1!) Die Feldlänge angeben . Bitte lassen Sie mich wissen, wenn Sie das Problem gelöst haben.
Mgri

Vielen Dank für die schnelle Antwort. Vielleicht ist die Stapelverarbeitung viel komplexer als ich gedacht hatte. Ich habe versucht, mindestens 1 für die Länge und 10 für den Codetyp zu verwenden: {u '"FLAG"', 1, 10, u'FLAG ', 0} Trotzdem wird der Fehler angezeigt:' int 'Objekt hat kein Attribut' getItem 'Weitere Informationen finden Sie im Protokoll. Meine Ebene hat die folgenden Attribute: Name: Flag, Typ: Zeichenfolge, Länge: 0, Präzision: 0, Ausdruck: "Flag"
JAT86

@ JAT86 Gibt das Ausführen des Tools über die GUI ein Problem zurück?
Mgri

Wenn Sie mit GUI eine einzelne Ebene meinen, nein, es gab keine Probleme. Die FLAG-Spalte wurde beim Klicken auf "Ausgewähltes Feld löschen" erfolgreich gelöscht und in einer neuen Ebene "Refactored" gespeichert.
JAT86

2

Es gibt einen ähnlichen Algorithmus, dessen Schnittstelle den Batch-Prozess besser vereinfacht.

Geben Sie hier die Bildbeschreibung ein


1
Englisch Englisch
BERA

Die englische Übersetzung für den fraglichen Menüpunkt lautet "Feld zur Attributtabelle hinzufügen"
J. Taylor
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.