जीआईएस के लिए पायथन टूल्स / मॉड्यूल / ऐड-इन्स की तलाश करना?


31

आर्कगिस 10 के साथ, पायथन ईएसआरआई के लिए डी-वास्तविक स्क्रिप्टिंग भाषा बन गया है। QGIS, GeoServer, PostGIS जैसे ओपन सोर्स सॉफ्टवेयर का नेतृत्व करते हुए सभी पायथन का समर्थन करते हैं। इस प्रकार उपयोगकर्ताओं के साथ-साथ जीआईएस डेवलपर्स के लिए पायथन को जानना / सीखना महत्वपूर्ण हो गया।

क्या कोई ऐसे उपकरण / मॉड्यूल / ऐड-इन्स की सूची बना सकता है, जो जीआईएस में महत्वपूर्ण हैं?


10
मुझे लगता है कि यह प्रश्न बहुत व्यापक है और अजगर पैकेज तक सीमित होना चाहिए जो कि पायथन समर्थन के साथ किसी भी जीआईएस में उपयोग किया जा सकता है।
UnderDark

4
क्या आर्कपी एक सच्चा पायथन मॉड्यूल है?
Mapperz

2
@ मैपरेज़ यह वास्तव में एक साइट पैकेज है। पूर्ववर्ती arcgisscriptingएक मॉड्यूल है। देखें help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//...
blah238

3
@underdark - मुझे लगता है कि एक अच्छा व्यापक प्रश्न उपयोगी हो सकता है। इस मामले में यह एक केंद्रीय संसाधन देता है कि खोज इंजन को तब पता चलेगा जब कोई गुगली शुरू करता है जिसके लिए अजगर टूलसेट का उपयोग करना है।
जीआईएस-जोनाथन

2
बहुत व्यापक के लिए +1। प्रश्न के सबसे प्रासंगिक उत्तर एक [tag:python] + [tag:my-software]खोज के अंत में मिलेंगे और वोट और फ़ेक टैब के माध्यम से हल किए जाएंगे । यहाँ के उत्तर कभी भी उस से मेल खाने की आशा नहीं कर सकते।
मैट विल्की

जवाबों:


38
  • NumPy : NumPy पायथन के साथ वैज्ञानिक कंप्यूटिंग के लिए मौलिक पैकेज है। इसमें अन्य चीजें शामिल हैं:

    • एक शक्तिशाली एन-आयामी सरणी वस्तु
    • परिष्कृत (प्रसारण) कार्य
    • C / C ++ और फोरट्रान कोड को एकीकृत करने के लिए उपकरण
    • उपयोगी रैखिक बीजगणित, फूरियर रूपांतरण, और यादृच्छिक संख्या क्षमताओं

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

  • SciPy : SciPy (उच्चारण "Sigh Pie") गणित, विज्ञान और इंजीनियरिंग के लिए खुला स्रोत सॉफ्टवेयर है। यह पायथन के साथ वैज्ञानिक प्रोग्रामिंग पर एक बहुत लोकप्रिय सम्मेलन का नाम है । SciPy लाइब्रेरी NumPy पर निर्भर करती है, जो सुविधाजनक और तेज एन-आयामी सरणी हेरफेर प्रदान करता है। SciPy पुस्तकालय NumPy सरणियों के साथ काम करने के लिए बनाया गया है, और संख्यात्मक एकीकरण और अनुकूलन के लिए दिनचर्या जैसे कई उपयोगकर्ता के अनुकूल और कुशल संख्यात्मक दिनचर्या प्रदान करता है। एक साथ, वे सभी लोकप्रिय ऑपरेटिंग सिस्टम पर चलते हैं, स्थापित करने के लिए त्वरित हैं, और नि: शुल्क हैं। NumPy और SciPy का उपयोग करना आसान है, लेकिन दुनिया के कुछ प्रमुख वैज्ञानिकों और इंजीनियरों द्वारा निर्भर होने के लिए पर्याप्त शक्तिशाली है। यदि आपको कंप्यूटर पर संख्याओं में हेरफेर करने और परिणामों को प्रदर्शित करने या प्रकाशित करने की आवश्यकता है, तो SciPy को आज़माएं!

  • शेपली : शेपली एक बीएसडी-लाइसेंस प्राप्त पायथन पैकेज है जो प्लानेर ज्यामितीय वस्तुओं के हेरफेर और विश्लेषण के लिए है। यह व्यापक रूप से तैनात GEOS (PostGIS का इंजन) और JTS (जिससे GEOS को पोर्ट किया गया है) पुस्तकालयों पर आधारित है। इस सी निर्भरता को धधकती गति के साथ निष्पादित करने की क्षमता के लिए कारोबार किया जाता है। Shapely डेटा स्वरूपों या समन्वय प्रणालियों के साथ संबंध नहीं है, लेकिन आसानी से संकुल के साथ एकीकृत किया जा सकता है।

  • GDAL Python बाइंडिंग : यह Python पैकेज और एक्सटेंशन GDAL जियोस्पेशियल डेटा एब्स्ट्रक्शन लाइब्रेरी को प्रोग्रामिंग और मैनिपुलेट करने के लिए कई उपकरण हैं ।

  • GeoDjango: GeoDjango एक विश्व स्तरीय भौगोलिक वेब फ्रेमवर्क होने का इरादा रखता है। इसका लक्ष्य जीआईएस वेब अनुप्रयोगों का निर्माण करना और स्थानिक रूप से सक्षम डेटा की शक्ति का उपयोग करना आसान बनाना है।
  • PyProj
  • SpatialPython : अच्छी तरह से प्रलेखित github भंडार।

मैं इस पुराने उत्तर को देखने वाले किसी भी व्यक्ति के लिए सक्रिय रूप से विकसित geopandas.org पुस्तकालय जोड़ूंगा !
क्लिफग्रे

11

अपने स्वयं के प्रश्न का उत्तर देने के लिए मुझे अभी-अभी यह पायथन मॉड्यूल मिला है। हालांकि मैंने अभी तक इसका उपयोग नहीं किया है, यह रोमांचक लग रहा है।

NetworkX संरचना, गतिकी, और जटिल नेटवर्क के कार्यों के निर्माण, हेरफेर और अध्ययन के लिए पायथन भाषा सॉफ्टवेयर पैकेज है।

तथा

rtree - पायथन जीआईएस के लिए स्थानिक सूचकांक


10

पर जाने के विषय :: वैज्ञानिक / इंजीनियरिंग :: जीआईएस DND आप जीआईएस के लिए (शेपफ़ाइलें, rasters, एम एल, GML, GPX जियोकोडिंग, आदि के साथ काम करने के लिए) सभी अजगर मॉड्यूल है

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

और शेपफ़ाइलें या ESRI फ़ीचर कक्षा Networkx मॉड्यूल के साथ साथ नेटवर्किंग के लिए ज्यामितीय नेटवर्क Geoprocessing : " जहाँ तक मैं बता सकता हूँ के रूप में, ESRI उनके ज्यामितीय नेटवर्क के लिए किसी भी geoprocessing उपकरण जारी नहीं किया या" pgRouting करने के लिए विकल्प या अजगर: किसी शेपफ़ाइल को बदलने के लिए कैसे (या एक टोपोलॉजिकल नेटवर्क (ग्राफ) में फ़ीचर वर्ग ESRI (फ्रेंच में)

import networkx as nx
G = nx.read_shp('pointshapefile.shp')
print(G.nodes())
# result [(1.0, 2.0), (3.0, 2.0), (0.0, 0.0), (3.0, 1.0), (4.0, 4.0), (2.0, 1.0), (2.0, 4.0), (1.0, 3.0), (2.0, 3.0), (1.0, 4.0), (4.0, 3.0), (4.0, 2.0), (3.0, 4.0), (1.0, 1.0)]
print(G.edges())
# result [((1.0, 2.0), (1.0, 1.0)), ((3.0, 2.0), (2.0, 1.0)), ((3.0, 1.0), (2.0, 1.0)), ((4.0, 4.0), (3.0, 4.0)), ((2.0, 1.0), (1.0, 1.0)), ((2.0, 4.0), (2.0, 3.0)), ((1.0, 3.0), (1.0, 2.0)), ((2.0, 3.0), (1.0, 2.0)), ((1.0, 4.0), (1.0, 3.0)), ((4.0, 3.0), (4.0, 2.0)), ((4.0, 2.0), (3.0, 2.0)), ((3.0, 4.0), (2.0, 3.0)), ((1.0, 1.0), (0.0, 0.0))]

# shortest path
print(nx.astar_path(H,(1.0, 4.0),(4.0, 2.0),dist))
# result [(1.0, 4.0), (1.0, 3.0), (1.0, 2.0), (2.0, 3.0), (3.0, 2.0), (4.0, 2.0)]

# and so with all the algorithms of Networkx module
# you can also export the results in shapefile format

मैं समस्या के बिना QGIS और GRASS GIS में Shapely, Fiona, GDAL / OGR, Pyshp, Networkx और अन्य (और इंटरेक्टिव ग्राफिंग के लिए matplotlib या descartes के साथ ) का उपयोग करता हूं । उनके पास अक्सर उपचार के लिए एल्गोरिदम का उपयोग करना आसान होता है।

इनमें से कुछ मॉड्यूल को आर्कपी में समस्याओं के साथ भी इस्तेमाल किया जा सकता है क्योंकि आर्कपी नम्पी के संस्करण 1.3 का उपयोग करता है, पुराना (अब संस्करण 1.6.1 ...) और आप आर्कपी मॉड्यूल को तोड़े बिना इसे अपडेट नहीं कर सकते।



7

सूची में जोड़ना:

PySAL - "स्थानिक विश्लेषण कार्यों के ओपन सोर्स क्रॉस-प्लेटफॉर्म लाइब्रेरी"

से उपलब्ध: http://code.google.com/p/pysal/

pyshp - एक अजगर आकार का पाठक और शुद्ध अजगर में लेखक

से उपलब्ध: http://code.google.com/p/pyshp/

संपादित करें:

आज किसी ने मुझे यह मॉड्यूल दिखाया, लोगों के लिए कुछ अंतर हो सकता है। अजगर उपयोग के लिए नमूना जीआईएस वेक्टर और रेखापुंज डेटा:

gisdata - http://pypi.python.org/pypi/gisdata/0.3.3


5

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

आर्कजीआईएस 10.0 में, यह फीचर कक्षाओं और तालिकाओं से पीडीएफ प्रारूप में रिपोर्ट लिखने के लिए अमूल्य है, हालांकि आर्कजीआई रिपोर्ट लेखक से पीडीएफ रिपोर्ट तक पहुंचने के लिए इस कार्यक्षमता में से कुछ 10.1 पर आवश्यक नहीं हो सकता है।


क्या आप pdfgenपैकेज का उपयोग करते हैं या platypus? मैं jpegs और पाठ के साथ जीन रिपोर्ट करने की जरूरत है, कुछ भी नहीं फैंसी।
चाड कूपर

मैं प्लैटिपस का उपयोग करता हूं - और उनकी कोशिकाओं में पाठ के साथ आउटपुट करने के लिए केवल आवश्यकताएं हैं (कोई चित्र नहीं)।
PolyGeo

4

Django दुनिया में:

  • वेक्टरफॉर्मेट्स (हमारे जियोजेन्स को जियोडजैंगो के रूप में खोजने के लिए मूल रूप से इसका समर्थन नहीं करता है);
  • गेराल्डो (रिपोर्टिंग के लिए, रिपोर्टलैब का उपयोग करता है);

2

अभी और हैं:

GRASS - आप GRASS को अजगर से कह सकते हैं।

FMEObjects - यदि आपके पास एक FME लाइसेंस है तो उनके पास एक अजगर मॉड्यूल भी है जो आपको उनके कुछ शांत ट्रांसफार्मर को कॉल करने की अनुमति देता है।


वास्तव में? मेरे ज्ञान के लिए FMEObjects में कॉलिंग ट्रांसफॉर्मर के लिए पायथन बाइंडिंग नहीं है। मैं वास्तव में यह करना चाहता था। यदि आप जानते हैं कि यह करता है और उस एपीआई का उपयोग करना जानता है, तो कृपया हमें बताएं। यह मेरे जीवन को वर्तमान समय में बहुत आसान बना देगा।
celticflute

1

उत्साहित पैकेज वितरण में ऊपर सूचीबद्ध पैकेजों का एक बहुत कुछ है जो एक चिपकने वाले प्लेटफ़ॉर्म में बांधा गया है। उन्होंने यह भी सुनिश्चित किया है कि यह आसानी से ArcGIS के अजगर प्रॉम्प्ट से काम करने के लिए कॉन्फ़िगर arcpyकिया जा सकता है और इसका उपयोग अजगर प्रॉम्प्ट से किया जा सकता है। हम अपने कार्यालयों में इसका उपयोग करते हैं। हमारे आंतरिक विकि से:

आर्कजीआईएस और ईपीडी को जोड़ने का सबसे अच्छा तरीका दोनों को स्थापित करना है और उन्हें .pth फ़ाइलों का उपयोग करके लिंक करना है ताकि पायथन sys.path में अन्य सिस्टम के मॉड्यूल शामिल हों। फ़ाइल "zzEPD.pth" ArcGIS पायथन को EPD मॉड्यूल तक पहुंचने की अनुमति देता है, और "zzArcGIS.pth" EPD पायथन को आर्कपी तक पहुंचने की अनुमति देता है। ("Zz" उपसर्ग यह सुनिश्चित करने के लिए है कि "विदेशी" पैकेज sys.path में अंतिम हैं, जो कि दोनों पायथन इंस्टॉलेशन में मौजूद मॉड्यूल के संभावित टकराव से बचने के लिए हैं।) यदि आप आर्कगिस संघर्षों में भाग लेते हैं, तो फ़ाइल को नाम बदलें। txt ("zzEPD.pth.txt") और ArcGIS और ArcGIS को फिर से शुरू करें "EPD मॉड्यूल (वे sys.path में नहीं होंगे)" देखें।

* zzEPD.pth - फ़ोल्डर में जगह \ Python27 \ Desktop10.1 \ lib \ साइट-संकुल *

# zzEPD.pth 
# Path to Enthought modules
C:\Python27\epd32\lib\site-packages

* zzArcGIS.pth - फ़ोल्डर में जगह \ Python27 \ epd32 \ lib \ साइट-संकुल *

# zzArcGIS.pth 
# copy of \Python27\Desktop10.1\lib\site-packages\ArcGIS.pth
C:\ArcGIS\Desktop10.1\bin
C:\ArcGIS\Desktop10.1\arcpy
C:\ArcGIS\Desktop10.1\ArcToolbox\Scripts

1

जीआईएस के लिए विशिष्ट नहीं, लेकिन अजगर के डिबगिंग के लिए, IPDBअद्भुत है। https://pypi.python.org/pypi/ipdb

इसका उपयोग करने के लिए, बस निम्नलिखित पंक्तियों को अपने कोड में रखें:

import ipdb
ipdb.set_trace()

फिर अपने पायथन शेल में आप किसी भी कोड के टुकड़े को गिरा सकते हैं और उस मौजूदा स्थिति में सभी चर के साथ बातचीत कर सकते हैं।

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