GRASS có thể tính toán biểu diễn đường biểu đồ của đồ thị đầu vào không?


10

Tôi quan tâm đến việc tính toán biểu đồ đường cho biểu đồ đầu vào, tốt nhất là trong GRASS vì sau đó tôi sẽ sử dụng các công cụ phân tích mạng GRASS khác . Tôi không thể tìm thấy bất kỳ tham chiếu nào đến biểu đồ đường trong tài liệu GRASS. Có một thuật ngữ khác tôi nên sử dụng trong tìm kiếm của tôi hoặc một chức năng ẩn sẽ tạo ra một biểu đồ như vậy không?

Đối với bối cảnh:

đồ thị đường thẳng của đồ thị vô hướng G là một đồ thị L (G) khác biểu thị các phần phụ giữa các cạnh của G.

nhập mô tả hình ảnh ở đây

Nguồn: http://en.wikipedia.org/wiki/Line_graph


1
Câu hỏi này có lẽ được đăng tốt hơn trong danh sách gửi thư của nhà phát triển ...
markusN

Cảm ơn @markusN, thực hiện osgeo-org.1560.x6.nabble.com/...
Underdark

1
Tham chiếu duy nhất tôi tìm thấy trong GRASS là hàm d.linegraph , mặc dù đầu vào phải là dữ liệu số. Tôi biết nó không giúp được gì nhiều nhưng ít nhất chúng ta biết có gì đó trong GRASS liên quan đến biểu đồ đường :)
Joseph

Tôi đã hiểu điều này một cách chính xác? Bạn đang tìm kiếm một cái gì đó giống như đối diện với pgr_createTopology của PostGIS, nơi bạn đã có các đỉnh nhưng thay vào đó muốn tạo các liên kết được mô tả theo thuật ngữ của hai id đỉnh? Bạn có thể phân tích bảng đỉnh PostGIS để tạo mạng mà bạn đang tìm kiếm không?
Adrian

@Adrian Có, các đỉnh trong biểu đồ đường có thể được xác định bởi hai đỉnh trong biểu đồ đầu vào. Các cạnh trong biểu đồ đường biểu thị các phần phụ giữa các cạnh trong biểu đồ đầu vào. Có thể nó sẽ hoạt động với PostGIS như bạn mô tả, nhưng nếu tôi phải thực hiện một cái gì đó từ đầu thì đó không phải là lựa chọn đầu tiên của tôi.
underdark

Câu trả lời:


3

Nếu Python ổn, thì có một số mô-đun Python tốt biết về biểu đồ đường. Một ví dụ là NetworkX (mà tôi đã cài đặt đơn giản sudo pip install networkx).

Đây không phải là một câu trả lời hoàn hảo vì bạn cần phải viết một số mã keo. Trước tiên, bạn sẽ chuyển đổi đầu vào của mình thành các đối tượng đồ thị NetworkX :

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

Sau đó, bạn gọi line_graphhàm lấy NetworkX để tính toán biểu đồ đường:

H = nx.line_graph(G)

Và cuối cùng, bạn sẽ chuyển đổi kết quả trở lại thành một cái gì đó hữu ích bằng cách lặp đi lặp lại H.edges()H.nodes().

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.