Ich schreibe ein Tutorial für MSc-Studenten, die QGIS verwenden. Für eine der Aufgaben müssen die Attributdaten geändert werden (siehe PDF-Entwurf des Tutorials hier, wenn Sie interessiert sind).
Die Frage ist, wie sie die Attributdaten bearbeiten können. Ich weiß , diese Frage wurde vor gefragt , und die Antwort verwendet , einfach zu sein: nur verwenden Libreoffice Calc , ihn zu ändern und speichern Sie es, um sicherzustellen , die Zeilenfolge und Spaltentitel gleich gehalten werden. Ich habe diesen Ansatz zuvor mit großer Wirkung eingesetzt.
Leider funktioniert die Lösung nicht mehr: Speichern der DBF-Datei in LibreOffice (5.4.2) oder OpenOffice (3.4.1) erstellt stattdessen eine zusätzliche .dbt-Datei.
Um auf die Frage zu kommen: Wie kann ich einer Klasse von MSc-Schülern sagen, dass sie das nächste Woche tun sollen? Ich habe die folgenden Optionen in Betracht gezogen:
- Verwenden Sie stattdessen R (ideal für mich, aber beängstigend für Studenten)
- Bearbeiten Sie die Datei als CSV-Datei und fügen Sie sie dann basierend auf dem Zeitstempel hinzu (in Ordnung, scheint aber zu komplex zu sein und kann in den 2 Stunden mehr Fehler verursachen).
- Verwenden Sie ein alternatives Programm: Ich habe Gnumeric und Excel ausprobiert, von denen keines schnell gute Ergebnisse lieferte.
Um diese Frage zu beantworten, habe ich ein replizierbares Beispiel erstellt . Öffnen Sie die Datei "points.shp" in QGIS, beobachten Sie die Attributtabelle und schließen Sie sie. Bearbeiten Sie einige Zellen in der Attributtabelle "points.dbf" in LibreOffice - Speichern. Öffnen Sie "points.shp" erneut in QGIS und beobachten Sie die verschlüsselte Attributtabelle. Die anderen Shapefiles im ZIP-Ordner wurden bereits von LibreOffice und OpenOffice beschädigt, um zu veranschaulichen, wie das Problem für mich aussieht.
Kurz gesagt, wie löse ich dieses Problem am besten?
quelle
Antworten:
Die einfachste Antwort, die ich gefunden habe, basierend auf dem Rat von Ryan Garnett, dies in QGIS zu tun:
Verwenden Sie regexp_replace
Diese Funktion wurde vor 1 Jahr von Jürgen Fischer zum Feldrechner hinzugefügt (wie in diesem Fehlerbericht dargestellt ). Ich habe eine Weile versucht, herauszufinden, wie das geht, habe aber nicht nach "qgis regex" und anderen vagen Begriffen gesucht.
Die Funktionalität wird wahrscheinlich am besten durch die Notwendigkeit veranschaulicht, alle Werte in der Spalte "Name" zu standardisieren. Wenn wir zum Beispiel alle Zellen, die das Muster "Tesc" enthalten, durch "Tesco" ersetzen müssen und überflüssige Informationen wie "Tesco, Infirmary Road" (die von OSM-Mitarbeitern häufig hinzugefügt werden) entfernen müssen, kann die folgende Funktion verwendet werden:
regexp_replace ("name", 'Tesc. *', 'Tesco')
Ich denke, dies ist die Funktionalität für reguläre Ausdrücke in Pythonic, da sie sich ein wenig von der von mir zuvor verwendeten grep-Funktion unterscheidet.
Ich denke, dass weitere Dokumentation (Details auf der QGIS-Website beschränken sich auf ein paar Wörter) zur Funktionsweise erforderlich ist. Daher habe ich die folgenden Seiten als Lesezeichen für zukünftige Referenz gespeichert:
Diese Lösung hat einige Vorteile:
Entschuldigung für die Beantwortung meiner eigenen Frage und vielen Dank an andere, die mich zum Licht geführt haben! Ich hoffe, dieser Fragenthread ist für andere, die mit ähnlichen Problemen konfrontiert sind, von erzieherischem Nutzen.
quelle
Dies mag eine blöde Antwort sein, da es für die Absolventen ein Lernziel sein mag, aber gibt es einen Grund, warum Sie die Attribute in QGIS nicht mit dem Feldrechner bearbeiten? In früheren Versionen von QGIS (vor 1.7) war es nicht möglich, Attribute direkt in QGIS zu bearbeiten. Daher müssen DBF-Dateien in OpenOffice usw. bearbeitet werden.
Ab 1.7 und 1.8 können Sie Attributdaten direkt im Feldrechner bearbeiten und bedingte Ausdrücke ausführen. Es sind auch Python-Attribut-Plugins verfügbar, die zusätzliche Optionen für die Attributbearbeitung bieten. Dies ist möglicherweise eine Lösung und / oder eine Option für Ihr Lernprogramm.
Als ehemaliger Masterstudent und jetzt Universitätsangestellter verstehe ich dieses Problem, die vorherige Anforderung, es außerhalb von QGIS auszuführen, und schätze jetzt die Fähigkeit, alle Attributbearbeitungen in QGIS durchzuführen. Gerne helfe ich Ihnen dabei weiter, wenn Sie es wünschen.
quelle
Sie können LibreOffice's Base verwenden, um Ihre DBF-Dateien zu ändern .
Sie können sie jetzt bearbeiten. Hoffentlich sollte das für Ihre Zwecke gut genug sein.
Sie können auch DBF Explorer ausprobieren, obwohl dies nur Windows ist. Es hat aber Suchen und Ersetzen.
quelle