2016-01-20 3 views
8

का उपयोग करते समय जर्मन उमॉट्स का एन्कोडिंग rgdal पैकेज द्वारा प्रदान किए गए readOGR फ़ंक्शन का उपयोग करके मैं ओजीआर वेक्टर मानचित्र पढ़ने की कोशिश कर रहा हूं, लेकिन मुझे जर्मन उमोट्स के साथ थोड़ी परेशानी हो रही है। मैंने डेटा की तरह दिखने का एक छोटा सा उदाहरण प्रदान किया है, ö जैसे \ 303 \ 266 के साथ प्रतिस्थापित किया गया है।रीडऑग

map <-readOGR("/path/to/data.gdb", layer = "layer") 
[email protected]$name 
# [1] L\303\266rrach 
# [2] Karlsruhe 
# [3] B\303\266blingen 
# [4] ... 

मैं readOGR समारोह (readOGR(dsn = "/path/to/data.gdb", layer = "layer", encoding = "UTF-8" या readOGR(dsn = "/path/to/data.gdb", layer = "layer", encoding = "LATIN-1") में एनकोडिंग निर्दिष्ट करने की कोशिश की है, लेकिन जैसे कि यह एन्कोडिंग पैरामीटर पूरी तरह से अनदेखी कर रहा है, के बाद से मैं प्रत्येक एन्कोडिंग मैं के लिए एक ही परिणाम हो रही है यह लग रहा है कोशिश की क्या कोई जानता है कि मैं सही जर्मन उमोट्स प्रदर्शित करने के लिए readOGR फ़ंक्शन या आर कैसे प्राप्त कर सकता हूं?

+0

आप एक Windows मशीन पर कर रहे हैं? –

+0

मैं एक डेबियन 8 सर्वर पर RStudio सर्वर चला रहा हूँ। – Daniel

+0

बहुत अजीब। मैं एन्कोडिंग utf8 के साथ एक geojson/shp फ़ाइल पढ़ रहा हूं और आर में प्रदर्शन गड़बड़ है। यदि मैं utf8 एन्कोडिंग (दोनों QGIS से निर्यात किए गए) का उपयोग कर एक सीएसवी फ़ाइल के माध्यम से एक ही डेटा पढ़ता हूं, तो सब कुछ ठीक और बेवकूफ है। किसी ने मुझे एक बंदूक सौंप दी। –

उत्तर

2

मुझे पूरा यकीन नहीं है कि encoding = "UTF-8/LATIN-1/..." क्या कर सकता है। मुझे उम्मीद थी कि आप एक और केवल एक एन्कोडिंग योजना का चयन करेंगे। मेरी मशीन पर मैं ओ-ऊमलायूट है कि अष्टाधारी चरित्र का अनुवाद क्यों दिखाई देता है:

> 'B\303\266blingen' 
[1] "Böblingen" 
> 'L\303\266rrach' 
[1] "Lörrach" 

आर पात्रों के लिए विभिन्न सम्मेलनों देखने के लिए, प्रकार:

?Quotes 
+0

मैं यह इंगित करना चाहता था कि मैंने ओजीआर वेक्टर मानचित्र पढ़ने के दौरान विभिन्न एन्कोडिंग का उपयोग किया है। मैंने इसे एक बार यूटीएफ -8 के साथ पढ़ा है, एक बार लैटिन -1 के साथ, आदि आपके उत्तर के लिए, यह थोडा अजीब है, मुझे अलग-अलग परिणाम मिलते हैं। ''बी \ 303 \ 266blingen' #" बी \ 303 \ 266blingen "' – Daniel

+0

एन्कोडिंग के अलावा, फ़ॉन्ट का उपयोग करने वाले अक्षरों में भी आवश्यकता होने की आवश्यकता है। आपके कंसोल डिस्प्ले में इस्तेमाल किए गए फ़ॉन्ट में ओ-उमलॉट के लिए उचित मैपिंग नहीं लगती है। मेरा डिफ़ॉल्ट फ़ॉन्ट कूरियर है। आपको अपनी लोकेल सेटिंग्स भी जांचनी चाहिए। '? Sys.getlocale' –

+0

वह समस्या थी। Sys.getlocale() ने वर्तमान में "सी" का उपयोग किया था, मैंने इसे Sys.setlocale() के साथ एक लोकेल में बदल दिया है जो यूटीएफ -8 का समर्थन करता है और अब 'एल \ 303 \ 266rrach' सही ढंग से प्रदर्शित होता है "Lörrach"। – Daniel

1

एन्कोडिंग पैरामीटर नजरअंदाज कर दिया है, अगर iconv सत्य पर सेट नहीं है।

3

जूलियन सही है।

file_name <- "../gis_data/bw/AX_KommunalesGebiet.shp" 
shape_kommunal <- readOGR(file_name, layer = "AX_KommunalesGebiet", use_iconv = TRUE, encoding = "UTF-8") 
data_kommunal <- [email protected] 
head(data_kommunal) 

रिटर्न सही ढंग से स्ट्रिंग:

GKZ    NAME 
0 08236074   Kämpfelbach 
1 08425052   Grundsheim 
2 08435067   Deggenhausertal