PostGIS में बड़ी आपदाओं और QGIS में दृश्य के साथ खराब प्रदर्शन


23

मेरे सवाल में कई सॉफ्टवेयर टूल्स के उपयोग और प्रदर्शन की चिंता है, जैसे कि PostgreSQL, PostGIS, QGIS और DDAL।

मैं एक लंबे समय तक आर्कजीआईएस, पायथन और आर उपयोगकर्ता हूं जो मुक्त खुले स्रोत जीआईएस पारिस्थितिकी तंत्र और लिनक्स में भी विविधता लाने में रुचि रखते हैं। हाल ही में मैं PostgreSQL (ver 9.4) और PostGIS (ver 2.1) के साथ QGIS (2.8 2.8) का उपयोग करने में बहुत दिलचस्पी रहा हूं, और मैंने विंडोज 8.1 x64 (संक्षिप्त में कंप्यूटर चश्मा) के साथ कंप्यूटर पर सॉफ्टवेयर स्थापित किया है: थिंकपैड 2.1GHz कोर 2, 8GB रैम और एक 240GB SSD) के साथ X200s। एक बार जब मैं अपने स्थानिक डेटा (~ 100GB मूल्य) का प्रबंधन करना सीख लेता हूं, तो मैं इस मशीन पर Ubuntu चलाना चाहूंगा।

फिलहाल, मैं बस मज़बूती से स्टोर करने और शेपफाइल्स और आपदाओं को दूर करने की कोशिश कर रहा हूँ। अब तक मैं PostGIS में शेपफाइल्स लोड करने में सफल रहा हूं, लेकिन आपदाएं अधिक समस्याग्रस्त साबित हो रही हैं। मैंने छोटे जियोफाई और जीआरआईडी फाइलों के एकल और बैच आयातों को सफलतापूर्वक पूरा कर लिया है, लेकिन बड़ी आपदाओं (कहते हैं, एक 15619x14655 सेल आईएमजी या डिस्क पर आकार में 870 एमबी फ़ाइल) को हमेशा के लिए पोस्टजीआईएस में लोड करना है। मैंने इन मापदंडों का उपयोग करके टाइलों द्वारा स्थानिक सूचकांक बनाने और चूहों को लोड करने के लिए raster2pgsql टूल को पढ़ा और कॉन्फ़िगर किया है:

raster2pgsql -s 3161 -C -I D:\PostGIS_data\dem.img -t auto raster.dem | psql -h localhost -U postgres -p 5432 -d postgres

आयात करने में प्रदर्शन अभी भी बहुत खराब है, और हार्डवेयर समस्या नहीं है। क्यूजीआईएस में पोस्टगिस चूहों की कल्पना और भी बदतर है, धीरे-धीरे छोटे चूहों को सबसे अच्छे रूप से लोड करना या पूरी तरह से ठंड। मेरे द्वारा उल्लिखित एक बड़ी आपदाएं QGIS में कल्पना करना असंभव हैं। प्रलेखन और मंच चर्चा से, यह कमी GDAL के PostGIS रेखापुंज चालक के कारण प्रतीत होती है न कि स्वयं QGIS के कारण। फोरम चर्चा में इस समस्या का संक्षेप में उल्लेख किया गया है और कुछ ने यह भी सुझाव दिया है कि पोस्टगिस में चूहों को संग्रहीत नहीं किया जाना चाहिए (स्थानिक डेटाबेस में बिंदु क्या है जो आसानी से चूहों को संभाल नहीं करता है?)। फिर भी मैं नियमित रूप से ईएसआरआई की फाइल जियोडैटेबेस का उपयोग स्टोर करने, कल्पना करने और बहुत बड़ी (~ 70 जीबी) की आपदाओं का जल्दी और आसानी से विश्लेषण करने के लिए करता हूं, और आर्कजीआईएस 10.1 इस तरह के नियमित संचालन के कारण कभी भी जमा या धीमा नहीं होता है।

क्या कुछ ऐसा है जो मुझे याद आ रहा है, एक अड़चन है जिसे मैंने संबोधित नहीं किया है? क्या PostgreSQL को PostGIS के प्रदर्शन लाभों का एहसास करने के लिए ट्यूनिंग की आवश्यकता है? क्या मुझे GDAL का एक संस्करण याद आ रहा है जिसे मुझे शिकार करने और संकलन करने की आवश्यकता है? मैं विशेष रूप से आकृति विज्ञान और आपदाओं के क्यूजीएस में पोस्टजीस के प्रदर्शन और दृश्य में सुधार कैसे कर सकता हूं? मैं लिनक्स टर्मिनल के माध्यम से व्यापक और त्वरित स्थानिक डेटा प्रबंधन की महिमा का आनंद कैसे ले सकता हूं? इस मुद्दे पर किसी भी मदद का स्वागत किया जाएगा!


मैंने डंकन गोलिचर द्वारा इस गाइड का अनुसरण किया: https://duncanjg.wordpress.com/2012/11/20/the-basics-of-postgis-raster/

मैं मूल रूप से एक स्वचालित सेटिंग के साथ टाइल का उपयोग कर रहा था, लेकिन मैंने प्रति पंक्ति 100x100 कोशिकाओं को टाइलिंग को रीसेट कर दिया और फिर पिरामिड को शामिल किया जैसा कि गाइड में दिखाया गया है:

raster2pgsql -s 3161 -d -C -I -M -l 4 D:\PostGIS_data\dem.img -t 100x100 raster.dem100 | psql -h localhost -U postgres -p 5432 -d postgres

मैं अच्छे समय में 870MB IMG रेखापुंज को सफलतापूर्वक आयात करने और अनुप्रयोग को धीमा या दुर्घटनाग्रस्त किए बिना QGIS में प्रदर्शित करने में सक्षम था। रेंडरिंग टाइम उतनी तड़क-भड़क वाला नहीं है जितना मैं उम्मीद करता हूं, लेकिन यह स्वीकार्य है। मैं ठीक से उपयोग करने के लिए -l पैरामीटर पर आगे पढ़ूंगा।

संयोग से, dem.img फ़ाइल को dem100 तालिका के रूप में आयात करने में, एक और रेखापुंज तालिका "o_4_dad100" नामक बनाई गई थी। जब मैं इसे QGIS में एक परत के रूप में आयात करता हूं, तो इसकी मूल्य सीमा 201 से 524 के बीच होती है, जबकि dem100 परत में 36 से 524 तक की सीमा होती है। क्या मैं यह मानने में सही हूं कि यह अतिरिक्त तालिका पिरामिड तालिका है जिसमें एक संकरा है कम रिज़ॉल्यूशन के लिए एकत्रित होने के परिणामस्वरूप मूल्य सीमा?


मुझे नहीं लगता कि अपर्याप्त हार्डवेयर समस्या है। यहाँ मैंने अभी तक जो कुछ भी पाया है उसका एक संक्षिप्त सारांश है।

GDAL के PostGIS रेखापुंज चालक के पास पिछले प्रदर्शन के मुद्दे हैं ( यहाँ भी देखें )। हालांकि इन समस्याओं को 2012 में नोट किया गया था, मुझे आश्चर्य है कि क्या GGAL 1.11.2 QGIS 2.8 में पाया गया है फिर भी यह समस्या है। निश्चित रूप से रास्टर विज़ुअलाइज़ेशन और स्टोरेज के लिए QGIS और PostGIS का उपयोग करने वाले अन्य हैं?

एक संभावित संबंधित नोट पर, मैंने QGIS में पोस्टजीस विशेषता टेबल खोलने के साथ ~ 4.7 मीटर रिकॉर्ड के साथ प्रदर्शन के मुद्दे भी रखे हैं । उस धागे में कुछ सुझावों के बाद और समस्या को ठीक किए बिना, मैंने अंततः क्यूजीआईएस के साथ एक बग रिपोर्ट दायर की जो अंततः बंद हो गई और निम्नलिखित समान बग रिपोर्ट से जुड़ी हुई थी । हालांकि बग रिपोर्ट बंद हो गई है, यह तय नहीं लगता ...

अब तक के मेरे प्रयासों को पूरा करने के लिए:

  • मैंने स्थानिक डेटा के लिए PostgreSQL सर्वर को अनुकूलित किया है।
  • मैंने ज्यामिति तालिकाओं के लिए स्थानिक सूचकांक बनाए हैं और एक VACUUM प्रदर्शन किया है।
  • बड़ी विशेषता तालिकाओं को खोलने के लिए QGIS व्यवहार (~ 4.7 मीटर रिकॉर्ड) तात्कालिक देखने के लिए सबसेट वापस करने के बजाय सभी रिकॉर्डों को पढ़ने की कोशिश करता है। इससे खराब प्रदर्शन होता है।
  • बड़े PostGIS ज्यामिति तालिकाओं को प्रस्तुत करने में प्रदर्शन एक समस्या नहीं लगती है।

  • Raster2pgsql के साथ, रेखापुंज को अनुक्रमित किया गया, टाइल लगाया गया, और PostGIS में पिरामिड के साथ रेखापुंज तालिकाओं के रूप में आयात किया गया।

  • किसी भी उचित आकार की आपदाएं अभी भी अविश्वसनीय रूप से धीमी गति से पोस्टगिस में आयात करने के लिए धीमी हैं, क्यूजीआईएस में चारों ओर खुला और पैन है।

यह भी ध्यान देने योग्य है कि जब बड़े चींटियों का आयात करते हैं या पोस्टजीआईएस के साथ बड़ी विशेषता तालिकाओं को खोलते हैं, तो raster2pgsql और qgis-bin के लिए मेमोरी की खपत 1GB से अधिक है। जैसा कि @Michael और @Paul ने मेरे शुरुआती सवाल के जवाब में उल्लेख किया है, ऐसा प्रतीत होता है कि पोस्टगिस का मतलब चूहों को संचय करने से कोई लाभ नहीं है। हालांकि, उस बिंदु पर मैं सवाल करता हूं कि मैं अपनी जीआईएस जरूरतों के लिए क्यूजीआईएस + पोस्टजीस को क्यों चलाऊंगा, खासकर जब ईएसआरआई फाइलगीडीएस रेखापुंज विशेषताओं, मोज़ेक डेटासेट, और अन्य रेखापुंज संचालन को सक्षम करता है, जो कि जियोडेटाबेस द्वारा सुगम होता है। इसलिए शायद या तो मुझे वाकई कुछ याद आ रहा है या QGIS और PostGIS मेरी GIS की जरूरतों को पूरा नहीं करते हैं। मुझे विश्वास करना मुश्किल है।


Rasters करता है PostGIS में होना? इससे आपको क्या लाभ / अतिरिक्त कार्यक्षमता की उम्मीद है? मैंने पाया कि PostGis वेक्टर स्वीकार्य था, और बहु-उपयोगकर्ता संपादन की पेशकश की थी, लेकिन PostGis रेखापुंज को फ़ाइल-आधारित (संग्रहीत सर्वर) रेखापुंज पर कोई वास्तविक लाभ नहीं था। हालांकि अच्छा सवाल; यह काफी संभव है कि मेरे मूल्यांकन में कुछ लाभ मिले हैं ...
माइकल स्टिमसन

मैंने सोचा था कि PostGIS के चूहों ने तेजी से रेखीय गणना के साथ-साथ रेखापुंज / वेक्टर संचालन के साथ बेहतर प्रदर्शन सक्षम किया है। यह एक स्थानिक DB के लाभों के अतिरिक्त है: विश्वसनीयता, पहुंच, बैकअप सुविधाएं, अधिक कॉम्पैक्ट भंडारण, आदि। किसी भी मामले में, एक फ़ाइल / टाइल दृष्टिकोण खोज कार्यों, पूर्व-निर्मित पिरामिड, टाइलिंग, और के लिए अनुमति नहीं देता है अन्य क्षमताओं में सुधार होता है कि कैसे रेखापुंज का उपयोग किया जाता है और कल्पना की जाती है।
mbcaradima

मैंने देखा कि कोई मेट्रिक नहीं है जो कहता है कि पोस्टगिस रेखापुंज रेखापुंज गणनाओं में अधिक तेज़ होते हैं .. किसी भी स्थिति में 240GB SSD (अच्छा विकल्प BTW, RAID की तुलना में RAID लागत / प्रयास के एक अंश पर तेज़) के साथ आप बहुत तेज़ी से भरेंगे। ... ECW / JP2 8bit के लिए या LZW / Deflate संपीड़न के साथ GeoTIFF के साथ उन बक्से में से अधिकांश को टिक करता है, पूर्व-निर्मित पिरामिड, टाइलिंग (वीआरटी के माध्यम से), फ़ाइलों के रूप में बैकअप, आदि ... एकमात्र लाभ खोज फ़ंक्शन है। मुझे पता है कि मैं विषय से थोड़ा हटकर हूं लेकिन अगर पोस्टगिस रैस्टर वह नहीं कर रहा है जो आप उम्मीद करते हैं तो प्रदर्शन के लिए फाइल रैस्टर से क्यों न चिपके?
माइकल स्टिमसन

3
किसने कभी कहा था कि PostGIS आपदाएं किसी भी चीज़ से तेज थीं ? वे अधिक सुविधाजनक (आसान SQL एक्सेस एपीआई) हो सकते हैं और वे विश्लेषण के लिए उपयोगी हो सकते हैं (एक ही बाल्टी में रेखापुंज और वेक्टर) लेकिन तेज ? कभी नहीँ।
पॉल रैमसे

1
मैं PostGIS (PostGIS इन एक्शन, 2 थ एड) पर एक किताब के माध्यम से काम कर रहा हूं और यह मानना ​​स्वाभाविक था कि एक स्थानिक DB में आकार आकृति का उपयोग करने के लाभ एक रेखापुंज तक भी बढ़ेंगे। बेशक, उनके अलग-अलग डेटा मॉडल को देखते हुए मैं देख सकता हूं कि यह धारणा पूरी तरह से सहज थी। फिर भी, आर्किटिस के साथ भूगर्भशास्त्र में चींटियों को आमतौर पर संग्रहीत किया जाता है और पिरामिड, तेज भू-आकृति निर्माण और मोज़ाइक के निर्माण की अनुमति देता है। ओपन सोर्स सॉफ्टवेयर के साथ एक वर्कफ़्लो में, जीआईएस उपयोगकर्ता को आपदाओं के बाद कैसे काम करना चाहिए? BTW, मैं खुद को चेहरे पर मुक्का मारूंगा।
mbcaradima

जवाबों:


9

यदि आप QGIS में बड़ी आपदाओं को प्रदर्शित करना चाहते हैं, तो आपको पिरामिड का निर्माण करना होगा, या तो फाइल सिस्टम पर एक tif छवि के लिए या Postgis में पंजीकृत छवि के लिए।

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

यदि आप सरल -l विकल्प के बिना छवि आयात करते हैं, या सिर्फ -l 4 इसके साथ काम नहीं करेगा

यदि आप उपयोग करते हैं, उदाहरण के लिए, -l 2,4,8,16पिरामिड के चार स्तर बनाए जाएंगे, जैसे नीचे की परत:

-L 2,4,8,16 के साथ उत्पन्न पिरामिड

यदि आप एक बेहतर उपयोगकर्ता अनुभव चाहते हैं, तो आपको पिरामिड के अधिक स्तरों को जोड़ना चाहिए, जैसे -l 2,4,8,16,32,64,128,256। इससे पिरामिड के आठ स्तर बनेंगे।

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

संक्षेप में, इस प्रश्न का उत्तर है: विकल्प के साथ रेखापुंज को आयात -lकरें और समान स्तर के पिरामिड स्तर का उपयोग करें जैसा कि आप फ़ाइल सिस्टम पर एक ही रेखापुंज के लिए उपयोग करते हैं।

उदाहरण के लिए:

raster2pgsql -s 3161 -d -C -I -M -l 2,4,8,16,32,64,128,256 D:\PostGIS_data\dem.img -t 100x100 raster.dem100 | psql -h localhost -U postgres -p 5432 -d postgres

5

मैं पोस्टगिस से QGIS में रेंडरिंग रेंडरिंग के साथ सटीक एक ही मुद्दे पर चल रहा हूं ( मेरे हाल के सवाल देखें ) मुझे यह पोस्ट मददगार लगी और निम्नलिखित बेहतर रेंडरिंग को थोड़ा बढ़ाते हुए:

share_buffers = 5000MB work_mem = 100MB रखरखाव_वर्क_म = 100 एमबी

हालांकि, इसके साथ ही, मैं पूरी तरह से सहमत हूं कि क्यूजीआईएस में पोस्टगिस चूहों का प्रदर्शन बहुत अच्छा नहीं है। मैं 608 संकुचित जियोटीफ़ के साथ काम कर रहा हूं जो वीआरटी के रूप में बहुत अच्छा है, लेकिन अनिवार्य रूप से पोस्टजीआईएस में अनुपयोगी हैं। Dbase सर्वर के प्रदर्शन को बढ़ाने की कोशिश करें, लेकिन इससे आगे मैं बहुत मददगार नहीं हो सकता। मुझे भी अपने संगठन के भीतर आपदाओं की सेवा के लिए फाइल सिस्टम पर निर्भर रहना पड़ सकता है।


आपकी टिप्पणी के लिए धन्यवाद, क्लिफ। मैंने आपके कुछ परिवर्तनों को लागू किया है और किसी भी बड़े प्रदर्शन सुधार की रिपोर्ट करेगा। कुल मिलाकर मेरा कहना है कि QGIS प्रदर्शन PostGIS रेखापुंजों की कल्पना करने और विशेषता तालिकाओं को लोड / क्वेरी करने के लिए निराशाजनक है। PostGIS में तेजी से प्रदर्शन भी निराशाजनक है। मुझे फ़ाइल जियोडेट डेटाबेस से इन समस्याओं में से कोई भी नहीं है, इसलिए मैं सोच रहा हूं कि क्या गलत है?
mbcaradima

1
मेरी भावनाये ऐसी ही हैं। मैं इस जा रहा है और बस इसे चलाने के लिए नहीं मिल सका की कोशिश कर रहा सप्ताह बिताया। मैं अब 10 प्रोसेसर और 10GB RAM के साथ अपने VM (Ubuntu सर्वर) का परीक्षण कर रहा हूं। यदि वह अभी भी सुस्त है, तो मुझे कुछ और गलत करना चाहिए। मैं भी हैरान हूं कि क्यूजीआईएस में डब्ल्यूएमएस की परतें मूल रूप से उनकी धीमी गति के कारण अनुपयोगी हैं। जब से हम दोनों एक ही नाव में हैं, हमें इस पर और जुड़ना चाहिए।
क्लिफ

यदि वे वीआरटी के रूप में बहुत अच्छा लोड करते हैं, तो आप वहां क्यों नहीं रुके? इस महान रेखापुंज यात्रा से आप किस लाभ की उम्मीद कर रहे हैं?
पॉल रेम्सी

मुझे लगता है कि यह मेरा जवाब है, पॉल, बिल्कुल वही है जो ओपी ने अगली पोस्ट में कहा है: "हालांकि, उस बिंदु पर मैं सवाल करता हूं कि मैं अपनी जीआईएस जरूरतों के लिए क्यूजीआईएस + पोस्टगिस को बिल्कुल क्यों चलाऊंगा, खासकर जब ईएसआरआई फ़ाइलगीडीएस रास्टर विशेषताओं, मोज़ेक डेटासेट को सक्षम करते हैं। , और अन्य रेखापुंज ऑपरेशनों को जियोडेटाबेस द्वारा सुगम बनाया गया है। इसलिए शायद या तो मैं वास्तव में कुछ याद कर रहा हूं या क्यूजीआईएस और पोस्टगिस मेरी जीआईएस की जरूरतों को पूरा नहीं करते हैं। मुझे विश्वास करना मुश्किल है। "
क्लिफ

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

4

निश्चित नहीं है कि यह आपका मामला था, लेकिन मुझे पता चला -Iकि एपेंडिंग डेटा के साथ एक साथ उपयोग नहीं किया जाना चाहिए -a

मैं कई TIF फ़ाइलों को DB में आयात कर रहा था, और -Iवास्तव में फिर से सूचकांक बनाता है और analyseप्रत्येक फ़ाइल के लिए तालिका पर प्रदर्शन करता है , जिसमें 10 गुना अधिक समय लगता है।

-Iकेवल -pविकल्प बनाते समय तालिका का उपयोग किया जाना चाहिए ।

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