क्या GRASS इनपुट ग्राफ के लाइन ग्राफ प्रतिनिधित्व की गणना कर सकता है?


10

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

संदर्भ के लिए:

एक अप्रत्यक्ष ग्राफ जी का लाइन ग्राफ एक और ग्राफ एल (जी) है जो कि जी के किनारों के बीच आसन्नताओं का प्रतिनिधित्व करता है।

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

स्रोत: http://en.wikipedia.org/wiki/Line_graph


1
यह सवाल शायद घास-देव मेलिंग सूची में बेहतर रूप से पोस्ट किया गया है ...
markusN

धन्यवाद @markusN, किया osgeo-org.1560.x6.nabble.com/...
UnderDark

1
केवल मुझे जो संदर्भ GRASS के भीतर मिला वह d.linegraph फ़ंक्शन है, हालांकि इनपुट संख्यात्मक डेटा होना चाहिए। मुझे पता है कि यह बहुत मदद नहीं है, लेकिन कम से कम हम जानते हैं कि GRASS में कुछ ऐसा है जो लाइन ग्राफ से संबंधित है :)
जोसेफ

क्या मैंने इसे सही तरीके से समझा है? आप PostGIS pgr_createTopology के विपरीत की तरह कुछ देख रहे हैं, जहाँ आपके पास पहले से ही कोने हैं, लेकिन इसके बजाय दो शीर्ष आईडी के संदर्भ में वर्णित लिंक बनाना चाहते हैं? क्या आप जिस नेटवर्क की तलाश कर रहे हैं, उसे उत्पन्न करने के लिए PostGIS वर्टेक्स टेबल को पार्स कर सकते हैं?
एड्रियन

@ एड्रियन हाँ, लाइन ग्राफ में कोने इनपुट ग्राफ में दो कोने से पहचाने जा सकते हैं। लाइन ग्राफ में किनारों इनपुट ग्राफ में किनारों के बीच आसन्नताओं का प्रतिनिधित्व करते हैं। हो सकता है कि यह PostGIS के साथ काम करे जैसा कि आप वर्णन करते हैं, लेकिन अगर मुझे खरोंच से कुछ लागू करना है जो मेरी पहली पसंद नहीं होगी।
UnderDark

जवाबों:


3

यदि पायथन ठीक है, तो कुछ अच्छे पायथन मॉड्यूल हैं जो लाइन ग्राफ़ के बारे में जानते हैं। एक उदाहरण NetworkX (जो मैंने बस के साथ स्थापित किया है sudo pip install networkx)।

यह एक सही जवाब नहीं है क्योंकि आपको कुछ गोंद कोड लिखने की आवश्यकता है। सबसे पहले आप अपने इनपुट को NetworkX ग्राफ ऑब्जेक्ट में परिवर्तित करेंगे :

import networkx as nx
G = nx.Graph()
G.add_node( ... )
G.add_edge( ... )

फिर आप लाइन ग्राफ की गणना करने के लिए line_graphफ़ंक्शन को नेटवर्कएक्स कहते हैं :

H = nx.line_graph(G)

और अंत में आप कुछ उपयोगी करने के लिए परिणाम पीठ पर पुनरावृत्ति से बदल जाएगा H.edges()और H.nodes()

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