QGIS-속성 테이블에서 강조 문자를 일반 문자로 변환 할 수 있습니까? [닫은]


9

국가 문자로 된 이름이 포함 된 OSM 데이터 세트가 있습니다 (CSV 내보내기이지만 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

다음 형식으로 변환하고 싶습니다.

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

"č, š, ř, á"등 대신에 악센트가 제거되는 곳에 "c, s, r, a"가 있습니다. 현재 열을 편집 할 필요가 없습니다-이름이 변환 된 새 열을 만들 수 있습니다.

나는 현재와 같은 일부 온라인 도구를 사용하기 위하여려고하고 이 하나의 CSV 파일에 대한을하지만 직접 QGIS에서이 문제를 해결 할 수 있다면 그것은 좋은 것입니다.


1
왜 주제를 벗어난가? 주로 데이터를 CSV로 내보내고 다시 가져올 필요없이 QGIS에서 직접 솔루션을 요구하고 있습니다.
Juhele

답변:


9

예, 파이썬 의 unidecode 라이브러리를 사용하면 가능합니다 ( documentation ). 이렇게하면 각 유니 코드 문자에 해당하는 가장 가까운 ASCII를 찾습니다.

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))

산출:-

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

이 코드는 하나의 CSV 파일을 다른 CSV 파일로 변환합니다.

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
흠, CSV로 내보내기를 피하고 다시 가져올 수없는 것 같습니다. QGIS의 개선과 같은 기능을 제안 할 것입니다.
Juhele

python field calculator를 사용하면 csv 생성을 피할 수 있습니다. 먼저 QGIS python에 라이브러리를 설치해야합니다. 여기에 설명이 있습니다. 그런 다음 파이썬 고급 필드 계산기를 사용할 수 있습니다. 전 세계가 될 from unidecode import unidecode것이며 공식은value = unidecode(<name>)
Corentin Lemaitre
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.