Skip to content

Welcome to Unweaver

Unweaver logo Unweaver is a flexible routing engine intended for research and production routing and network analysis applications. Why use Unweaver?

  • Unweaver stitches together a routable network from geospatial data and stores it as a routable GeoPackage, a portable SQLite database and OGC standard. You can save, share, and query your networks using any open source tooling that understands SQLite or GeoPackages.

  • Unweaver leverages user-defined Python cost functions that are evaluated at runtime, so you can define and rapidly iterate on your shortest-path graph traversal using any amount of custom logic.

  • Unweaver provides a networkx-compatible view into your routable GeoPackage so that you can traverse and query it like an in-memory graph*.

  • Unweaver provides a web server that creates JSON-returning web endpoints using simple JSON configuration files (routing profiles).

  • Unweaver can be used as a command line tool or as a library in production applications or Jupyter notebooks.

* Not all networkx algorithms have been tested with Unweaver yet.

Commands

  • unweaver build - Build a project directory into a routable GeoPackage.
  • unweaver weight - Calculate static weights for edges in the routable GeoPackage.
  • unweaver serve - Start the web API server (shortest-path, shortest-path tree, and reachable tree JSON endpoints).
  • mkdocs --help - Print help message and exit.

Project layout

mkdocs.yml      # The configuration file.
poetry.lock     # Python dependencies lockfile.
pyproject.toml  # Primary package definition config.
CONTRIBUTING.md # Documentation for contributing to unweaver.
Dockerfile      # For reproducible builds and deployments with `docker`.
LICENSE         # The license for unweaver (Apache-2.0).
README.md       # README for the unweaver.
TODO.md         # Project planning (for lack of a Kanban...).
docs/
    index.md    # The documentation homepage.
    ...         # Other markdown pages, images and other files.
example/
    ...         # Example unweaver project directory contents
tests/          # Project tests (for development)
unweaver/       # The unweaver library