जियोडैट डेटाबेस और शेपफाइल्स में कैरेक्टर एन्कोडिंग सपोर्ट


11

मुझे कई जियोडैट डेटाबेस मिले हैं जिनमें बहुत सारे गुणों में ग्रीक अक्षरों के साथ फ़ीचर कक्षाएं शामिल हैं। जब मैं आर्ककॉस्टिक्स से शेपफाइल के रूप में एक फीचर क्लास को एक्सपोर्ट करने की कोशिश करता हूं, तो शेपफाइल डेटा में किसी तरह की कैरेक्टर एन्कोडिंग प्रॉब्लम (वे शेप में इस तरह दिखते हैं: ?? etr ?? e)? यही बात तब होती है जब मैं एमडीबी से केएमएल, shp, आदि में परतों को परिवर्तित करने के लिए एफडब्ल्यूटीएस में ओगआर 2 ओआरजी का उपयोग करता हूं।

क्या किसी के पास जीआईएस डेटा प्रारूपों में एन्कोडिंग स्वरूपों से निपटने का प्रयास करने का अनुभव है?

यहाँ वास्तविक लक्ष्य इन Esri जियोडेट डेटाबेस से कुछ डेटा को पोस्टग्रेज / पोस्टगिस डेटाबेस में प्राप्त करना है, लेकिन टूटी हुई एन्कोडिंग काम नहीं करने वाली है। मैं geoDBs से आकारफाइल्स में निर्यात करने जा रहा था, फिर उन्हें अंदर लोड किया shp2pgsql। क्या वहां पहुंचने का सबसे आसान रास्ता है?


2
आप CP1256 विकल्प के साथ शेपफाइल को आयात करने के लिए QGIS का उपयोग कर सकते हैं और गैर-यूनिकोड समस्या से बचने के लिए इसे UTF8 के साथ निर्यात कर सकते हैं

जवाबों:


10

मुझे लगता है कि आप वहां भाग रहे हैं। आप iconvएक एन्कोडिंग से दूसरे में बदलने के लिए उपयोग कर सकते हैं , और आप इस shp2pgsqlप्रक्रिया के हिस्से के रूप में उपयोग कर सकते हैं । उदाहरण के लिए:

shp2pgsql *postgrestablename* | iconv -f *sourceencoding* -t *targetencoding* | psql -d *yourdatabase*

यदि आप लिनक्स वातावरण में काम कर रहे हैं तो iconvपहले से ही स्थापित होना चाहिए। विंडोज के लिए मुझे विंडोज के लिए LibIconv मिला । लेकिन मुझे iconvविंडोज के तहत उपयोग करने का कोई अनुभव नहीं है , इसलिए मैं इसके लिए वाउच नहीं कर सकता।

उम्मीद है की यह मदद करेगा!

Jo


समस्या तब होती है जब shp2pgsql लागू किया जा सकता है। अगर मैं सही ढंग से समझूं तो शेपफाइल में विशेषताएँ पहले ही टूट चुकी हैं।
UnderDark

क्या यह मदद करता है? resources.arcgis.com/content/kbase?fa=articleShow&d=21106
mwalker

अंडरडार्क, आप सही हैं। इससे पहले कि मैं shp2pgsql चरण पर जा सकूं, डेटा खराब है।
colemanm

धन्यवाद, mwalker ... उस समाधान ने अब तक काल्पनिक रूप से काम किया है! मैंने कोडपेज फॉर्मेट को यूटीएफ -8 में बदल दिया और शेपफाइल डीबीएफ डेटा अब सही अक्षर दिखाता है। और QGIS में PostGIS शेपफाइल लोडर का उपयोग करके, PostGIS डेटाबेस में डेटा सही है, भी।
कोलमैन

6

प्रक्रिया के विवरण के नीचे मैंने एक फ़ाइल GeoDataBase को अरबी क्षेत्रों के साथ UTF-8 एन्कोडिंग के साथ शेपफाइल्स में बदलने के लिए उपयोग किया जो QGIS और ArcMap दोनों में खुशी से खुलता है, अरबी और अंग्रेजी दोनों को सही ढंग से दिखा रहा है (निर्यात या पढ़ने के लिए एक्सटेंशन का उपयोग किए बिना)

  • मूल विचार यह है: FGDB से एक .fb (गलत एन्कोडिंग में) सहित एक आकृति निर्यात करें, फिर उसी परत की विशेषता तालिका को पाठ के रूप में निर्यात करें (दाएं एन्कोडिंग में, जो कि UTF-8 है), और अन्य प्रोग्राम उचित UTF-8 डेटा फ़ील्ड के साथ .fb की सामग्री को बदलने और UTF-8 एन्कोडिंग के साथ .dbf को सहेजने के लिए। फिर .dbf के नए एन्कोडिंग के ArcGIS को सूचित करने के लिए प्रत्येक शेपफाइल में एक .cpg फ़ाइल जोड़ें। कदम:

1) FGDB से परतों को ArcMap में जोड़ें (मैंने 10.1 का उपयोग किया था, लेकिन इसका कोई कारण नहीं है कि पहले के संस्करणों में काम न करें, क्योंकि एन्कोडिंग बिट बाद में, आर्क के बाहर होता है)। निर्यात करने के लिए, एक लेयर पर राइट-क्लिक करें और Data-> Export Data चुनें, Save डायलॉग को लाने के लिए एक्सपोर्ट डायलॉग में फोल्डर बटन पर क्लिक करें और Shapefile को आउटपुट फॉर्मेट के रूप में चुनें।

1 बी) ऊपर की वैकल्पिक विधि: आर्कगेटिक्स में एफजीडीबी पर नेविगेट करें, इसे राइट-क्लिक करें, एक्सपोर्ट चुनें -> शेपफाइल (मल्टीपल) में, और एक ही ऑपरेशन में शेपफाइल्स से भरे फ़ोल्डर के रूप में पूरे एफजीसीबी को निर्यात करें)।

2) अब आपके पास जिबरिश के साथ शेपफाइल्स का एक सेट है जहां अरबी लिपि होनी चाहिए (मेरी मशीन पर यह पात्रों के स्थान पर प्रश्न चिह्न प्रदर्शित करता है)। स्वयं के आकार के .dbf अंश, एक्सेल में या जो कुछ भी खोला गया है, अरबी के बजाय अस्पष्ट है; यह जीआईएस कार्यक्रम में केवल एक प्रदर्शन मुद्दा नहीं है, यह है कि .dbf फ़ाइलों में स्वयं अरबी वर्ण नहीं होते हैं। अभी तक मददगार नहीं है।

3) ArcMap में, FGDB से एक परत की विशेषता तालिका खोलें। तालिका अंग्रेजी और अरबी दोनों को ठीक से दिखाती है (इसीलिए FGDB का पहली बार उपयोग किया गया था)। विशेषता तालिका विंडो के तालिका विकल्प मेनू में, निर्यात चुनें, और निर्यात डेटा संवाद में डेटा की बचत करने के लिए आउटपुट फ़ोल्डर बटन पर क्लिक करें जहां आप आउटपुट प्रकार के रूप में पाठ फ़ाइल चुनते हैं। अब आपके पास एक पाठ फ़ाइल है जो कि यूटीएफ -8 के रूप में इनकोडिंग के साथ नोटपैड में खुल जाएगी, अंग्रेजी और अरबी दोनों के साथ ठीक से एन्कोडेड (अरबी चाहिए, इस बिंदु पर, नोटपैड में ठीक से प्रदर्शित करें)।

अब उस जानकारी को .fb में शेपफाइल्स के भागों में प्राप्त करने के लिए!

4) ओपन लिबरऑफिस कैल्क, एक मुक्त और ओपन-सोर्स एक्सेल क्लोन है जो किसी शेपफाइल की .dbf फाइल को खोलने के लिए .dbf फाइल्स को आसानी से खोलता, सहेजता और सहेजता है।

वैसे, इस मामले में मैं वैचारिक कारणों से एमएस ऑफिस के बजाय लिबरऑफिस का उपयोग नहीं कर रहा हूं, लेकिन सिर्फ इसलिए कि मैं यह पता नहीं लगा पा रहा हूं कि एक्सेल को बचाने के लिए एक्सेल को कैसे बनाया जाए, जो कि कैल्क में आसान है, वास्तव में यह आसान है। डिफॉल्ट विकल्प जब मारने के बाद सहेजें को खोलने के बाद और Calc में एक .dbf फ़ाइल को संशोधित किया जाता है, जबकि एक्सेल यह वास्तव में बताता है कि फ़ाइल को "वर्तमान प्रारूप में सहेजा नहीं जा सकता" और नहीं-तो-उपयोगी "इसे नवीनतम प्रारूप के रूप में सहेजने" की पेशकश करता है (.dbf के लिए कोई विकल्प नहीं है)। एक्सेल के लिए एक्सटेंशन / प्लगइन्स हैं जो काम करने के लिए शुद्ध हैं (

Calc में .dbf फ़ाइल अभी भी अरबी के स्थान पर अस्पष्ट दिखती है। इसे अलोनसाइड करें। उसी आकार की फ़ाइल के द्वारा निर्यात की गई .csv को खोलें, सुनिश्चित करें कि आप प्रारंभिक वार्ता में UTF-8 को एन्कोडिंग (और सीमांकक के रूप में) के रूप में निर्दिष्ट करते हैं। पाठ फ़ाइलों को सही ढंग से प्रदर्शित अरबी के साथ एक दूसरे Calc स्प्रेडशीट में खोलना चाहिए, और उनमें शुरुआत में .dbf प्लस और OBJECTID कॉलम के समान कॉलम होने चाहिए। .Dbf में उचित अरबी युक्त .csv से कॉलम कॉपी-पेस्ट करें (मैं वास्तव में समय बचाने के लिए सबसे बाईं आईडी कॉलम के अपवाद के साथ पूरी तालिका को कॉपी-पेस्ट करता हूं; जानकारी वैसे भी समान है)। मारो सहेजें संशोधित .dbf में LibreOffice में (यह पूछेंगे कि क्या आप वास्तव में .dbf जैसे अजीब प्रारूप का उपयोग करना चाहते हैं? हाँ, आप करते हैं)।

FGDB से सभी आकार के .dbf घटकों के लिए इस प्रक्रिया को दोहराएं, अरबी तारों के साथ सभी अस्पष्ट कॉलम की जगह।

5) जैसे ही आप में चिपकाए गए अरबी कॉलम के साथ .dbf भागों को फिर से शुरू करते हैं, आप QGIS में शेपफाइल्स खोल सकते हैं और वे दोनों भाषाओं में ठीक से काम करेंगे, बशर्ते कि आप UTF-8 को आयात वेक्टर में एन्कोडिंग के रूप में निर्दिष्ट करें फ़ाइल संवाद। हालाँकि, वे अभी भी ArcGIS (या कम से कम सभी संस्करणों में नहीं) में ठीक से काम नहीं करेंगे क्योंकि ArcGIS स्वचालित रूप से एन्कोडिंग को नहीं पहचानता है या जब आप किसी प्रोजेक्ट में आकृति जोड़ते हैं तो आप इसे चुनते हैं। आर्क को शेपफाइल के लिए एक अलग कंपोनेंट की जरूरत होती है, जिसे कोड पेज कन्वर्सेशन (.cpg) फाइल कहा जाता है, इसे पढ़ने के लिए एन्कोडिंग को निर्देश देना है।

6) एक टेक्स्ट फ़ाइल बनाने के लिए एक टेक्स्ट एडिटर (नोटपैड, नैनो, या जो भी हो, लेकिन वर्ड या कोई अन्य वर्ड प्रोसेसर नहीं) का उपयोग करें जिसमें केवल पांच वर्ण "UTF-8" शामिल हो। प्रत्येक आकृति के लिए इसे .cpg के रूप में सहेजें (मैं इस रूप में सहेजें संवाद में आकृति के एक समूह पर क्लिक करता हूं, फिर एक्सटेंशन मिटा दें और .cpg), आकृति फ़ोल्डर के रूप में एक ही फ़ोल्डर में (यह मूल रूप से एक और काली मिर्च का टुकड़ा है)। मल्टी-पार्ट शेपफाइल)। .Cpg एक्सटेंशन आर्क को बताता है कि यह एक फ़ाइल है जो .dbf फ़ाइल के एन्कोडिंग के बारे में जानकारी है; एक बार जब यह अपने समान नाम-लेकिन-अलग-अलग-भाई-बहनों के साथ आकार-प्रकार में बंध जाता है, तो आकृति-समूह का एन्कोडिंग अब स्वचालित रूप से ArcGIS द्वारा मान्यता प्राप्त है।

) वोइला। अब आपके पास ऐसे आकार-प्रकार हैं जिनमें अंग्रेजी और अरबी दोनों प्रकार के तार हैं, जहां तक ​​मैं वास्तव में बता सकता हूं कि वे मूल फ़ाइल GeoDataBase में थे। वे आर्कपेज़ और क्यूजीआईएस दोनों के मेरे इंस्टॉलेशन में खुलते हैं, और दोनों ही मामलों में दोनों भाषाओं में तार सही ढंग से मैप लेबल सहित प्रदर्शित होते हैं।

चेतावनियां:

  • आर्कगिस की सभी प्रतियों को विशेषता तालिका को ठीक से आबादी वाली पाठ फ़ाइल के रूप में निर्यात नहीं किया गया है (कम से कम एक कंप्यूटर पर, विशेषता तालिका को केवल हेडर के साथ एक फ़ाइल में पाठ तालिका के परिणाम के लिए निर्यात करने का प्रयास किया जाता है, न कि डेटा लाइनों के साथ। यह आर्क का उचित व्यवहार नहीं (बेशक इसे टेक्स्ट के रूप में एट्रीब्यूट टेबल्स को निर्यात करने में सक्षम होना चाहिए), लेकिन यह कुछ उपयोगकर्ताओं के लिए आ सकता है। इससे बाकी के कदम असंभव हो जाते हैं।

  • ऐसा लगता नहीं है कि आर्कजीआईएस यूटीएफ -8 एन्कोडिंग के साथ नए आकार के फाइल को बचाएगा। यह केवल उन उपयोगकर्ताओं को प्रभावित करेगा जो डेटा से नई आकृति बनाना चाहते हैं, न कि वे लोग जो केवल मानचित्र बनाना, संशोधित करना और उनका उपयोग करना चाहते हैं। वर्कअराउंड में आपकी विंडोज रजिस्ट्री के साथ गड़बड़ करने के बारे में विस्तृत जानकारी दी गई है: ( http://support.esri.com/cn/knowledgebase/techarticles/detail/21106 )। मुझे इसका सामना नहीं करना पड़ा क्योंकि मेरी आर्किस और क्यूजीआईएस दोनों को उपरोक्त प्रक्रिया का उपयोग करके अपने द्वारा सहेजे गए शेपफाइल्स को खुशी से पहचानना प्रतीत होता है, और मैं ज्यामिति और तालिका प्रविष्टियों को संशोधित कर सकता हूं या किसी भी स्पष्ट समस्याओं के बिना अधिक अरबी पाठ के साथ नए बहुभुज जोड़ सकता हूं। भले ही आर्क यूटीएफ -8 एन्कोडिंग के साथ नए आकार के फाइल को सहेजना नहीं चाहता है, यह लगता है कि उन्हें अपडेट / फिर से शुरू करने के लिए तैयार है)।

  • मैं मान रहा हूँ कि मेरे कंप्यूटर पर लिबरऑफिस की कार्यक्षमता विंडोज में समान है। मैं अपने अधिकांश काम के लिए GNU / Linux का उपयोग करता हूं, और केवल Windows के लिए बूट करता हूं अगर मुझे किसी कार्य या किसी अन्य के लिए ArcGIS या ऑटोकैड का उपयोग करने की आवश्यकता होती है, तो मैंने फेडोरा पर चलने वाले लिब्रेऑफ़िस में .dbf फ़ाइल का संशोधन किया। मुझे लगता है कि यह विंडोज पर उसी तरह काम करता है, लेकिन मैं यह परीक्षण नहीं कर सकता कि मेरे विंडोज विभाजन पर लिब्रे ऑफिस स्थापित किए बिना और मेरे वर्तमान इंटरनेट कनेक्शन गैर-आवश्यक डाउनलोड के लिए थोड़ा धीमा है। एक्सेल के लिए प्लगइन्स हैं जो आपको एक चयनित एन्कोडिंग में .dbf फ़ाइलों को सहेजने की अनुमति देता है (exceltodbf.sourceforge.net/, उदाहरण के लिए), लेकिन मैंने उनकी कोशिश नहीं की है। हेरफेर करने और बचाने के लिए पूरी तरह से अन्य तरीके हो सकते हैं। dbf, लेकिन मैंने लिबर ऑफिस के साथ इसे करने के लिए एक उचित आसान तरीका खोजने के बाद उन पर ध्यान नहीं दिया है।

  • यदि आप आर्कजीआईएस में प्रोडक्शन मैपिंग एक्सटेंशन के लिए भुगतान करते हैं, तो यह पूरा मामला टालने योग्य लगता है, जो आपको इस पृष्ठ के अनुसार यूटीएफ -8 एन्कोडिंग के साथ एफजीडीबी को सीधे एफएफडीबी में बदलने की अनुमति देता है: http://resources.arcgis.com/hi/help /main/10.1/index.html#//0103000001m1000000 । क्यों नहीं बल्कि बुनियादी कार्यक्षमता (यूनिकोड अभी थोड़ी देर के लिए है, और वहाँ अंग्रेजी के अलावा अन्य भाषाओं की एक बहुत हैं) केवल उन ग्राहकों के लिए उपलब्ध है जो अतिरिक्त भुगतान करते हैं, ESRI के लिए एक सवाल है।


0

आपको पहले यह पता लगाना होगा कि इनपुट डेटा किस एन्कोडिंग में है, इसलिए आप अपने टूल को बता सकते हैं कि डेटा को एक उपयुक्त एन्कोडिंग में कैसे परिवर्तित किया जाए। यदि आपके पास पहुंच है, तो मैं एमडीबी से सीधे पाठ को तालिका निर्यात करने की कोशिश करूंगा और आउटपुट एन्कोडिंग को UTF8 पर सेट करूंगा। यदि आप आर्कगिस में एक्सपोर्टेड शेपफाइल खोलते हैं, तो एन्कोडिंग सही ढंग से सेट है? DBF कोड पेजों का समर्थन करता है , और यह संभव है कि OGR रूपांतरण के लिए सही नहीं उठा रहा है।

स्पष्ट रूप से इनपुट स्ट्रीम सेट करने के लिए MDBtools (OGR ड्राइवर के भाग के रूप में उपयोग किए गए ) के उपयोग के तरीके भी हैं , लेकिन मैं पहले अन्य तरीकों की कोशिश करूँगा।


0

मैं इसके बजाय आर्कगिस रास्ते पर जाऊंगा। बस यहाँ से निर्देश का पालन करके ArcGIS में UTF-8 को एन्कोडिंग सेट करें । इसके बाद सिर्फ फीचर क्लासेस को शेपफाइल में एक्सपोर्ट करें। अब आपको प्रत्येक लेयर के साथ एक अतिरिक्त CPG (कोड पेज फाइल) फाइल मिलेगी। यह केवल स्ट्रिंग "UTF-8" के साथ एक पाठ फ़ाइल है और आपके सभी डेटा स्वचालित रूप से UTF-8 में एन्कोडेड है।

यदि आप अन्य एन्कोडिंग का उपयोग करने के लिए इच्छुक हैं तो बस निर्देश देखें।

महत्वपूर्ण बात यह है कि इस असाइनमेंट को समाप्त करने के बाद आपको इस सेटिंग को डिफ़ॉल्ट मान में बदलना चाहिए क्योंकि यदि आप इस मान को "UTF-8" के लिए रखते हैं तो भविष्य में ArcGIS "UTF-8" एन्कोडिंग का उपयोग करके सभी शेपफाइल्स का निर्यात करेगा।

आशा है कि आपकी मदद करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.