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
विषय बंद क्यों? मैं मुख्य रूप से अपने डेटा को सीएसवी में निर्यात करने और फिर से आयात करने की आवश्यकता के बिना QGIS में सीधे समाधान के लिए कह रहा हूं।
जुहीले

जवाबों:


9

हाँ, यह अजगर में यूनिडबॉय लाइब्रेरी ( प्रलेखन ) के साथ संभव है । यह प्रत्येक यूनिकोड वर्ण के बराबर निकटतम 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 फ़ाइल को दूसरे में बदल देगा: -

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
हम्म, ऐसा लगता है कि मैं सीएसवी में निर्यात से बच नहीं सकता और वापस आयात कर सकता हूं। मैं शायद QGIS के लिए सुधार के रूप में इस तरह की सुविधा का सुझाव दूंगा।
जूहीले

यदि आप अजगर क्षेत्र कैलकुलेटर का उपयोग करते हैं तो आप एक सीएसवी बनाने से बच सकते हैं। सबसे पहले आपको क्यूजीआईएस अजगर में पुस्तकालय स्थापित करना होगा। यहाँ एक विवरण है। फिर आप अजगर उन्नत क्षेत्र कैलकुलेटर का उपयोग कर सकते हैं। वैश्विक होगा from unidecode import unidecodeऔर सूत्र हो जाएगाvalue = unidecode(<name>)
Corentin लेमैत्रे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.