ओपन-सोर्स, क्रॉस प्लेटफ़ॉर्म डेटासेट प्रकार के रूप में शेपफाइल्स के विकल्प [बंद]


20

मैं ऐसे सॉफ्टवेयर पर काम कर रहा हूं जो बहुत ही ईएसआरआई उन्मुख है, लेकिन भविष्य के संस्करण में संभवतः ईएसआरआई सॉफ्टवेयर का उपयोग नहीं किया जाएगा। यह शेपफाइल्स और जियोडैट डेटाबेस का उपयोग करता है। मैं अपने सभी डेटा को भविष्य के एंड्रॉइड और अन्य मोबाइल उपकरणों पर होने वाले सॉफ़्टवेयर के भविष्य के संस्करणों के लिए शेपफाइल्स में प्राप्त करने की योजना बना रहा हूं। ऐसा प्रतीत होता है कि शेपफाइल्स ओपन-सोर्स जीआईएस दुनिया में सुविधाओं के लिए सबसे आम डेटाटाइप हैं, लेकिन अन्य क्या हैं, और वे क्या लाभ लाते हैं? मैं GeoJSON और KML से परिचित हूं, लेकिन मुझे यकीन है कि अन्य लोग भी हैं।

मैं सभी विकल्पों को जानना चाहूंगा, लेकिन मैं विशेष रूप से डेटासेट प्रकारों में रुचि रखता हूं जो मोबाइल उपकरणों पर संग्रहीत करने के लिए सबसे उपयुक्त हैं (डेटा इंटरनेट कनेक्शन के बिना सुलभ होना चाहिए)।



1
2011 से जियोपैकेज के अस्तित्व में आने से पहले यह सवाल पूछा गया था और स्वाभाविक रूप से उत्तर में उस विकल्प को शामिल नहीं किया गया था।
user30184

2
Esri File Geodatabase के पास चार फ़ील्ड्स की अधिकतम लंबाई होती है, जो अधिकांश छोटे पुस्तकालयों की पाठ्य सामग्री को प्रतिद्वंद्वी कर देती हैं, Esri Personal Geodatabase बहुत लंबे टेक्स्ट फ़ील्ड्स का भी समर्थन करती हैं। दोनों को QGIS और बेशक Esri ArcGIS के माध्यम से एक्सेस किया जा सकता है लेकिन इन पैकेजों के बाहर इन डेटा प्रकारों के लिए समर्थन सीमित है। हालांकि संस्करण से सावधान रहें, मैं कोशिश करूंगा कि 9.3 Esliant बनाने की कोशिश करूं क्योंकि आपके द्वारा एनकाउंटर किए जाने वाले सबसे एशरी सॉफ्टवेयर 10+ होंगे और QGIS के लिए जियोडैटेबेस API को इस संस्करण का समर्थन करना चाहिए । GeoJSON और KML भी बड़े पाठ क्षेत्रों का समर्थन कर सकते हैं लेकिन सार्वभौमिक रूप से पठनीय नहीं हैं।
माइकल स्टिमसन

1
Umm, 9.3 फ़ाइल जियोडैटेबस संगतता के लिए एक अच्छी योजना नहीं है - FGDB API 9.x-style .gdb का समर्थन नहीं करता है।
विंस

1
@ElioDiaz आकारफाइल्स अभी भी मौजूद हैं, अपनी सीमाओं के बावजूद, क्योंकि वे सबसे सार्वभौमिक सुविधा संक्रमण मीडिया हैं - लगभग हर GIS पैकेज खुलता है या Esri आकृति का आयात कर सकता है। प्रारूप एक खुला मानक है इसलिए कोई भी अपने तरीके से पढ़ सकता है और लागू कर सकता है। निस्संदेह बेहतर जीआईएस फीचर प्रारूप हैं, लेकिन वे सार्वभौमिक रूप से नहीं अपनाए जाते हैं ... इस विषय पर जीएसटी पर कई बार चर्चा की गई है। जितना हम इसे पसंद करेंगे, अन्यथा शेपफाइल्स कुछ समय के लिए सुविधाओं के लिए सबसे कम आम भाजक होने की संभावना है, इसलिए हमें अभी इसे पीसने और सहन करने की आवश्यकता है।
माइकल स्टिमसन

जवाबों:


18

जैसा कि @ user890 कहता है, यह बहुत कुछ इस बात पर निर्भर करता है कि डेटा का उपयोग कैसे किया जाएगा। मुख्य रूप से दो तरीके हैं जिनसे आप डेटा एक्सेस कर सकते हैं:

  1. एक बार में सभी को मेमोरी में लोड करके और फिर डेटा को मेमोरी में एक्सेस / क्वेरी करें।
  2. विशिष्ट सुविधाओं के लिए क्वेरी करके, बक्सिंग बॉक्स आदि।

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

SQLite / Spatialite क्वेरी (SQL) के लिए बेहतर है, लेकिन डेटा को संरचना करना अधिक कठिन है - आपको डेटाबेस टेबल में सब कुछ समतल करना होगा और फिर क्वेरी करते समय JOIN (जो महंगा हो सकता है) करें।

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


14

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

मोबाइल एप्लिकेशन के लिए, मुझे लगता है कि स्क्वैलाइट / स्थानिक प्रारूप शुरू करने के लिए तार्किक प्रारूप होगा। मुझे पता है कि एंड्रॉइड साइक्लाइट के लिए मूल समर्थन प्रदान करता है। इसलिए, यह मानते हुए कि आप स्थानिक एक्सटेंशन को लोड कर सकते हैं, आपके पास एक बहुत शक्तिशाली जीआईएस उपलब्ध होगा।

आप कितने साहसी हैं, इस पर निर्भर करते हुए, यह प्रतीत होता है कि एंड्रॉइड के लिए गदल का निर्माण असंभव नहीं है। फिर आप अपने निपटान में कई और प्रारूप तैयार कर सकते हैं। मुझे यकीन है कि यदि आप इस मार्ग पर गए हैं तो इस साइट के कई उपयोगकर्ता रुचि लेंगे।


13

एक नया प्रारूप जो हाल ही में आया है वह है जियोपैकेज । यह विनिर्देश SQLite डेटाबेस के ऊपर बनाया गया है, इसलिए इसका एकल-फ़ाइल आधार है, लेकिन OGC मानक होने के अतिरिक्त लाभ के साथ ।
फ़ाइल आकार के रूप में, यह संभावना है कि भंडारण प्रारूप की तुलना में अधिक कॉम्पैक्ट है .shpऔर .dbfशेपफ़ाइल में इस्तेमाल स्थानिक और विशेषता डेटा के लिए प्रारूप। इसलिए, एक आकृति में समान विशेषताओं की समग्रता की तुलना में, जियोपैकेज समान आकार या छोटा होने की संभावना है।
इस तस्वीर में सैन डिएगो में एक सीवर मेन दिखाया गया है जिसे शेपफाइल और जियोपैकेज दोनों के रूप में सहेजा गया है। जैसा कि आप देख सकते हैं, वे मूल रूप से एक ही आकार के हैं। शेपफाइल बनाम जियोपैकेज का आकार
चूंकि यह प्रारूप SQLite पर आधारित है, इसलिए इसे मोबाइल उपकरणों के लिए तैयार किया जाना चाहिए। कई एप्लिकेशन पहले से ही स्टोरेज के लिए इस डेटाबेस प्रारूप का उपयोग करते हैं, इसलिए यह एक सिद्ध तकनीक है। यह बिना किसी अनुवाद की आवश्यकता के क्रॉस प्लेटफॉर्म का उपयोग कर सकता है।


4

Lennert से सहमत हैं, नौकरी के लिए सही प्रारूप चुनें।

हालांकि मैंने स्पैटियल को एक बहुत ही बहुमुखी प्रारूप पाया है। आपके पास एकल फाइल है जो आपको आकार देने की तरह डेटा को संग्रहीत करने और साझा करने में लचीलापन देता है, लेकिन आप उन समस्याओं को नकारते हैं जो आपने चरित्र सीमाओं का उल्लेख किया है; आपको स्थानिक डेटाबेस के लाभों का फायदा उठाने का अवसर प्रदान करते हुए।

दुर्भाग्य से यह आर्कगिस में पूरी तरह से समर्थित नहीं है (मैंने थोड़ी देर में कोशिश नहीं की है तो मैं गलत हो सकता है), लेकिन क्यूजीआईएस में महान काम करता है।


4

बहुत सारे अलग-अलग प्रारूप हैं और सबसे अच्छा आपके पास आपके डेटा सेट, आपके द्वारा उपयोग किए जाने वाले उपकरण और उन चीजों पर निर्भर करता है जो आप इसके साथ करना चाहते हैं।

जिनमे से कुछ का मैं उपयोग करता हूँ:

  • फ़ाइल जियोडेटाबेस और स्पैटियलइट डेटाबेस: एक कैटचेल जिसे मैं उपयोग करना पसंद करता हूं। यह सभी प्रकार के डेटा को धारण कर सकता है और संबंध बना सकता है, अनुक्रमण कर सकता है ... मैं एसेरी वातावरण में काम करते समय gdb का उपयोग करता हूं, किसी और चीज के लिए स्थानिक।

  • GeoJson: प्रारूप को पढ़ने में आसान मैं आमतौर पर छोटे डेटासेट के लिए उपयोग करता हूं जिन्हें अनुक्रमण के रास्ते में बहुत अधिक आवश्यकता नहीं होती है

  • उचित डेटाबेस: मैं इसका उपयोग बड़े पैमाने पर डेटा सेट और जटिल एल्गोरिदम के लिए करता हूं।

लेकिन दूसरों के टन भी हैं।


3

मैं SQLite / spatiallite डेटाबेस का उपयोग करने की सलाह दूंगा। यह जियोडेटाबेस की तरह एक एकल फ़ाइल है (एक से कई टेबल / परतों के भीतर) और इसका उपयोग आर्कगिस डेस्कटॉप और क्यूजीआईएस में किया जा सकता है।


मैंने बहुभुज डेटा को साइक्लाइट में बचाया और QGIS के साथ लोड किया, और एक संदेश मिला जिसमें कहा गया था कि "CRS अपरिभाषित था: CRS EPSG के लिए डिफ़ॉल्ट: 4326 - WGS84"। क्या यह प्रक्षेपण के बारे में जानकारी नहीं खोता है?
इचिरो

किस सॉफ्टवेयर से आपने बहुभुज परत को साइक्लाइट में बचाया?
कलाकृति 21

1

विकल्प वास्तव में इस बात पर निर्भर करते हैं कि आप किस भाषा का उपयोग करेंगे और डेटा का उपयोग कैसे किया जाएगा। Android सबसे अधिक जावा होगा। प्रत्येक विकल्प उस निर्णय के आधार पर एक प्रकार का लागत / लाभ तुलना होगा। सभी डेटा प्रारूप कुछ उपयोग मामलों के लिए अनुकूलित हैं।

अगला सवाल यह है कि डेटा का उपयोग कैसे किया जाएगा। क्या मोबाइल ऐप सिर्फ स्थानिक डेटा पढ़ेगा? या क्या यह अक्सर डेटा पढ़ना और लिखना होगा? कितनी बार यह अन्य उपकरणों या सर्वरों के साथ डेटा का आदान-प्रदान करेगा?

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