Skip to main content
wayfarer logo
Version Coveralls Downloads

Wayfarer is Python library for creating and analysing geospatial networks using NetworkX.

See the Documentation for full details of the library.

See the Online Demo to see examples of use cases for the library.

See the Wayfarer Presentation for an overview presentation.

Functionality

Its focus is on creating user interfaces for selecting and creating linear features such as roads and rivers in a network. Uses shortest routes to provide a user interface quickly mark up linear features.

Routing

Route solving

Dynamic splitting - accessibility scenarios. Changes to isochrones.

Linear Referencing

Linear referencing is a powerful technique used in Geographic Information Systems (GIS) to locate geographic features and events along a linear feature such as a road, river or pipeline.

  • Easy analysis and reporting of data along linear features

  • Efficient data storage - no need to duplicate linear features

Why Use Wayfarer?

  • Works with any data source (any database, flat files, Python dictionaries)

  • Compatibility with osmnx

  • Access to all of the NetworkX Algorithms

  • Allow an easy user interface for marking up features on linear referenced features.

Comparison with Alternatives

  • pgRouting - requires users to have a good understanding of SQL, PostGIS, and network analysis concepts. This can make it difficult for beginners to get started. PgRouting is designed to work with PostgreSQL and PostGIS, so users may need to convert their data to these formats before they can use the tool. This can be time-consuming and may require additional software or expertise. More familiar with Python than Postgres and SQL

  • Network Analyst is an extension for ArcGIS

  • GraphHopper

  • OSRM

  • OSMNX is a Python library for working with OpenStreetMap data and generating street networks. It includes tools for routing and network analysis, including shortest-path algorithms and tools for calculating network measures such as centrality and betweenness. OSMnx can be used to generate routing networks for a range of use cases, including transportation planning and urban design.

  • Pandana is a Python library for working with large-scale spatial networks, including road networks and public transit networks. It includes tools for network analysis and routing, as well as tools for generating spatial aggregates and conducting spatial queries. Pandana is designed to be fast and memory-efficient, making it well-suited for large-scale routing applications

  • PyRoutelib is a Python library for network routing that is built on top of NetworkX. It includes a range of routing algorithms, including Dijkstra’s algorithm and A* search, as well as tools for working with routing profiles and generating directions. PyRoutelib is designed to be easy to use and can be integrated into other Python projects.

Demo Applications

The demo applications use a Python back-end with wayfarer, and a JavaScript front-end build on OpenLayers. The front-end code is stored in a separate repository at https://github.com/compassinformatics/wayfarer-demo/

To setup the code below you can run the following commands in a PowerShell terminal and using Windows. Alternatively you can use the Dockerfile.

# create a virtual environment and activate it
virtualenv C:\VirtualEnvs\wayfarer
C:\VirtualEnvs\wayfarer\Scripts\activate.ps1

# check-out the latest version of the wayfarer project which include
# the demo Python services and data
git clone https://github.com/compassinformatics/wayfarer

# install wayfarer and its requirements to a virtual environment
cd C:\Temp\wayfarer
pip install wayfarer
pip install -r requirements.demo.txt

# copy the data to the demo folder
Copy-Item -Path demo -Destination C:\VirtualEnvs\wayfarer -Recurse
Copy-Item -Path data -Destination C:\VirtualEnvs\wayfarer -Recurse

# run the demo services as a Python web service
cd C:\VirtualEnvs\wayfarer\demo
uvicorn main:app --workers 4 --port 8001

# should now be available at http://localhost:8001

Release files for wayfarer 0.13.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wayfarer 0.13.3
File Size Uploaded
wayfarer-0.13.3.tar.gz 43.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wayfarer 0.13.3
File Interpreter ABI Platform
wayfarer-0.13.3-py3-none-any.whl Python 3 none any Details

Total release size: 75.6 kB

Release files / wayfarer-0.13.3.tar.gz

Download URL wayfarer-0.13.3.tar.gz
Size 43.1 kB
Tags Source
SHA-256 checksum
How to use checksums
03d95b11e62352fda713cb0b27a193027a40a462b28b7ed1c42a6185faaa3589
BLAKE2b-256 checksum
How to use checksums
efc2dd6bc8cd1afff12f1c732b25ce3612437517d5257bb836bb8871feb78f2d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / wayfarer-0.13.3-py3-none-any.whl

Download URL wayfarer-0.13.3-py3-none-any.whl
Size 32.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
454764860a366b4588bc9eefffca336518b9402b7f71301d73727d061f8974c2
BLAKE2b-256 checksum
How to use checksums
d00da1896791b30d5aaf547a4090fabe8a474a92dd47d3e709173c26d084cac3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

0.13.3 This release

2 release files

0.13.2

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.9.6

2 release files

0.9.5

3 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.8.5

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page