एडिटिंग के दौरान भ्रष्ट शेपफाइल्स बनाने से कैसे बचें?


15

मैं अपने जीआईएस तकनीशियनों में से एक है जो क्यूजीआईएस में कुछ लाइनों को आकार-प्रकार के प्रारूप में अंकीय करता है। मुझे नहीं पता कि उसने यह कैसे किया (और न ही वह करता है), लेकिन किसी भी तरह से आकारहीन भ्रष्ट हो गया। यह बेतरतीब लाइनें बना रहा था या उसके द्वारा बनाई गई कुछ लाइनें बस गायब हो जाएंगी। मैं ArcCatalogue में चला गया कि यह कैसे ArcGIS में देखा और यह वही है जो मैंने देखा:

यहाँ छवि विवरण दर्ज करें

प्रश्न चिह्न चिह्न पर ध्यान दें जहाँ मुझे एक आकार रेखा 'रेखा' चिह्न देखना चाहिए। जाहिर है कि ArcCatalogue इस फ़ाइल को नहीं पढ़ सकता है। इसके अलावा, एक दूसरी dbf फाइल अंत में संलग्न '_packed' के साथ बनाई गई थी। जब मैं Windows एक्सप्लोरर का उपयोग कर आकृति को देखता हूं, तो मैं देखता हूं कि पहले से ही आकृति के लिए एक .dbf है 'M3_PRE_SMU_lines_10Apr13_SMC.dbf', इसलिए मुझे नहीं लगता कि यह _packed shapefile कहां से आया है और मुझे ऑनलाइन कुछ भी नहीं मिल रहा है। वह इसे बोलता है।

मैंने इस फ़ाइल को ArcMap में जोड़ने की कोशिश की और मैंने निम्न त्रुटि प्राप्त की:

यहाँ छवि विवरण दर्ज करें

त्रुटि बहुत आत्म व्याख्यात्मक है ... आकार की संख्या रिकॉर्ड की संख्या से मेल नहीं खाती। मुझे नहीं पता कि यह क्यों हो रहा है। ऑनलाइन कुछ भी प्रतीत नहीं होता है जो बताता है कि यह क्यूजीआईएस में कैसे हो रहा है, लेकिन मुझे कुछ मरम्मत उपकरण दिखाई देते हैं। मैंने वास्तव में केवल QGIS खोलकर, परत जोड़कर, और फिर परत पर क्लिक करके और 'दूसरे आकार' के रूप में 'सेविंग' करके इसे स्वयं ठीक किया। इसलिए, मैंने एक काम का पता लगा लिया है, लेकिन मैं एक समाधान खोजने की उम्मीद कर रहा हूं, जो इसे पहली जगह में होने से रोक देगा। धन्यवाद, माइक


1
मैं वर्षों से QGIS का उपयोग कर रहा हूं और इससे पहले इस समस्या को नहीं देखा है। दूसरे .dbf की "जादुई" उपस्थिति बताती है कि क्यूजीआईएस के बाहर शेपफाइल के साथ छेड़छाड़ की गई है। यदि आप केवल QGIS का उपयोग करके बग को पुन: उत्पन्न कर सकते हैं, तो कृपया बग रिपोर्ट दर्ज करें। यह बहुत महत्वपूर्ण होगा!
UnderDark

मैं कोई भाग्य के साथ समस्या को दोहराने की कोशिश कर रहा हूँ। एक बात जो मैंने नोटिस की, वह यह है कि, आर्कजीआईएस के विपरीत, क्यूजीआईएस में संपादन करते समय मुझे स्कीमा लॉक संदेश नहीं मिलता है (अर्थात यदि किसी के पास स्कीफाइल पर स्कीमा लॉक है और आप उसी को संपादित करना शुरू करते हैं, तो बचत करते समय आर्कजीएस एक त्रुटि फेंक देगा। संपादन करता है। QGIS नहीं करता) मैं सोच रहा हूं कि जब आप स्कीमा लॉक करते हैं तो एक आकृति को बचाने के लिए यह अजीब बचाता है। मुझे यकीन नहीं है कि यह 100% कारण है, लेकिन कुछ ध्यान देने योग्य है।
माइक

मैंने शेपफाइल्स का संपादन करते समय भी इस त्रुटि को क्रॉप किया है। मेरे काम के चारों ओर सिर्फ आर्कपैक में मेरा संपादन करना था। जाहिर है कि यह वास्तविक समाधान नहीं है - लेकिन - आप इस तरह की त्रुटि का सामना करने में अकेले नहीं हैं।
केविन

क्या आपने ..._ SMC.dbf फ़ाइल को ..._ SMC.dbf.backup और ..._ SMC_packed.dbf से ..._ SMC.dbf तक का नाम बदलने का प्रयास किया है?
मथायस कुह्न

2
हाय एक ही समस्या Dufur के साथ। क्यू जीई एनवायरमेंट में बनाई गई फाइलें। यह तब होता है जब मैं आकृति संपादित कर रहा होता हूं और अंत में सहेजने के लिए जाता हूं और फिर संपादन बंद कर देता हूं, जिससे लाइनें गायब हो जाती हैं और विशेषता तालिका में कोई डेटा नहीं लगता है। अगर qgis पर फिर से आकार लोड करने की कोशिश कर रहा है तो यह खाली दिखता है। फ़ोल्डर में फ़ाइल तों। mario.shx एक mario_packed.shp बन गया था। मैंने पाया कि नाम से भरे शब्द को हटाना (यह वापस mario.shx है) आकार अब लोड हो गया है और काम करने लगता है। कितना लंबा? मुझे नहीं पता कि मैं इसके साथ पागल हो रहा हूं
user27144

जवाबों:


16

व्याख्या

OGR (GDAL का हिस्सा) QGIS द्वारा उपयोग की जाने वाली लाइब्रेरी है जिसका उपयोग शेपफाइल्स के लिए किया जाता है। जब ओजीआर फीचर्स को हटाता है तो यह उन्हें तुरंत डिलीट नहीं करता है, लेकिन बस डिलीट की गई सुविधाओं को चिह्नित करता है। एक समय में एक बार, नामक आदेश repack निष्पादित किया जाता है, जो के साथ एक नई फ़ाइल बनाता है प्रत्यय _repack और प्रतियां सभी सुविधाओं के रूप में इस नए फाइल करने के लिए नष्ट कर दिया चिह्नित नहीं कर रहे हैं। एक बार जब यह पूरा हो जाता है, तो मूल .dbf को _repack.dbf के साथ बदल दिया जाता है। यह फिर आकृति के समान काम करता है: एक नया बनाएं (_packed.shp), सभी गैर-हटाए गए सुविधाओं को कॉपी करें और अंततः मूल .shp को बदलें।

यह इस प्रक्रिया में कहीं लगता है, कुछ विफल हो गया (शायद एक दुर्घटना?)।

इस प्रक्रिया के भीतर, फीचर आईडी बदल जाते हैं, इसलिए मुझे लगता है, कि आपके पास जो shp (ज्यामिति) है और dbf (विशेषता तालिका) एक ही सुविधाओं के लिए विभिन्न फीचर आईडी का उपयोग करती है, जो आपके द्वारा अनुभव किए जाने वाले अजीब व्यवहार की ओर ले जाती है। ऐसा लगता है, कि दो फ़ाइलों में से एक में अभी भी (हटाए गए) का हिस्सा है, जबकि दूसरा नहीं है।

इससे कैसे निपटा जाए

अद्यतन, नवंबर 2016: GDAL 2.2 जहाजों में बिलिन कार्यक्षमता के साथ स्वचालित रूप से कॉल को स्वचालित रूप से कॉल करने के लिए जब भी फ़ाइल डिस्क पर लिखी जाती है। इसलिए कुछ और करने से पहले: डायलॉग के बारे में QGIS में GDAL संस्करण की जाँच करें और अपने GDAL (अक्सर QGIS के भाग के रूप में प्रेषित) को हाल के संस्करण में रिलीज़ करें।

वहाँ शायद बहुत से आप इसके बारे में नियमित रूप से बैकअप बनाने के अलावा नहीं कर सकते हैं ताकि आप अधिक से अधिक डेटा न खो सकें, (आप वैसे भी कर रहे हैं, ठीक है? Lot)। और अगर आपको इसे पुन: पेश करने का एक तरीका मिल जाए (एक नमूना डाटासेट के साथ सबसे अच्छा) एक बग रिपोर्ट बनाएं ।

यदि आप फिर से इस समस्या का अनुभव करते हैं, तो आप आकृति पर एक स्थानिक सूचकांक बनाने का भी प्रयास कर सकते हैं । इस प्रक्रिया में, QGIS फोन करेगा repack शेपफ़ाइल पर फिर से, और हो सकता है "मरम्मत" shp / DBF। लेकिन यह सिर्फ एक असत्यापित अनुमान है।

जैसा कि @rhm और टिप्पणियों में बताया गया है, यह {xyz} _packed {{}} फ़ाइल को {xyz}। {Ext} फ़ाइल का नाम बदलने में भी मदद कर सकता है । यदि पैक्ड फ़ाइल पहले ही पूरी तरह से लिखी जा चुकी है और यह सिर्फ नाम बदला गया था जो विफल रहा, तो यह कदम मैन्युअल रूप से करना मान्य है। हालाँकि, अगर _packed फाइल पूरी तरह से नहीं लिखी गई है तो आप अपने फीचर्स के कुछ हिस्सों से गायब हो सकते हैं। तो इससे पहले कि आप कोशिश करें इसमें सभी शामिल फ़ाइलों की बैकअप प्रतियां बनाएं

रेपैक कब कहा जाता है, इसके बारे में पृष्ठभूमि की जानकारी

QGIS 2.0 और 2.8 रिपैक के बीच, जब भी परत को अनलोड किया गया था (QGIS से बाहर निकलें, अलग प्रोजेक्ट लोड करें ...) कहा गया है। यदि कोई सुविधा हटा दी गई है या एक ज्यामिति बदल गई है, तो .shp और .dbf फ़ाइलों को हटाए गए के रूप में चिह्नित रिकॉर्ड मौजूद हैं।

QGIS 2.10 रिपैक के साथ शुरू करने को कहा जाता है जब भी एक ऑपरेशन के बाद परत को बचाया जाता है जिसमें रिकॉर्ड करने के लिए हटाए गए ध्वज को जोड़ने की क्षमता होती है। इसलिए फाइलें अब हमेशा अन्य अनुप्रयोगों द्वारा संसाधित की जाने वाली स्थिति में होनी चाहिए।


1

क्यूजीआईएस में मेरे साथ ऐसा हुआ था। मैंने फ़ाइल नाम से '_पैक्ड' को हटाकर समस्या को हल करने में कामयाबी हासिल की है, जैसा कि ऊपर टिप्पणी अनुभाग में किसी ने सुझाया है।


1

शायद यह टूटी हुई .shx सूचकांक फ़ाइल का एक और मुद्दा है। ज्यामिति प्रकार को .shp और .shx हैडर में संग्रहित किया जाना चाहिए। यदि वे मेल नहीं खाते हैं, तो सॉफ़्टवेयर एक त्रुटि उत्पन्न करेगा।

ऐसा लगता है कि क्यूजीआईएस टूटी हुई इंडेक्स फाइलों पर बहुत सख्त नहीं है, और इसे फिर से बना सकते हैं Save As..., जबकि एआरसीजीआईएस एक सही इंडेक्स फाइल पर जोर देता है, और उन सुविधाओं के लिए एक पैक डीबीएफ (एट्रिब्यूट टेबल) बनाता है जो सही भागों के माध्यम से मिल सकता है। सूचकांक फ़ाइल, या शायद सूचकांक का उपयोग किए बिना।


1

हटाए गए फीचर्स का पुनःप्रयोग और / या विषम आकार का व्यवहार जिसमें से QGIS में हटाए गए फीचर्स एक ज्ञात बग है, इस बग रिपोर्ट 11007 को देखें और इससे संबंधित प्रश्न - हटाए गए बहुभुज पुराने संस्करणों पर वापस लौटते प्रतीत होते हैं । साथ ही आर्कगिस को ऐसे शेपफाइल्स से परेशानी होती है, जब QGIS में MapInfo TAB फ़ाइलों के रूप में सहेजा जाता है, तो वे तब MapInfo RouteFinder प्लगइन को क्रैश करने का कारण बनते हैं जब तक कि रूटफ़िंडर लोड करने से पहले MapInfo में टेबल पहले से पैक नहीं किए जाते हैं। MapInfo में इन दूषित शेपफाइल्स को परिवर्तित करने के लिए यूनिवर्सल ट्रांसलेटर चलाना विफल रहता है।

जैसा कि आपने पाया है, क्यूजीआईएस में 'सेव एज़' करके समस्या को ठीक किया जा सकता है।

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