जियोप्रोसेसिंग के लिए पायथन में आर्कपी का उपयोग करने के उद्योग-आधारित उदाहरण?


12

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

सबसे आसान उत्तर होगा "एसरी मदद पढ़ें और नमूनों के माध्यम से जाएं", लेकिन मैं अधिक विशिष्ट परिदृश्यों की तलाश कर रहा था जो लागू करने के लिए सबसे आम हैं। इस प्रकार, वर्कफ़्लोज़ को साझा करते हुए कहा जाता है कि "हमें शेपफाइल्स के साथ एक .zip फ़ाइल मिल रही है, हम इसे अनपैक करने के लिए पायथन का उपयोग करते हैं, उन सभी को एक्स कोऑर्डिनेट सिस्टम पर प्रोजेक्ट करते हैं, एक आर्कसिडी जियोडेटाबेस में लोड करते हैं, उपयोगकर्ताओं को इन डेटा तक पहुंच प्रदान करते हैं" सबसे स्वागत है। कृपया वर्कफ़्लो का संक्षिप्त विवरण प्रदान करने के लिए सहज महसूस करें, किसी भी चरम विवरण की आवश्यकता नहीं है।

जवाबों:


10

मेरे लिए, जैसा कि आपके प्रश्न से पता चलता है, मैं विशेष रूप से बैच प्रोसेसिंग को स्वचालित करने के लिए अजगर का उपयोग करता हूं, लेकिन किसी भी दोहराने योग्य विशेषज्ञ गणना बनाने के लिए भी। इन दिनों मैं आर्कपी का उपयोग नहीं करता क्योंकि मैं ईएसआरआई लाइसेंस को फ्रीलांस जीआईएस कंसल्टेंट के रूप में नहीं खरीद सकता। मैं GDAL / OGR, Shapely, PostGIS, Numpy और SciPy का उपयोग करता हूं, हालांकि मेरी सूची में सब कुछ ArcPy (और इसमें से कुछ के साथ) किया जा सकता था। उदाहरणों में शामिल:

  1. पूरे ब्रिटेन के लिए आंचलिक सांख्यिकी को व्युत्पन्न करना, जिसमें पहले दो अलग-अलग डेटा प्रकारों के 20 किमी रेखापुंज टाइलों की मोज़ाइकिंग की आवश्यकता होती है, उन चूहों पर कुछ "मैपमैटिक्स" का प्रदर्शन करते हुए, 10 किमी वेक्टर बहुभुज टाइलों के बराबर क्षेत्र का विलय, परिणाम के आंचलिक आँकड़ों की गणना। रेखापुंज मैपमैटिक्स और मूल वेक्टर डेटा के आंकड़ों की तालिका में शामिल होने से पहले एक तार्किक निर्देशिका संरचना में आकारफाइल करने और क्लाइंट के लिए सीडी को जलाने से पहले।
  2. सड़क या ट्रैक के साथ प्रत्येक 100 मीटर की अनुक्रमिक दृश्यता गणना करना और फिर मार्ग डेटा में एम मान के रूप में गणना के परिणाम निर्दिष्ट करना।
  3. रास्टर और वेक्टर डेटा की टाइलों को मोसाइड / मर्ज करके 3 डी लैंडस्केप मॉडल बनाने के लिए स्वचालित प्रक्रिया, आवश्यक क्षेत्र के लिए क्लिपिंग और फिर एक मालिकाना (गैर-जीआईएस) 3 डी प्रारूप में परिवर्तित करना। मैं अपने फ्रीलांस काम में इसके लिए विकसित किए गए छोटे पायथन पुस्तकालय का उपयोग करता हूं।
  4. एक बड़ी परियोजना जो मैंने एक टीम में काम की थी, ने जीआईएस डेटा से नए डेटा को एक प्रारूप में बदलने के लिए बैच प्रक्रियाओं को बनाने के लिए आर्किपी का उपयोग किया, जो कि एक प्रक्रियात्मक कंप्यूटर-गेम-एसेट-जनरेटर द्वारा उपभोग की जा सकने वाली सुविधाओं के साथ एक प्रारूप में। जियोप्रोसेसिंग स्क्रिप्ट को एक बैच प्रोसेसिंग 'स्लेव-ड्राइवर' द्वारा बुलाया गया था जिसे पायथन में भी लिखा गया था और जोंगो के माध्यम से चल रहा था।
  5. छोटे कार्यों के लिए भी पाइथन बहुत उपयोगी है, विशेष रूप से जहाँ कोई पुनरावृत्ति (जैसे फीचर प्रोसेसिंग द्वारा सुविधा) है। ArcGIS का मॉडल बिल्डर संस्करण 10 में आए फ्लो-कंट्रोल के साथ बहुत सुधरा है, लेकिन फिर भी, यह अभी भी अक्सर आवश्यक नियंत्रण प्रदान नहीं कर सकता है और / या आर्कपी में प्रक्रिया लिखने की तुलना में त्वरित और आसान है। मॉडल बिल्डर के साथ जबरदस्ती।
  6. मैंने पाइथन में स्वेप्ट-पाथ विश्लेषण करने के लिए एक उपकरण बनाया है (यह गणना करने के लिए कि क्या कोई बहुत लंबा वाहन किसी दिए गए मार्ग का अनुसरण कर सकता है और जहां ट्रेलर को इमारतों के बीच तंग मोड़ में wedged होने की संभावना होगी। यह फ्रीलांसिंग द्वारा एक अन्य विशेषज्ञ टोल है। शस्त्रागार।
  7. मेपनिक से उत्पादन उत्पन्न करना
  8. इससे पहले कि आर्कगिस मल्टीथ्रेड हो गया, मैंने पायथन का उपयोग करके मुझे उपप्रकारों को फैलाने की अनुमति दी जो कि कभी-कभी आर्कपैम के ओवरहेड के बिना लंबी, धीमी गणनाओं को स्मृति में अव्यवस्थित करने में तेजी ला सकती है।

वाणिज्यिक जियोप्रोसेसिंग में पायथन महान है क्योंकि आपके पास स्क्रिप्टिंग की सभी गति और संक्षिप्तता है जो पायथन प्रदान करता है और संकलित सी-स्टाइल कोड को संसाधित करने की गति प्रदान करता है, क्योंकि पायथन की व्याख्या की जाती है, यह हुड के तहत ज्यादातर संकलित सी-स्टाइल कोड है। पायथन गोंद प्रदान करता है जो बहुत सारे अनुक्रमिक जियोप्रोसेसिंग कार्यों को एक साथ पकड़ सकता है और ऊपर दी गई सूची कुछ चीजों का एक छोटा सा स्नैपशॉट है जो मैं व्यक्तिगत रूप से इसके लिए उपयोग करता हूं। 'गुड ओल्ड डेज़' में हम एक वॉच फ़ाइल स्थापित करेंगे और हमारे कमांड लाइन इनपुट को ArcInfo रिकॉर्ड करेंगे और फिर AML के साथ एक साथ चिपके हुए जियोप्रोसेस कॉल की एक पुन: प्रयोज्य प्रक्रिया बनाने के लिए AML (जो आर्क मैक्रो लैंग्वेज को याद करते हैं!) को साफ करेंगे। यह इन दिनों इतना अलग नहीं है, सिवाय इसके कि हम गोंद के रूप में पायथन या सी # का उपयोग करें।


1
फनली पर्याप्त मैं सिर्फ इस सवाल का जवाब दिया ( gis.stackexchange.com/questions/52478/… ) - जो कि ArcGIS मेमोरी लीक को पीटने के तरीके के रूप में पायथन का उपयोग करने का एक और उदाहरण देता है!
मप्पाग्नोसिस

+1, मैं विशेष रूप से # 4 पर GIS.SE ब्लॉग विषय देखना चाहूंगा
blah238

1
हालाँकि कंपनी अब ख़राब हो गई है और मैंने कुछ समय पहले छोड़ दिया है, दूसरी कंपनी ने आईपी खरीदा है इसलिए मुझे नहीं पता कि मैं कितना स्पष्ट हो सकता हूं। फिर भी, आप ऊपर दिए गए मेरी टिप्पणी में लिंक में मेरे जवाब से बहुपक्षीय पक्ष के रूप में कुछ सुराग प्राप्त कर सकते हैं। मुझे लगता है कि मैं यह भी जोड़ सकता हूं कि हमारे जियोप्रोसेसिंग फार्म में 16-कोर मशीन, दो 8-कोर सर्वर और लगभग एक दर्जन 'सेवानिवृत्त' दोहरे कोर पीसी हैं जो सभी दास-चालक द्वारा चलते हैं। ईएसआरआई ने भी कुछ लोगों को आने के लिए भेजा और एक नज़र रखी कि हमने क्या किया क्योंकि हम इसके लिए आर्चरवर का उपयोग नहीं कर रहे थे। हमने मशीनों को इतनी मेहनत से चलाया कि दो में आग भी लग गई!
मप्पाग्नोसिस

7

कहां से शुरू करें ... मैं उद्यम में अजगर का बहुत बड़ा समर्थक हूं, भले ही अब मैं उच्च एड / राज्य सरकार में काम करता हूं। यहाँ उन कार्यों के कुछ उदाहरण दिए गए हैं जिनके लिए मैंने पायथन का उपयोग किया है:

  1. घूमता हुआ डाटा। नियमित रूप से घूमने वाले डेटा जैसे सुंदर सरल कार्यों को बहुत आसानी से पायथन के साथ स्वचालित रूप से स्वचालित किया जा सकता है, विशेष रूप shutilसे बॉक्स से बाहर मॉड्यूल के साथ ।
  2. अन्य सॉफ्टवेयर पैकेजों द्वारा खपत के लिए आर्कस्डे डेटाबेस और आउटफाइल्स में से फीचरक्लास निर्यात करना । आर्कएसडीई (या कुछ अन्य संबंधपरक डेटाबेस) अक्सर एक संगठन में मास्टर रिकॉर्ड होता है, लेकिन हर सॉफ्टवेयर पैकेज डेटाबेस में हुक नहीं कर सकता है। कई पैकेज अभी भी अच्छे ओले आकार-प्रकार के उपभोग करेंगे, और इसका उपयोग करते हुए arcpy, यह रातोरात निर्यात करने के लिए दर्द रहित होता है ताकि आपके उपयोगकर्ताओं के पास अप-टू-डेट डेटा हो सके।
  3. असमान डेटासेट से स्थानिक डेटासेट बनाना। एंटरप्राइज़ में हर कोई अपने डेटा को रखने के लिए एक्सेल का उपयोग करता है (और अक्सर दुरुपयोग करता है)। साथ arcpy(या अन्य pythonic विधि) यह है कि तालिका डेटा एक स्थानिक घटक है कि लेने के लिए और जल्दी से इसे से एक स्थानिक डाटासेट बनाने के लिए आसान है। वही पाठ फ़ाइलों के लिए जाता है। मैंने हाल ही में एक क्लाइंट के लिए एक आर्कटूलबॉक्स टूल बनाया है जो एक मालिकाना XYZ प्रारूप में पाठ फ़ाइलों को पढ़ता है और ZM- सक्षम पॉलीलाइन बनाता है (वास्तव में उस पर उस से अधिक साझा नहीं कर सकता है)।
  4. जीआईएस डेटा का अनुवाद करना इसलिए इसे सॉफ्टवेयर में फीड किया जा सकता है, जिसे पता नहीं है कि "स्थानिक" क्या है। मैं अभी टूल लिख रहा हूं जो जीआईएस डेटासेट (रैस्टर, वैक्टर) लेते हैं और डेटा को अपने पायनियर एपीआई के माध्यम से 3 डी मॉडलिंग प्रोग्राम में धकेल देते हैं। यह 3 डी पैकेज स्थानिक डेटा प्रारूपों के साथ बिल्कुल भी काम नहीं कर सकता है, लेकिन यह स्थानिक डेटा के पीछे पाठ मूल्यों और विशेषताओं के साथ काम कर सकता है। इसके लिए मैं arcpyजियोडेटाबेस से बाहर की जानकारी खींच रहा हूं और इसे या तो टेक्स्ट फाइल या एक XML कॉन्फ़िगरेशन फ़ाइल में धकेल दूंगा।
  5. डेटा लाया जा रहा है। आपको डेटा की एक तालिका के साथ एक वेबसाइट मिली जो आपको चाहिए? beautifulsoupइसे निकालने के लिए उपयोग करें । सैकड़ों या हजारों फाइलों के साथ एक एफ़टीपी साइट मिल गई है जिसे आपको लाने की आवश्यकता है? का उपयोग करें urllib2या ftplibउन्हें आसानी से डाउनलोड करें।

वह सिर्फ कुछ उदाहरण हैं। उद्यम में पायथन के बारे में बहुत अच्छी बात यह है कि आपकी मशीन पर पूर्ण व्यवस्थापक अधिकार के बिना भी, जो अक्सर होता है, आप अभी भी काफी कुछ पूरा कर सकते हैं। कोमल लर्निंग कर्व और पायथन की पठनीयता के साथ संयोजन करें, और आपके पास जीआईएस टेक / विश्लेषक के लिए एक महान स्वचालन उपकरण है जिसमें प्रोग्रामिंग अनुभव का एक बहुत कुछ नहीं है।


6

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

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

जैसा कि दूसरों ने कहा है, ये केवल कुछ उदाहरण हैं।

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