วิธีการแปลงคุณสมบัติง่าย ๆ ของเส้นเป็นเครือข่ายทอพอโลยี


12

การใช้ Gdal / OGR มีวิธีแปลงเลเยอร์บรรทัด shp, kml หรือ PostGIS เป็นเครือข่ายของโหนดและเซ็กเมนต์ดังนั้นจึงสามารถใช้ในแพ็คเกจเช่น networkx?


2
มันอาจจะเป็นที่น่าสังเกตว่าในขณะที่ OGR และ NetworkX ทั้งกล่าวว่าพวกเขาสนับสนุนGMLอดีตหมายถึง ในขณะที่หลังมีGeography Markup Language Graph Modelling Language
fmark

คำตอบ:



2

เมื่อพิจารณาจากรายการ networkx ของรูปแบบกราฟที่สามารถนำเข้าและรูปแบบที่สนับสนุนโดย GDALฉันสงสัยว่าอาจเป็นไปได้


นั่นเป็นเรื่องที่เส็งเคร็ง ดังนั้นฉันจะทำการวิเคราะห์เครือข่ายได้อย่างไร
dassouki

@dassouki - เริ่มโครงการโอเพนซอร์ส! มันอยู่ในรายการของฉัน แต่ลงไปในขณะนี้ ฉันต้องการโอกาสที่จะร่วมมือกันในเรื่องนี้หากคนอื่นสนใจ
fmark

@fmark มี transpotools.com แล้ว
dassouki

@dassouki - ฟังดูน่าตื่นเต้น! โครงการนี้อยู่ในขั้นตอนใด TranspoTools Will be here shortlyหน้าแรกกล่าวว่า มีรหัสใดในที่เก็บรหัส google หรือไม่ ทุกสิ่งที่ฉันเห็นนั้นว่างเปล่า
fmark

@dassouki - เพียงเพื่อยืนยันฉันไม่ทราบมากเกี่ยวกับเขตข้อมูลการวิเคราะห์การขนส่ง (ความสนใจ GIS ของฉันอยู่ไม่ไกลไปกว่าการคำนวณระยะทางเครือข่ายในระยะนี้) แต่ยินดีที่จะร่วมมือกับogr2networkxเครื่องมือประเภท
fmark

2

คุณยังไม่ได้กล่าวถึงการวิเคราะห์เครือข่ายประเภทใดที่คุณต้องการ แต่ถ้าคุณสนใจที่จะกำหนดเส้นทางมีตัวเลือกสองทาง:

PgRouting http://pgrouting.postlbs.org/ทำงานกับข้อมูลใน PostGIS เพื่อทำการวิเคราะห์เส้นทาง สนับสนุนเส้นทางที่สั้นที่สุด Dijkstra, เส้นทางที่สั้นที่สุด A *, ดาวยิงเส้นทางที่สั้นที่สุดและอัลกอริทึมพนักงานขายเดินทาง (TSP) นอกจากนี้ยังทำการคำนวณระยะทางในการขับขี่ รายการแอพตัวอย่างที่ใช้ PgRouting สามารถดูได้ที่http://pgrouting.postlbs.org/wiki/pgRoutingDemo PgRouting ทำให้http://www.ridethecity.com/แอพRide the City

http://wiki.osgeo.org/wiki/OpenRouterโครงการ OpenRouter โครงการนี้ดูน่าสนใจ แต่ยังไม่ถึงจุดนี้

(ขออภัยสำหรับ URL ที่ยกมา แต่ฉันไม่มีเครดิตเพียงพอที่จะโพสต์> 1 URl ... )


+1 สำหรับคุณ ฉันกำลังดูการย้ายจากข้อมูล openstreet และ postgis เนื่องจากข้อ จำกัด ของข้อมูลและความจริงที่ว่าตอนนี้เรากำลังทำ postgis อยู่ เรามักจะให้ข้อมูลของเราเองซึ่งดีกว่า Openstreet มาก แต่ในเวลาเดียวกันเราไม่ต้องการ จำกัด เฉพาะ pgrouting อีกประเด็นคือสมมติว่าเราต้องการใช้คอลเล็กชั่นขยะไพ ธ อนหรืออาร์คจิสหรือบุรุษไปรษณีย์จีนหรือปัญหาพนักงานขายนักท่องเที่ยว
dassouki

คุณดู SpatiaLite แล้วหรือยัง สิ่งนี้จะให้ฐานข้อมูลเชิงพื้นที่ OpenSource แก่คุณว่าหากใช้ไฟล์และแพลตฟอร์มเป็นอิสระ ฉันไม่ได้ใช้ แต่ปรากฏว่ามีความสามารถในการกำหนดเส้นทางด้วย SpatiaLite < gaia-gis.it/spatialite/spatialite-network-2.3.1.html >
DavidF

ขอบคุณที่นำ NetworkX มาให้ฉันด้วย ดูเหมือนว่าเป็นโมดูล Python ที่ยอดเยี่ยมจริงๆ
DavidF

2

ฉันคิดว่าคำตอบนั้นขึ้นอยู่กับ รูปแบบ GIS ส่วนใหญ่จะไม่รวมข้อมูล adjacency อย่างชัดเจน (เช่นไม่มีตัวบ่งชี้ใน. shp ที่เต็มไปด้วยคุณสมบัติของเส้นที่เรียบง่ายเพื่อระบุว่าคุณลักษณะสองอย่างนั้นใช้จุดปลายทั่วไป) ซึ่งเป็นตัวจัดการข้อตกลงสำหรับการอ่านโดยตรงในเครือข่าย

จากการดูคร่าวๆของรหัสดูเหมือนว่าแพ็กเกจยูทิลิตี้เครือข่ายที่เชื่อมโยงโดย SCW จะค้นพบข้อมูลนั้นอีกครั้งหากปลายทางนั้นเหมือนกันแบบบิตต่อบิต นี่อาจดีพอสำหรับความต้องการส่วนใหญ่รวมถึงของคุณ! (ฉันอาจจะผิดเกี่ยวกับเรื่องนี้เพราะมันเป็นเพียงการมองคร่าวๆ)

สำหรับบางสิ่งที่มีประสิทธิภาพมากขึ้น - ตัวอย่างเช่นคุณอาจต้องการสร้างโหนดใหม่ในเครือข่ายที่มีสองขอบตัดกันหรือคุณต้องการจัดการกับการรบกวนที่ทำให้จุดปลายทางที่ทับซ้อนกันแตกต่างกันเล็กน้อยคุณจะต้องหาแนวทาง ที่ตรวจสอบเรขาคณิตอย่างลึกซึ้งยิ่งขึ้น

ฉันได้ทำสิ่งที่คล้ายกับBoundary Generatorเพื่อกู้คืนข้อมูล adjacency ของเครือข่ายจากรูปหลายเหลี่ยม: แพลตฟอร์มผิดภาษาและเรขาคณิตดั้งเดิมสำหรับคุณโชคไม่ดี อย่างไรก็ตามอาจเข้าใจอย่างลึกซึ้งว่าจะแก้ไขปัญหาความทนทานอย่างไร


+1 ... ฉันไม่แน่ใจว่าคุณหมายถึงแพลตฟอร์มผิดหรือเปล่า? ฉันเข้าใจคำอธิบายของคุณและมันทำให้เกิดการระเบิดที่ฉันไม่สามารถแปลงข้อมูลเป็นโหนดและน้ำหนักได้ เพียง 2 โปรแกรมที่ทำเช่นนั้นจากไฟล์ shp คือ TransCAD และ EMME2 / 3
dassouki

โดย "แพลตฟอร์มผิด" ฉันเพิ่งหมายความว่า Boundary Generator ถูกเขียนขึ้นสำหรับสภาพแวดล้อม ArcGIS อย่างน้อยตอนนี้ :) มันต้องมีการดัดแปลงเพื่อทำงานกับ OGR (จำเป็นต้องเป็นรหัสใหม่ที่สำคัญในการค้นหาจุดปลายพ้องกันจากเส้นตรงข้ามกับขอบพ้องกันจากรูปหลายเหลี่ยมฉันอาจเพิ่มสิ่งนี้ลงในรุ่นถัดไปถ้า / เมื่อฉันมีเวลาดูเหมือนว่ามันจะมีประโยชน์มาก .)
Dan S.

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