QGIS - Ist es möglich, Zeichen mit Akzent in reguläre Zeichen in der Attributtabelle umzuwandeln? [geschlossen]


9

Ich habe ein OSM-Dataset mit Namen mit nationalen Zeichen (dies ist CSV-Export, aber ich habe es in SHP):

osm_id,code,fclass,population,name,longitude,latitude
276645544,1003,village,221,Krč,14.248410,49.194988
444571400,1003,village,88,Radonice,14.548085,49.143251
488567474,1003,village,115,Doubravka,14.363835,49.282158
488567478,1003,village,114,Koloměřice,14.399437,49.280328
488567484,1003,village,111,Údraž,14.309249,49.281551
491452727,1004,hamlet,33,Poněšice,14.481200,49.105121
601855465,1003,village,147,Hvožďany,14.433230,49.286094
631878480,1003,village,211,Myšenec,14.208999,49.223213

und möchte sie in diese Form umwandeln:

osm_id,code,fclass,population,name,longitude,latitude
276645544,1003,village,221,Krc,14.248410,49.194988
444571400,1003,village,88,Radonice,14.548085,49.143251
488567474,1003,village,115,Doubravka,14.363835,49.282158
488567478,1003,village,114,Kolomerice,14.399437,49.280328
488567484,1003,village,111,Udraz,14.309249,49.281551
491452727,1004,hamlet,33,Ponesice,14.481200,49.105121
601855465,1003,village,147,Hvozdany,14.433230,49.286094
631878480,1003,village,211,Mysenec,14.208999,49.223213

Wenn Akzente entfernt werden, haben Sie anstelle von "č, š, ř, á" usw. "c, s, r, a". Ich muss die aktuelle Spalte nicht bearbeiten - könnte eine neue Spalte mit konvertierten Namen erstellen.

Ich werde derzeit ein Online-Tool wie dieses für die CSV-Datei verwenden, aber es wäre großartig, wenn ich dies direkt in QGIS lösen könnte.


1
warum nicht zum Thema? Ich frage in erster Linie nach einer direkten Lösung in QGIS, ohne meine Daten in CSV exportieren und erneut importieren zu müssen.
Juhele

Antworten:


9

Ja, das ist mit der Unidecode- Bibliothek in Python möglich ... ( Dokumentation ). Dies versucht, das nächste ASCII-Äquivalent zu jedem Unicode-Zeichen zu finden.

from unidecode import unidecode

s="""
osm_id,code,fclass,population,name,longitude,latitude
276645544,1003,village,221,Krč,14.248410,49.194988
444571400,1003,village,88,Radonice,14.548085,49.143251
488567474,1003,village,115,Doubravka,14.363835,49.282158
488567478,1003,village,114,Koloměřice,14.399437,49.280328
488567484,1003,village,111,Údraž,14.309249,49.281551
491452727,1004,hamlet,33,Poněšice,14.481200,49.105121
601855465,1003,village,147,Hvožďany,14.433230,49.286094
631878480,1003,village,211,Myšenec,14.208999,49.223213
"""

print(unidecode(s))

Ausgabe:-

osm_id,code,fclass,population,name,longitude,latitude
276645544,1003,village,221,Krc,14.248410,49.194988
444571400,1003,village,88,Radonice,14.548085,49.143251
488567474,1003,village,115,Doubravka,14.363835,49.282158
488567478,1003,village,114,Kolomerice,14.399437,49.280328
488567484,1003,village,111,Udraz,14.309249,49.281551
491452727,1004,hamlet,33,Ponesice,14.481200,49.105121
601855465,1003,village,147,Hvozdany,14.433230,49.286094
631878480,1003,village,211,Mysenec,14.208999,49.223213

Dieser Code konvertiert eine CSV-Datei in eine andere: -

from unidecode import unidecode
with open("/path/to/original.csv", "r") as input_file:
    with open("/path/to/converted.csv","w") as output_file:
        output_file.write(unidecode(input_file.read()))

1
Hmm, es sieht so aus, als könnte ich den Export in CSV und den Rückimport nicht vermeiden. Ich werde wahrscheinlich eine Funktion wie eine Verbesserung für QGIS vorschlagen.
Juhele
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.