¿Buscando alternativas a pgRouting para el enrutamiento de código abierto / análisis de red?

34

Me preguntaba si existen alternativas a las herramientas pgRouting .

Pensándolo un poco, creo que la única alternativa es usar R o RPY para hacer el análisis.

Básicamente estoy tratando de resolver problemas de enrutamiento basados en bases de datos que no son de PostGIS. Como la mayoría de mis datos se almacenan en un formato diferente; Sin embargo, no es difícil de convertir. Estoy encontrando que pgRouting a mi tonto cerebro es difícil de implementar. Entonces, tal vez una solución que no sea de base de datos que pueda modificar fácilmente sería ideal para mí

    
pregunta dassouki 23.07.2010 - 16:09

12 respuestas

20

[Editar: esto ha sido reemplazado por nx_spatial que está disponible en pypi (easy_install nx_spatial). La importación de shapefiles ahora es estándar en networkx 1.4 ]

Me ha decepcionado un poco la falta de herramientas de red geométricas en la API Python GP de ESRI, así que escribí algo que carga Shapefiles y clases de características en networkx gráficos direccionales (DiGraphs).

Todavía es un trabajo en progreso, pero podría ser un buen punto de partida para algo que pueda ayudarlo con su problema.

enlace

Muestras:

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]

La red se hereda de networkx.DiGraph, por lo que toda esa funcionalidad está disponible.

    
respondido por el bwreilly 05.08.2010 - 17:44
11

Aunque el hilo es un poco antiguo, quería agregar algunos enlaces sobre enrutamiento en caso de que alguien termine aquí como lo hice:

respondido por el María Arias de Reyna Domínguez 14.03.2012 - 18:03
5

Hay Flowmap , un paquete GIS de nicho diseñado para tratar los problemas de análisis de red.

Si tiene un caso de uso bastante simple, el Quantum Navigator basado en QGIS puede hacer el truco.

GRASS también es compatible con análisis de red , aunque puede que no valga la pena la fricción de configurar las cosas dentro del entorno. .

    
respondido por el scw 24.07.2010 - 03:55
4

Si está buscando una solución pythonic programática, eche un vistazo a networkx

    
respondido por el perrygeo 30.07.2010 - 05:11
3

Puede consultar el proyecto de código abierto GraphHopper : un planificador de rutas rápido y flexible. Pruébelo aquí . Nota: soy el autor

    
respondido por el Karussell 04.06.2013 - 08:24
2

Puedes usar el paquete de gráficos de GeoTools para hacer el enrutamiento también.

    
respondido por el Ian Turton 30.07.2010 - 02:11
2

También puede consultar las herramientas de RouteWare . Registro largo y no vinculado a la base de datos

    
respondido por el Uffe Kousgaard 30.07.2010 - 11:31
1

No estoy seguro de si eso se ajusta a sus requisitos particulares pero podría valer la pena consultar extensión de red de gvSIG .

    
respondido por el radek 23.07.2010 - 17:11
1

Muchos problemas de enrutamiento utilizan el algoritmo de Dijkstra para determinar la ruta más corta. Es relativamente sencillo codificar: enlace

Además, Guido van Rossum escribió un ensayo inicial sobre gráficos en Python. Su breve artículo incluye un enfoque para las estructuras de datos de rutas primitivas y la codificación: enlace

Hay muchos paquetes de enrutamiento por ahí. Para propósitos específicamente geográficos, además de pgRouting, graphserver (http://bmander.github.com/graphserver/) y ESRI ArcGIS Network Analyst vienen a la mente. La comunidad de análisis de redes sociales tiene una lista de software de análisis de gráficos en: enlace y enlace . Muchos de esos paquetes son de código abierto y relevantes en un contexto geográfico. Para cálculos altamente sofisticados, robustos o complejos, vale la pena investigar los paquetes de programación lineal como CPLEX y Lindo Lingo.

    
respondido por el glennon 30.07.2010 - 01:56
1

En versión Alpha pero parece prometedor:

GeoDaNet (Alpha) - Análisis de patrones de puntos espaciales en redes (basado en PySAL biblioteca de Ptyhon, obtenida en el centro de GeoDa).

( Diapositivas , manual , descargar .)

    
respondido por el radek 07.06.2013 - 00:26
1

También investigamos un poco los últimos años, pero aún estamos satisfechos con pgRouting y creemos que es la mejor solución para nuestras necesidades de enrutamiento GIS. Lamentablemente, no conozco mucho (sin tener que pagar miles de euros / dólares). Trabajamos con Navtech -Data, que tiene una red perfecta para trabajar, pero no es barata. También probamos de vez en cuando con OSM, que funcionó bien ... pero siempre tuvimos algunos problemas y, por lo tanto, nunca se convirtió en producción.

También encontramos el proyecto de código abierto GraphHopper mencionado anteriormente (hace algunas semanas) y creo que Tiene muy buen rendimiento y posibilidades. Que yo sepa, también tienen datos OSM ejecutándose dentro de su proyecto.

    
respondido por el leole 18.09.2018 - 10:04
1

Puede usar Grasshopper API : tienen un componente de matrices con el que puede trabajar llamado API de matriz

También hay Complemento de enrutamiento de folletos de Mapzen o motor Mapzen Valhalla

así como API de Distancia de Mapbox que puede acceder a la

    
respondido por el MDHald 27.01.2016 - 22:26

Lea otras preguntas en las etiquetas