답변:
[편집 : 이것은 pypi (easy_install nx_spatial)에서 사용 가능한 nx_spatial 로 대체되었습니다 . shapefile 가져 오기는 이제 networkx 1.4 에서 표준입니다 ]
ESRI의 Python GP API에 기하학적 네트워크 도구가 없기 때문에 실망했습니다. 그래서 Shapefiles 및 Feature Classs 를 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에서 상속되므로 모든 기능을 사용할 수 있습니다.
네트워크 분석 문제를 처리하도록 설계된 틈새 GIS 패키지 인 Flowmap 이 있습니다.
상당히 간단한 유스 케이스가있는 경우 QGIS 기반 Quantum Navigator 가 트릭을 수행 할 수 있습니다.
GRASS는 네트워크 분석 도 지원 하지만 환경 내부에 설정하는 데 따른 마찰은 가치가 없습니다.
프로그래밍 방식의 파이 토닉 솔루션을 찾고 있다면 networkx를 살펴보십시오.
빠르고 유연한 경로 플래너 인 오픈 소스 GraphHopper 프로젝트를 살펴볼 수 있습니다 . 여기서 사용해보십시오 . 참고 : 저는 저자입니다
GeoTools의 그래프 패키지를 사용하여 라우팅을 수행 할 수도 있습니다.
우리는 또한 지난 몇 년 동안 약간의 연구를 수행했지만 pgRouting에 여전히 만족하고 있으며 GIS 라우팅 필요에 가장 적합한 솔루션이라고 생각합니다. 불행히도 내가 아는 것은 많지 않습니다 (수천 유로 / 달러를 지불하지 않아도 됨). 우리는 Navtech -Data 와 협력하는데 , 이는 완벽한 네트워크를 가지고 있지만 저렴하지는 않습니다. 우리는 또한 정상적으로 작동하는 OSM으로 때때로 시도했지만 항상 문제를 일으켰으므로 결코 생산에 들어 가지 않았습니다.
우리는 또한 위에서 언급 한 오픈 소스 GraphHopper 프로젝트 (몇 주 전)를 보았고 성능과 가능성이 매우 우수하다고 생각합니다. 내가 아는 한, 그들은 또한 프로젝트 내에서 OSM 데이터를 실행하고 있습니다.
많은 라우팅 문제는 Dijkstra의 알고리즘을 사용하여 최단 경로를 결정합니다. 코드 작성은 비교적 간단합니다. http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
또한 귀도 반 로섬 (Guido van Rossum)은 파이썬의 그래프에 대한 초기 에세이를 썼습니다. 그의 짧은 작품에는 기본 경로 데이터 구조 및 코딩에 대한 접근 방식이 포함됩니다. http://www.python.org/doc/essays/graphs.html
많은 라우팅 패키지가 있습니다. 특히 지리적 목적을 위해 pgRouting 외에도 graphserver (http://bmander.github.com/graphserver/) 및 ESRI ArcGIS Network Analyst가 떠 오릅니다. 소셜 네트워크 분석 커뮤니티에는 http://www.insna.org/software/index.html 및 http://www.insna.org/software/software_old.html 에 그래프 분석 소프트웨어 목록이 있습니다. 이러한 패키지 중 다수는 오픈 소스이며 지리적으로 관련이 있습니다. 고도로 정교하고 강력하거나 복잡한 계산을 위해서는 CPLEX 및 Lindo Lingo와 같은 선형 프로그래밍 패키지를 조사해 볼 가치가 있습니다.
당신은 사용할 수 있습니다 메뚜기의 API를 - 그들은 가지고 당신이 불리는 내에서 작동 할 수있는 구성 요소 행렬 매트릭스 API
또한이 Mapzen 리플릿 라우팅 플러그인 또는 Mapzen 발할라 엔진
뿐만 아니라 Mapbox 거리 API 는 활용할 수 있습니다
.shp
networkx 로가는 라이브러리가 있습니까? 파이썬으로 직접 만들 수는 있지만 바퀴를 재발 명