Skip to main content

Library for generating routes through different preferred environment attributes

Project description

GeoRouter


GeoRouter is a python library that provides a highly customizable offline routing engine that allows users to find routes based on scenery and other typical navigation preferences. In addition, GeoRouter provides powerful tools for OSM (OpenStreetMap) and SRTM (Shuttle Radar Topography Mission) data manipulation and visualization. User's can easily get accurate elevation data by simply providing a latitude and longitude bounding box.

GeoRouter currently supports two routing algorithms: A* and a custom Bellman-Ford algorithm. The A* algorithm shortens or lengths corresponding edges based on the user's scenery preferences while the Bellman-Ford algorithm directly incentivizes edges with negative weights which virtually guarantees routes will align with the user's scenery preferences. The Bellman-Ford algorithm is therefore more powerful, but extra compute is needed to prevent negative cycles from forming via backtracking.

Installation

```
pip install georouter
```

You will also need OSM datasets from either BBBike or Geofabrik. The datasets should be in the form of .osm.pbf files.

SRTM datasets are automatically downloaded by GeoRouter, but a NASA Earthdata account is required as well as an account token.

Usage

from georouter import GeoRouter

Todo

  • Add support for Southern Hemisphere SRTM data
  • Increase speed of Bellman-Ford algorithm via caching previous paths for negative cycle detection
  • Add more routing preferences
  • Remove utility roads from routing graph
  • Improve edge preprocessing via parallelization
  • Add a save and load function for graphs and preprocessed edges

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

georouter-0.1.4.tar.gz (25.7 kB view hashes)

Uploaded Source

Built Distribution

georouter-0.1.4-cp39-cp39-macosx_14_0_arm64.whl (29.3 kB view hashes)

Uploaded CPython 3.9 macOS 14.0+ ARM64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page