GRASS가 입력 그래프의 선 그래프 표현을 계산할 수 있습니까?


10

나중에 다른 GRASS 네트워크 분석 도구를 사용하기 때문에 입력 그래프에 대한 선 그래프를 계산하는 데 관심이 있습니다 . GRASS 문서에서 선 그래프에 대한 참조를 찾을 수 없습니다. 검색에서 사용해야하는 다른 용어 나 그러한 그래프를 생성하는 숨겨진 함수가 있습니까?

맥락 :

무 방향 그래프 G의 선 그래프는 G의 가장자리 사이의 인접성을 나타내는 다른 그래프 L (G)입니다.

여기에 이미지 설명을 입력하십시오

출처 : http://en.wikipedia.org/wiki/Line_graph


1
이 질문은 아마도 grass-dev 메일 링리스트에 더 잘 게시 될 것입니다 ...
markusN

감사합니다 @markusN, 수행 osgeo-org.1560.x6.nabble.com/...
언더 다크

1
GRASS에서 찾은 유일한 참조는 d.linegraph 함수이지만 입력은 숫자 데이터 여야합니다. 도움이되지는 않지만 GRASS에 선 그래프와 관련된 것이 있다는 것을 알고 있습니다. :)
Joseph

이것을 올바르게 이해 했습니까? 이미 정점을 가지고 있지만 두 정점 ID 측면에서 설명 된 링크를 만들고자하는 PostGIS pgr_createTopology의 반대와 같은 것을 찾고 있습니까? 원하는 네트워크를 생성하기 위해 PostGIS 정점 테이블을 구문 분석 할 수 있습니까?
Adrian

@Adrian 예, 선 그래프의 정점은 입력 그래프의 두 정점으로 식별 할 수 있습니다. 선 그래프의 모서리는 입력 그래프의 모서리 간 인접성을 나타냅니다. 어쩌면 PostGIS와 함께 작동 할 수도 있지만 처음부터 선택하지 않은 것을 처음부터 구현 해야하는 경우.
underdark

답변:


3

파이썬이 괜찮다면 선 그래프에 대해 잘 알고있는 훌륭한 파이썬 모듈이 있습니다. 예를 들어 NetworkX (간단히 설치 sudo pip install networkx)가 있습니다.

접착제 코드를 작성해야하므로 완벽한 답변이 아닙니다. 먼저 입력을 NetworkX 그래프 객체 로 변환합니다 .

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

그런 다음 get NetworkX line_graph함수를 호출 하여 선 그래프를 계산합니다.

H = nx.line_graph(G)

그리고 마지막으로 당신은 이상 반복하여 유용한 뭔가 결과 다시 변환 것 H.edges()등을 H.nodes().

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.