กำลังมองหาทางเลือกในการ pgRouting สำหรับการวิเคราะห์เส้นทาง / เครือข่ายโอเพนซอร์ส?


35

ฉันสงสัยว่ามีทางเลือกอื่นสำหรับเครื่องมือpgRoutingหรือไม่

เมื่อคิดเกี่ยวกับมันสักหน่อยฉันคิดว่าทางเลือกเดียวคือใช้ R หรือ RPY เพื่อทำการวิเคราะห์

โดยทั่วไปฉันพยายามแก้ไขปัญหาการกำหนดเส้นทางโดยใช้ฐานข้อมูลที่ไม่ใช่ PostGIS เนื่องจากข้อมูลส่วนใหญ่ของฉันถูกจัดเก็บจริงในรูปแบบที่แตกต่างกัน อย่างไรก็ตามมันไม่ยากที่จะแปลง ฉันพบว่า pg การไปยังสมองที่โง่ของฉันนั้นเป็นเรื่องยากที่จะนำไปใช้ ดังนั้นบางทีการแก้ปัญหาที่ไม่ใช่ฐานข้อมูลที่ฉันสามารถปรับแต่งได้อย่างง่ายดายจะเหมาะสำหรับฉัน

คำตอบ:


21

[แก้ไข: สิ่งนี้ถูกแทนที่โดยnx_spatialซึ่งมีให้จาก pypi (easy_install nx_spatial) การนำเข้ารูปร่างไฟล์ตอนนี้มาตรฐานในเครือข่าย x 1.4 ]

ฉันได้รับชนิดของการผิดหวังจากการขาดเครื่องมือเครือข่ายทางเรขาคณิตใน ESRI ของงูหลาม GP API เพื่อให้ผมเขียนบางสิ่งบางอย่างที่โหลด shapefiles และการเรียนคุณสมบัติเข้าnetworkxกราฟทิศทาง (digraphs)

มันยังคงอยู่ในระหว่างดำเนินการ แต่อาจเป็นจุดเริ่มต้นสำหรับบางสิ่งที่สามารถช่วยแก้ไขปัญหาของคุณได้

http://bitbucket.org/gallipoli/utilitynetwork/

ตัวอย่าง:

from utilitynetwork import Network

net = Network()

#load single file, method reqs OGR
net.loadshp("/shapefiles/test.shp")

#load directory full of shapefiles
net.loadshp("/shapefiles")

#load a feature class, req ESRI gp object, should work with shps as well
import arcgisscripting
gp = arcgisscripting.create(9.3)
net.loadfc("C:\somedb.gdb\featureclass", gp)

#Accessing node/edge data is done by the key value (the geometry as a tuple).
#access node data at x=4, y=2
nodekey = (4, 2)
net.node[nodekey]

เครือข่ายสืบทอดมาจาก networkx.DiGraph ดังนั้นฟังก์ชันทั้งหมดนั้นจึงมีให้ใช้งาน


11

แม้ว่าเธรดจะค่อนข้างเก่า แต่ฉันต้องการเพิ่มลิงก์เล็กน้อยเกี่ยวกับการกำหนดเส้นทางในกรณีที่มีคนมาจบที่นี่เช่นฉัน:


5

มีFlowmapซึ่งเป็นแพ็คเกจเฉพาะของ GIS ที่ออกแบบมาเพื่อจัดการกับปัญหาการวิเคราะห์เครือข่าย

หากคุณมีกรณีการใช้งานที่ค่อนข้างเรียบง่ายQuantum Navigator ที่ใช้ QGIS อาจทำเคล็ดลับได้

GRASS ยังรองรับการวิเคราะห์เครือข่ายแม้ว่ามันอาจจะไม่คุ้มค่ากับความไม่ลงรอยกันที่จะทำให้สิ่งต่าง ๆ ในสภาพแวดล้อม


4

หากคุณกำลังมองหาวิธีการแก้ปัญหาด้วยโปรแกรมแบบไพ ธ อนให้ดูที่networkx


มีไลบรารีใดบ้างที่จะไปจาก.shpnetworkx ฉันสามารถสร้างหนึ่งตัวเองใน Python แต่ฉันจะ rathe rvent บูรณาการล้อ ...
fmark

4
มันไม่ตรงกับ 1: 1 ตั้งแต่ shapefiles เก็บข้อมูลเป็นคุณสมบัติที่ง่ายไม่ใช่เครือข่ายทอพอโลยี ดังนั้นคุณจำเป็นต้องรู้ / สมมติว่ามีบางสิ่งเกี่ยวกับชุดข้อมูลต้นทางของคุณก่อน - โดยพื้นฐานแล้วจุดตัดทั้งหมดเป็นเทอร์มินัลโหนดสำหรับการแปลงสัญญาณ นี่คือตัวอย่างของการใช้ geodjango เพื่อแปลงคุณสมบัติอย่างง่ายเป็นกราฟ networkx: code.google.com/p/marinemap/source/browse/lingcod/spacing/…
perrygeo

3

คุณสามารถดูโครงการGraphHopper แบบโอเพ่นซอร์สซึ่งเป็นนักวางแผนเส้นทางที่รวดเร็วและยืดหยุ่น ลองที่นี่ หมายเหตุ: ฉันเป็นผู้เขียน


ฉันกำลังรับรอง GraphHopper เพราะมันง่ายมากที่จะติดตั้งและใช้งาน
bugmenot123


2

นอกจากนี้คุณยังสามารถดูได้ที่เครื่องมือที่ได้จากการRouteWare บันทึกที่ยาวนานและไม่ผูกฐานข้อมูล


2

เรายังทำการวิจัยบางอย่างในปีที่ผ่านมา แต่เราก็ยังมีความสุขกับpgRoutingและคิดว่ามันเป็นทางออกที่ดีที่สุดสำหรับความต้องการการกำหนดเส้นทาง GIS ของเรา น่าเสียดายที่มีไม่มากที่ฉันรู้ (โดยไม่ต้องจ่ายเงินหลายพันยูโร / ดอลลาร์) เราทำงานร่วมกับNavtech -Dataซึ่งมีเครือข่ายที่สมบูรณ์แบบสำหรับการทำงาน แต่ไม่ถูก เราลองใช้ OSM เป็นครั้งคราวซึ่งทำงานได้ดี ... แต่ก็มีปัญหาอยู่เสมอและดังนั้นจึงไม่ทำให้เป็นการผลิต

เราเพิ่งเจอโครงการGraphHopper แบบโอเพนซอร์สที่ กล่าวถึงข้างต้น(บางสัปดาห์ที่ผ่านมา) และคิดว่ามันมีความเป็นไปได้และประสิทธิภาพที่ดีมาก เท่าที่ฉันรู้ - พวกเขายังมี OSM Data ที่ทำงานอยู่ในโครงการของพวกเขา



1

ปัญหาการเราต์จำนวนมากใช้อัลกอริทึมของ Dijkstra เพื่อกำหนดเส้นทางที่สั้นที่สุด มันค่อนข้างตรงไปตรงมากับรหัส: http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm

นอกจากนี้กุยโดแวนรอสซัมยังได้เขียนบทความเกี่ยวกับกราฟใน Python อีกด้วย ชิ้นสั้น ๆ ของเขารวมถึงวิธีการสำหรับโครงสร้างข้อมูลเส้นทางแบบดั้งเดิมและการเข้ารหัส: http://www.python.org/doc/essays/graphs.html

มีแพ็คเกจการกำหนดเส้นทางจำนวนมากอยู่ที่นั่น สำหรับวัตถุประสงค์ทางภูมิศาสตร์โดยเฉพาะนอกเหนือจาก pgRouting แล้ว graphserver (http://bmander.github.com/graphserver/) และนักวิเคราะห์เครือข่าย ESRI ArcGIS ชุมชนการวิเคราะห์เครือข่ายทางสังคมที่มีรายชื่อของซอฟต์แวร์การวิเคราะห์กราฟที่: http://www.insna.org/software/index.htmlและhttp://www.insna.org/software/software_old.html แพ็คเกจเหล่านี้จำนวนมากเป็นโอเพนซอร์ซและมีความเกี่ยวข้องในบริบททางภูมิศาสตร์ สำหรับการคำนวณที่ซับซ้อนซับซ้อนหรือมีความซับซ้อนแพคเกจโปรแกรมเชิงเส้นอย่าง CPLEX และ Lindo Lingo อาจคุ้มค่าที่จะตรวจสอบ


ปัญหาคือโซลูชันเหล่านี้ส่วนใหญ่ต้องการระบบของโหนดและการเชื่อมโยงและข้อมูล GIS มักจะไม่ถูกจัดเก็บในแบบนั้น
dassouki

1
นักวิเคราะห์เครือข่ายอยู่ที่ประมาณ $ 2,500 และไม่สนใจที่จะทำการสั่งซื้อในขณะนี้ ฉันอยากได้วิธีแก้ปัญหาแบบ
ไพ ธ อน

2
Dijjkstra สำหรับกราฟิกพื้นฐานมาก สำหรับปัญหาในชีวิตจริงมักเป็นอัลกอริธึมที่หนักและช้ามาก นอกจากนี้ซอฟต์แวร์ ESRI ซึ่งไม่ได้เปิดแหล่งที่มานั้นเป็นเรื่องยากที่จะปรับปรุงและค่อย ๆ ถูกทิ้งไว้ในความโปรดปรานของเครื่องมืออื่น ๆ
María Arias de Reyna Domínguez

@dassouki ข้อมูล GIS ทั้งหมดเป็นหลักโหนดและการเชื่อมโยงและเครื่องมือเช่น osm2pgrouting และสคริปต์ pgRouting อื่น ๆ โดยทั่วไปที่มีอยู่แปลง GIS / ข้อมูลเชิงพื้นที่ออกเป็นโหนดที่จำเป็นและการเชื่อมโยงและขอบที่ใช้ใน pgRouting ...
DPSSpatial


1

คุณสามารถใช้Grasshopper API - พวกเขามีองค์ประกอบการฝึกอบรมที่คุณสามารถทำงานได้ภายในเรียกว่าMatrix API

นอกจากนี้ยังมีปลั๊กอินการกำหนดเส้นทางของ Mapzen Leafletหรือเครื่องยนต์ Mapzen Valhalla

เช่นเดียวกับMapbox Distance APIซึ่งคุณสามารถแตะลงใน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.