Làm thế nào để chuyển đổi các tính năng đơn giản của dòng sang mạng cấu trúc liên kết?


12

sử dụng Gdal / OGR có cách nào để chuyển đổi một lớp dòng shp, kml hoặc PostGIS thành một mạng lưới các nút và phân đoạn để nó có thể được sử dụng trong các gói như networkx không?


2
Có lẽ đáng lưu ý rằng trong khi OGR và NetworkX đều nói rằng họ hỗ trợ GML, thì cái trước đề cập đến Geography Markup Languagetrong khi cái sau là Graph Modelling Language.
đánh dấu

Câu trả lời:



2

Đánh giá từ danh sách Networkx các định dạngđịnh dạng biểu đồ có thể nhập được hỗ trợ bởi GDAL , tôi nghi ngờ việc chuyển đổi như vậy là có thể.


đó là một thỏa thuận nhảm nhí. Vậy làm thế nào tôi có thể làm phân tích mạng sau đó?
dassouki

@dassouki - Bắt đầu một dự án nguồn mở! Nó nằm trong danh sách của tôi, nhưng hiện tại đang đi xuống. Tôi muốn có cơ hội hợp tác về vấn đề này nếu người khác quan tâm.
đánh dấu

@fmark đã có
transpotools.com

@dassouki - Nghe có vẻ thú vị! Dự án đang ở giai đoạn nào? Trang chủ nói TranspoTools Will be here shortly. Có mã nào trên kho lưu trữ mã google không? Mọi thứ tôi có thể thấy đều trống rỗng.
đánh dấu

@dassouki - Chỉ cần xác nhận, tôi không biết nhiều về lĩnh vực phân tích giao thông (mối quan tâm về GIS của tôi không nằm xa hơn việc tính toán khoảng cách mạng ở giai đoạn này), nhưng sẽ rất vui khi được cộng tác trên một ogr2networkxcông cụ loại.
đánh dấu

2

Bạn chưa đề cập cụ thể loại phân tích mạng nào bạn muốn làm, nhưng nếu bạn quan tâm đến việc định tuyến, có một số tùy chọn:

PGRouting http://pgrouting.postlbs.org/ hoạt động với dữ liệu trong PostGIS để thực hiện phân tích định tuyến. Nó hỗ trợ các thuật toán Dijkstra đường đi ngắn nhất, Đường dẫn ngắn nhất A *, thuật toán Sao chụp đường dẫn ngắn nhất và Nhân viên bán hàng du lịch (TSP). Nó cũng không tính toán khoảng cách lái xe. Một danh sách các ứng dụng ví dụ sử dụng PGRouting có thể được tìm thấy tại http://pgrouting.postlbs.org/wiki/pgRoutingDemo PGRouting điều khiển http://www.ridethecity.com/ứng dụng Ride the City .

Dự án OpenRouter http://wiki.osgeo.org/wiki/OpenRouter. Dự án này có vẻ thú vị, nhưng không đặc biệt trưởng thành vào thời điểm này.

(Xin lỗi về các URL được trích dẫn, nhưng tôi không đủ tín dụng để đăng> 1 URl ...)


+1 cho bạn. Tôi đang tìm cách di chuyển khỏi dữ liệu openstreet và postgis do giới hạn dữ liệu và thực tế là hiện tại chúng tôi đang từ bỏ postgis. Chúng tôi thường cung cấp dữ liệu của riêng mình tốt hơn nhiều so với Openstreet, nhưng đồng thời, chúng tôi không muốn bị giới hạn trong việc quảng cáo. Vấn đề khác là chúng ta muốn thực hiện một bộ sưu tập rác thân thiện với pythonic hoặc arcgis hoặc người đưa thư Trung Quốc hoặc nhân viên bán hàng của khách du lịch.
dassouki

Bạn đã xem SpatiaLite? Điều này sẽ cung cấp cho bạn một cơ sở dữ liệu không gian OpenSource nếu dựa trên tệp và nền tảng độc lập. Tôi chưa sử dụng nó, nhưng có vẻ như có khả năng định tuyến với SpatiaLite < gaia-gis.it/spatialite/spatialite-network-2.3.1.html >
DavidF

Ngoài ra, cảm ơn vì đã khiến NetworkX chú ý đến tôi. Điều này trông giống như mô-đun Python thực sự mát mẻ.
DavidF

2

Tôi nghĩ rằng câu trả lời phụ thuộc. Hầu hết các định dạng GIS không bao gồm rõ ràng thông tin về sự phụ thuộc (ví dụ: không có chỉ số nào trong .shp có đầy đủ các tính năng đơn giản để chỉ ra rằng hai tính năng chia sẻ một điểm cuối chung), đó là một công cụ giải quyết để đọc chúng trực tiếp vào mạng.

Từ một cái nhìn lướt qua mã, có vẻ như gói mạng tiện ích được liên kết bởi scw sẽ khám phá lại thông tin đó chỉ khi các điểm cuối giống hệt nhau theo từng bit. Điều này có thể đủ tốt cho hầu hết các nhu cầu, bao gồm cả nhu cầu của bạn! (Tôi có thể sai về điều này, vì nó thực sự chỉ là một cái nhìn lướt qua.)

Đối với một cái gì đó mạnh mẽ hơn - ví dụ, bạn có thể muốn tạo các nút mới trong mạng nơi hai cạnh giao nhau hoặc bạn muốn xử lý các nhiễu loạn làm cho các điểm cuối chồng chéo rất khác nhau - bạn sẽ phải tìm cách tiếp cận mà kiểm tra hình học sâu sắc hơn.

Tôi đã làm một cái gì đó tương tự với Boundary Generator để khôi phục thông tin phụ thuộc mạng từ đa giác: không đúng nền tảng, ngôn ngữ và hình học nguyên thủy cho bạn. Tuy nhiên, có thể sâu sắc về cách tiếp cận (các) vấn đề mạnh mẽ.


+1 ... Tôi không chắc ý của bạn về nền tảng sai là gì? Tôi hiểu lời giải thích của bạn và nó thực sự thổi rằng tôi không thể chuyển đổi dữ liệu thành các nút và trọng lượng. 2 chương trình duy nhất thực hiện điều đó từ các tệp shp là TransCAD và EMME2 / 3
dassouki

Bởi "nền tảng sai" tôi chỉ có nghĩa là Boundary Generator được viết cho môi trường ArcGIS, ít nhất là cho đến bây giờ. :) Nó sẽ cần một số thích ứng để làm việc với OGR. . .)
Dan S.

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.